1. frp概念
- frp 是一个专一于内网穿透的高性能的反向代理利用
frp分为两局部
- frpc 客户端,工作在内网服务器上
- frps 服务器端,工作在公网服务器上
- 一个代理对应一个服务,frpc能够反对多个代理
- 我的项目地址
2. 应用frp部署内网穿透服务
2.1 下载frp部署文件
- 在frp我的项目的release页面,下载特定版本的frp我的项目文件,将我的项目两件别离放入公网服务器与内网服务器,并解压,进入解压后的我的项目文件
2.2 公网服务器配置
- frps.ini
echo "[common]bind_port = ${bind_port}# validation, same in frpc.initoken = ${token}# Dashboard configdashboard_port = ${dashboard_port}dashboard_user = ${user}dashboard_pwd = ${passwd}# http://{dashboard_addr}/metrics will provide prometheus monitordata.enable_prometheus = true" > /opt/frps.ini
- 我的项目目录执行
sudo nohup ./frps -c /opt/frps.ini
2.3 内网服务器配置
- frpc.ini
echo "[common]server_addr = ${public_ip}server_port = ${bind_port}token = ${token}# set admin address for control frpc's action by http api such as reloadadmin_addr = 127.0.0.1admin_port = 7400[ssh]type = tcplocal_ip = ${local_ip}local_port = ${local_ssh_port}# remote port listen by frpsremote_port = ${public_ssh_port}" > /opt/frpc.ini
- 我的项目根目录执行
nohup ./frpc -c ./frpc.ini
备注:
bind_port
是frp客户端与服务器端通信的端口- 拜访
ssh_public_port
端口的流量将会被转发到本地服务对应的端口${local_ip}:${local_ssh_port}
- 在我的项目根目录执行
./frpc reload -c ./frpc.ini
进行配置文件的热更新
3. 应用案例与其余个性补充
- 场景:内网三台主机,IP别离为:
10.107.1.30
、10.107.1.31
、10.107.1.32
,公网主机一台,IP为${public_ip}
,要对内网的三台主机的ssh服务做内网穿透 - frpc.ini
[common]admin_addr = 127.0.0.1admin_port = 7400server_addr = ${public_ip}server_port = 7000[range:ssh]type = tcplocal_ip = 127.0.0.1# 依照先后顺序放弃对应local_port = 22,61274remote_port = 61001,61274[bd2-ssh]type = tcplocal_ip = 10.107.1.31local_port = 22remote_port = 61002[bd3-ssh]type = tcplocal_ip = 10.107.1.32local_port = 22remote_port = 61003
留神:
- 只需在一台服务器的frpc进行即可实现三台同一网段的主机的内网穿透,关键在于:
remote_port
不能抵触[bd2-ssh]
方框内的名字不能抵触
- 只需在一台服务器的frpc进行即可实现三台同一网段的主机的内网穿透,关键在于:
- frps.ini
[common]dashboard_port = 61000dashboard_user = dockerhubdashboard_pwd = ${password}# validation, same in frpc.initoken = ${token}enable_prometheus = truebind_port = 7000
4. Docker部署
4.1 筹备上述的两个配置文件,并进行自定义配置
- frpc.ini
- frps.ini
4.2 在公网主机执行下述操作
docker run \--restart=always \--network host \-d \-v /opt/frps.ini:/etc/frp/frps.ini \--name frps \snowdreamtech/frps
4.3 在内网主机执行下述操作
docker run \--restart=always \--network host \-d \-v /opt/frpc.ini:/etc/frp/frpc.ini \--name frpc snowdreamtech/frpc
5. 其余个性补充
- frp获取用户实在IP
- frp反对url路由
6. 配置frp注意事项
- 在配置跳板机服务器的端口映射时,留神放行跳板机的对应端口,并设置端口放行类型: 例如配置WireGuard映射内网端口到公网跳板机上时,在跳板机上放行UDP类型的映射端口
原文地址