在具有公网 IP 的机器上部署 frps,修改 frps.ini 文件,这里使用了最简化的配置,设置了 frp 服务器用户接收客户端连接的端口:
[common]
bind_port = 7000
在需要被访问的内网机器上(SSH 服务通常监听在 22 端口)部署 frpc,修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x:
[common]
server_addr = x.x.x.x
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
local_ip 和 local_port 配置为本地需要暴露到公网的服务地址和端口。remote_port 表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。
分别启动 frps 和 frpc。
./frps -c ./frps.ini
./frpc -c ./frpc.ini
通过 SSH 访问内网机器,假设用户名为 test:
ssh test@x.x.x.x -p 6000
frp 会将请求 x.x.x.x:6000 的流量转发到内网机器的 22 端口。
linux后台运行frp和开机自启:使用 systemd 命令,管理 frps。
启动frp
systemctl start frps
停止frp
systemctl stop frps
重启frp
systemctl restart frps
查看frp状态
systemctl status frps
配置 frps 开机自启。
systemctl enable frps
Win自启动
github下载 winsw.exe
将它和frpc程序放在同一个目录下
编写winsw.xml配置文件
<service>
<id>frpc</id>
<name>frpc</name>
<description>frp内网穿透客户端</description>
<executable>frpc</executable>
<arguments>-c frpc.ini</arguments>
<logmode>reset</logmode>
</service>
//注册服务
winsw.exe install
//启动服务
winsw.exe start
连接不上远程服务器
1.检查服务器入站规则,开启相应端口
server_port和remote_port都需要开放
2.服务器防火墙,server_port和remote_port都需要开放
允许7000端口通过,重新加载防火墙配置
sudo firewall-cmd --zone=public --add-port=7000/tcp --permanent
sudo firewall-cmd --reload
查看防火墙状态
sudo firewall-cmd --state
查看端口
netstat -tuln