使用frp实现内网穿透
服务端
安装
从Release 页面下载最新版本并解压
1 | wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz |
将 frps
复制到 /usr/bin
目录下
1 | cp frps /usr/bin/ |
配置
修改
frps.ini
文件,添加密码和 udp 端口用于点对点内网穿透。1
2
3
4
5## frps.ini
[common]
bind_port = 7000
token = 12345678
bind_udp_port = 7001设置开机启动
1
2
3
4mkdir /etc/frp
cp frps.ini /etc/frp/frps.ini
cp systemd/frps.service /etc/systemd/system/frps.service
systemctl enable frps- 启动 frp 并设置开机自启:
systemctl enable frps
- 启动 frp:
systemctl start frps
- 查看 frp 运行状态:
systemctl status frps
- 重启 frp 服务:
systemctl restart frps
- 启动 frp 并设置开机自启:
客户端
安装
客户端的安装方法与服务端类似,需将将frps
换成frpc
。
配置
修改frpc.ini
ssh
1
2
3
4
5
6
7
8
9
10## frpc.ini
[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点对点内网穿透
启动 frpc,转发内网的 ssh 服务,配置如下,不需要指定远程端口:
1
2
3
4
5
6
7
8
9
10
11## frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[p2p_ssh]
type = xtcp
## 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22在要访问这个服务的机器上启动另外一个 frpc,配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15## frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[p2p_ssh_visitor]
type = xtcp
## xtcp 的访问者
role = visitor
## 要访问的 xtcp 代理的名字
server_name = p2p_ssh
sk = abcdefg
## 绑定本地端口用于访问 ssh 服务
bind_addr = 127.0.0.1
bind_port = 6000微软远程桌面(RDP)
frp 也可以用于转发内网的 Windows 远程桌面,配置如下:
1
2
3
4
5#frpc.ini
[RDP]
type = tcp
local_port = 3389
remote_port = 6001需要注意的是,使用 RDP 必须设置 Windows 账户的密码,否则无法连接。
参考:frp 文档