设备准备
一台可以使用的公网的服务器、一台可以访问web的内网 X X X的计算机,一台可以访问web的不属于内网 X X X的计算机。
文件准备
下载对应文件 传送门
linux下进行解压的命令:
tar -zxvf frp_0.44.0_linux_amd64.tar.gz
客户端是指要被ssh访问的计算机。
服务端是指公网IP的计算机。
运行文件配置
# frps.ini
[common]
bind_port = 7000 # 公网服务器开启的端口
# frpc.ini
[common]
server_addr = # 公网服务器的IP地址
server_port = 7000 # 公网服务器开启的端口
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 这个端口是用于代理的端口
文件运行
服务端运行
./frps -c ./frps.ini
客户端运行
./frpc -c ./frpc.ini
非内网计算机ssh连接
ssh -oPort=6000 test@x.x.x.x #x.x.x.x是公网服务器的IP
开启端口
查看是否连接成功,如果没有成功,要检查一下公网服务器的防火墙的端口是否打开。
6000和7000的端口都要打开。
netstat -ntulp # 查询已开放的端口
netstat -ntulp | grep 端口号 # 可以具体查看某一个端口号
firewall-cmd --query-port=6000/tcp # 查询指定端口是否已开,提示 yes,表示开启;no表示未开启。
firewall-cmd --add-port=6000/tcp --permanent # 添加指定需要开放的端口
firewall-cmd --add-port=7000/tcp --permanent # 添加指定需要开放的端口
firewall-cmd --reload # 重载入添加的端口
firewall-cmd --query-port=6000/tcp # 查询指定端口是否开启成功
firewall-cmd --permanent --remove-port=6000/tcp # 移除指定端口
firewall-cmd --permanent --remove-port=7000/tcp # 移除指定端口
备注:运行公网服务器为ubuntu20.04,指令集是amd64的,版本不对应会出现core dump之类的运行报错。