frp穿透技术

version修改记录修改人修改时间
0.1初始版本linux-logic2025年2月12日
0.2更新格式,迭代客户端的配置linux-logic2025年6月28日

一、注意事项

功能说明

ssh穿透,即在外网可以使用ssh访问内网的服务器。

名词说明

远程服务器:表示有固定IP的服务器,负责提供可访问的地址端口,这里使用阿里云服务器
家服务器:表示想要访问的家里的服务器,即在外网环境下也可以访问。

二、下载frp

可以使用wget下载最新版

https://github.com/fatedier/frp/releases

命令:

wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz

三、服务器端配置(远程服务器)

frps配置

远程服务器端可以只留下以下几个文件

frps  frps_full.ini  frps.ini  LICENSE  systemd

其中frps.ini为配置文件,注意新版本配置文件为toml格式,toml格式为:

[common]
bindPort = 7000

其中,bind_port为远程服务器与家服务器通信的端口,这里需要在阿里云后台开启7000端口的防火墙配置(安全组策略中增加7000端口的入方向权限)

启动方式-直接启动

后台启动(如果直接启用的话,当你关闭shell后,frp会关闭)

nohup ./frps -c ./frps.ini

启动方式-开机自启动

配置systemd服务文件:

vim /lib/systemd/system/frps.servic

[Unit]
Description=frps daemon

[Service]
Type=simple
ExecStart=/home/admin/frp/frp_0.61.1_linux_amd64/frps -c /home/admin/frp/frp_0.61.1_linux_amd64/frps.toml # 根据自己的安装目录调整

[Install]
WantedBy=multi-user.target

systemd服务启动命令:

重启应用 sudo systemctl restart frps
停止应用 sudo systemctl stop frps
查看日志 sudo systemctl status frps

四、客户端配置(家服务器)

frpc配置

客户端只需要保留如下文件

frpc frpc.ini

参考服务端的配置路径,这里需要配置的是frpc.ini文件。需要注意:新版本配置文件为toml格式,配置为:

serverAddr = "xx.xx.xx.xx" # 远程服务器的IP地址
serverPort = 7000 # 与服务端的bind_port一致

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22 # 访问远程服务器的IP+端口时,要转发到本地客户端的端口号
remotePort = 6000 # 远程服务器的端口号,访问xx.xx.xx.xx:6000时,即会访问本地的127.0.0.1:22

启动方式-直接启动

nohup ./frpc -c ./frpc.ini

启动方式-自动启动

修改/lib/systemd/system/frpc.service文件:

[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
ExecStart=/home/xxx/frp/frp_0.61.1_linux_amd64/frpc -c /home/xxx/frp/frp_0.61.1_linux_amd64/frpc.toml # 根据自己的安装目录调整

[Install]
WantedBy=multi-user.target

systemd服务启动命令:

重启应用 sudo systemctl restart frpc
停止应用 sudo systemctl stop frpc
查看日志 sudo systemctl status frpc