frp内网穿透
frp内网穿透
- 内网client服务器可以访问外网
- 一台有公网IP的服务器(可以用ECS,我这里用的是一台阿里云ECS)
- 我这里是以ubuntu部署远程ssh的环境
1.下载frp包:
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
可以去https://github.com/fatedier/frp
下载最新的包
2.解压frp_0.52.3_linux_amd64.tar.gz
tar -xvf frp_0.52.3_linux_amd64.tar.gz
目录结构
frp_0.52.3_linux_amd64$ tree
.
├── frpc #frp client 部署在局域网服务器(PC)
├── frpc.toml #frp client 配置文件
├── frps #frp server 部署在云服务器
├── frps.toml #frp server 配置文件
└── LICENSE
0 directories, 5 files
3.创建systemd服务
frps.service
xxx@ubuntu2204:~$ cat /lib/systemd/system/frps.service
[Unit]
Description=frp server daemon
After=network.target
[Service]
Type=simple
ExecStart=frps -c /etc/frp/frps.toml
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
配置/etc/frp/frps.toml
xxx@ubuntu2204:~$ cat /etc/frp/frps.toml
bindPort = 7000
- bindPort 为frp server 监听端口,可自定义
frpc.service
xxx@ubuntu2204:~$ cat /lib/systemd/system/frpc.service
[Unit]
Description=frp client daemon
After=network.target
[Service]
Type=simple
ExecStart=frpc -c /etc/frp/frpc.toml
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
配置/etc/frp/frpc.toml
xxx@ubuntu2204:~$ cat /etc/frp/frpc.toml
serverAddr = "x.x.x.x" #云服务器公网IP
serverPort = 7000 #对应frps.toml中bindPort = 7000
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "192.168.217.139" #本机IP
localPort = 22
remotePort = 6000 #最后ssh登录时的端口
2.服务器端部署
- 拷贝frps.service 至云服务器/lib/systemd/system目录
- 拷贝frps.toml 至云服务器/etc/frp/目录 (没有就创建
mdir -p /etc/frp
) - 拷贝frps 至云服务器/usr/local/bin/目录
- 启动服务frps.service
sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl enable frps #开机自启(不需要可以不用执行)
查看frps.service服务状态
sudo systemctl status frps
2.PC端部署
- 拷贝frpc.service 至PC /lib/systemd/system目录
- 拷贝frpc.toml 至PC /etc/frp/目录 (没有就创建
mdir -p /etc/frp
) - 拷贝frpc 至PC /usr/local/bin/目录
- 启动服务frpc.service
sudo systemctl daemon-reload
sudo systemctl start frpc
sudo systemctl enable frpc #开机自启(不需要可以不用执行)
查看frpc.service服务状态
sudo systemctl status frpc
出现如下日志,即为成功
其他主机远程连接PC
ssh -p 6000 PC用户名@云服务器IP
注意:
云服务器防火墙需要打开对应的端口,否则连接不成功