通过内网穿透可以远程控制电脑, 我一般用frp来控制远程的没有公网ip的linux电脑. 这篇文章记录下配置frp的过程.

服务端配置

首先在frp的Github页面上可以下载到它的releases, 根据自己的系统下载对应的文件即可. 解压后会有两个类型的文件. 一个是frps, s代表server即服务端; 一个是frpc, c代表client即客户端. 此外, frp.ini是配置文件, frp_full.ini里是各种配置条目的介绍.

服务端的配置的话编辑frps类文件即可, 如下.

# 下载
wget https://github.com/fatedier/frp/releases/download/v0.46.0/frp_0.46.0_linux_amd64.tar.gz

# 解压并进入文件
tar -zxvf frp_0.46.0_linux_amd64.tar.gz
mv frp_0.46.0_linux_amd64 frp && cd frp

# (optional) 删除无关的frpc文件
rm frpc*

然后可以开始编辑配置文件frps.ini了. 其实只要配置端口就好, 不过为了安全我还是加了token.

[common]
bind_port = PORT_NUMBER

# auth token
token = TOKEN_VALUE

然后sudo vim /lib/systemd/system/frps.service添加守护进程. 下面的USER_NAMEPATH根据自己情况填写.

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=USER_NAME
Restart=on-failure
RestartSec=5s
ExecStart=YOUR_PATH/frps -c YOUR_PATH/frps.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
# 启动进程
sudo systemctl start frps.service
sudo systemctl enable frps.service

至此服务端配置结束, 可以用systemctl status frp.service查看是否正常active.

客户端配置

客户端配置和服务端基本相同. 首先下载文件然后保留frpc文件.

# 下载
wget https://github.com/fatedier/frp/releases/download/v0.46.0/frp_0.46.0_linux_amd64.tar.gz

# 解压并进入文件
tar -zxvf frp_0.46.0_linux_amd64.tar.gz
mv frp_0.46.0_linux_amd64 frp && cd frp

# (optional) 删除无关的frps文件
rm frps*

编辑frpc.ini文件, 填写服务端主机的ip, 端口, 以及token, 然后在下面的remote_port里远程连接的端口即可.

[common]
server_addr = SERVER_IP
server_port = PORT_NUMBER
token = TOKEN_VALUE

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = REMOTE_PORT

然后编写添加守护进程即可.

[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=USER_NAME
Restart=on-failure
RestartSec=5s
ExecStart=YOUR_PATH/frpc -c YOUR_PATH/frpc.ini
ExecReload=YOUR_PATH/frpc reload -c YOUR_PATH/frpc.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
# 启动进程
sudo systemctl start frps.service
sudo systemctl enable frps.service

然后在自己电脑上ssh连接服务端ip的设定好的端口就可以远程控制客户端了.

Reference

[Ref1]

[Ref2]

Tags: none

Leave a comment...