FRP安装记录
目标:穿透内网,使用远程桌面控制内网计算机
所需设备:
- 被控电脑
- 公网IP
- 服务器
安装FRPS
下载安装Docker版FRPS
公司网络有公网ip,我的群晖NAS放在公司里。在NAS上安装docker版的frps。具体步骤如下:
- 点击docker注册表
- 搜索frp
- 下载oldiy/frps
配置FRPS
- 点击映象
- 选中frps
- 点击启动
- 选中“使用最高权限执行容器”
- 点击“高级设置”
- 在高级设置中选中“启动自动重新启动”,保证容器在异常关闭后能自动重启
- 在卷中添加配置文件路径:配置文件实际所在文件夹为"docker/frps”,装载路径为”/frp”
- 在端口设置中添加从NAS到容器的映射,其中7000端口的TCP和UDP是必须的,其他端口按需添加
路由器端口转发
- 配置路由器端口转发,将路由器的端口映射到对应的NAS端口上。
- 需要将路由器端口映射到NAS上,例如将路由器的8000端口转发到NAS的7000端口上。
- 整个映射关系如下表所示:
路由器 | NAS | 容器 | |
---|---|---|---|
TCP | 8000 | 7000 | 7000 |
UDP | 8000 | 7000 | 7000 |
如果需要用到其他端口,也需要建立从路由器→NAS→容器的映射关系。
FRPS配置文件
在群晖NAS上安装frps服务端。配置文件如下:
[common]
bind_port = 7000
bind_udp_port = 7001
dashboard_port = 7500
dashboard_user = ******
dashboard_pwd = ******
token = *****
将文件保存到frps.ini后,将其放到docker/frps文件夹下。
FRPC配置文件
[common]
server_addr = abc.efg.hij
server_port = 8000
token = *******
[RDP] #任意名称,必须唯一
type = tcp
local_ip = 0.0.0.0
local_port = 3389 #远程桌面使用此端口
remote_port = 4321 #确保此端口会由NAS转发给docker
将文件保存到frpc.ini后,将其放到frpc.exe相同的文件夹下。
FRPC自动启动
Windows
在本地frp文件夹中新建一个批处理文件,并添加一下内容:
@echo off
:home
frpc.exe -c frpc.ini
goto home
该脚本确保frpc意外关闭后能重新执行。
保存后将该脚本添加到任务计划中。
Raspberry Pi
在树莓派上使用对应版本的frpc客户端,配置文件如下(注意,配置名称必须唯一):
[common]
server_addr = abc.efg.hij
server_port = 8000
token = *******
[RDP2] #任意名称,必须唯一
type = tcp
local_ip = 0.0.0.0
local_port = 3389 #远程桌面使用此端口
remote_port = 4322 #确保此端口会由NAS转发给docke
使用supervisor来守护frp进程
树莓派上可以使用supervisor来保证frpc程序开机启动并守护进程。
- 安装supervisor
sudo apt-get install supervisor -y
在/etc/supervisor/conf.d下新建一个配置文件frp.conf,输入一下内容command 是你frp软件的路径
[program:frps]
user=root
command=/root/frp/frps/frps -c /root/frp/frps/frps.ini
startsecs=1
startretries=100
autorstart=true
autorestart=true
stderr_logfile=/tmp/err-frps.log
stderr_logfile_maxbytes=50MB
stderr_logfile_backups=10
stdout_logfile=/tmp/out-frps.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
然后启动supervisor,如果事先已经安装好了supervisor那么就重新启动。之后查看一下supervisor的运行状态,看看frp是否已在运行。
#重启supervisor
sudo systemctl restart supervisor
# 查看supervisor运行状态
sudo supervisorctl status
多个FRPC客户端注意事项
- frp服务器端需配置不同的端口用于连接。
- frpc的配置文件中,配置名称必须不同。
- 连接时,使用不同的端口就能连接到不同的设备上。