frp穿透技术

version修改记录修改人修改时间
0.1初始版本linux-logic2025年2月12日

一、注意事项

功能说明

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_full.ini  frps.ini  LICENSE  systemd

其中frps.ini为配置文件(新版本配置文件为toml格式),可以只写

[common]
bind_port = 7000

其中,bind_port为远程服务器与家服务器通信的端口,这里需要在阿里云后台开启7000端口的防火墙配置(安全组策略中增加7000端口的入方向权限)
后台启动(如果直接启用的话,当你关闭shell后,frp会关闭)

nohup ./frps -c ./frps.ini

配置服务:

vim /lib/systemd/system/frps.servic

[Unit]
Description=frps daemon

[Service]
Type=simple
#此处把/root/frp_linux_arm64替换成 你的frps的实际安装目录
ExecStart=/root/frp_linux_arm64/frps -c /root/frp_linux_arm64/frps.ini

[Install]
WantedBy=multi-user.target

服务配置:

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

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

参考服务端的配置路径,这里需要配置的是:

frpc frpc.ini

需要注意:新版本配置文件为toml格式

[common]
server_addr = 远程IP地址
server_port = 7000(上面的bind_port)

[ssh]

type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6001

[ssh]:不同客户端访问时,这个名字不能相同,即,当存在多个家服务器时,每个家服务器的这个配置的名字都不能相同。

remote_port:这个端口表示远程服务器暴露的端口,即当我们想访问家里的服务器时,我们需要通过访问远程服务的这个端口来访问我们家服务器的22端口。这个也需要在阿里云的防火墙中配置。

nohup ./frpc -c ./frpc.ini