配置frp
通过内网穿透可以远程控制电脑, 我一般用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_NAME
和PATH
根据自己情况填写.
[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的设定好的端口就可以远程控制客户端了.