基于Docker的FRP内网穿透部署

服务器搭建(FRPS)

创建配置文件

复制代码
# 创建存放目录
sudo mkdir /etc/frp
# 创建frps.ini文件
nano /etc/frp/frps.ini

frps.ini内容如下:

复制代码
[common]
# 监听端口
bind_port = 7000
# 面板端口
dashboard_port = 7500
# 登录面板账号设置
dashboard_user = admin
dashboard_pwd = admin
# 设置http及https协议下代理端口(非重要)
vhost_http_port = 7080
vhost_https_port = 7081
​
​
# 身份验证
token = 12345678

[root@server ~]# docker pull registry.cn-shenzhen.aliyuncs.com/mogublog_business/frps
​
[root@server ~]# docker run --restart=always --network host -d -v /root/frps.ini:/etc/frp/frps.ini --name frps registry.cn-shenzhen.aliyuncs.com/mogublog_business/frps
5d1c7d3ec1697c08bd77fa267e9ae007ffa8c379b81bb6953d6e01ff85c5cbb7
​
[root@server ~]# docker ps -a
CONTAINER ID   IMAGE                                                      COMMAND                  CREATED         STATUS                 PORTS                                       NAMES
5d1c7d3ec169   registry.cn-shenzhen.aliyuncs.com/mogublog_business/frps   "/bin/sh -c '/usr/bi..."   4 seconds ago   Up 3 seconds                                                       frps
[root@server ~]# sudo ufw enable
[root@server ~]# sudo ufw allow 7000
[root@server ~]# sudo ufw allow 7500
[root@server ~]# sudo ufw allow 7080
[root@server ~]# sudo ufw allow 7081

http://ip:7500

中转客户端配置(FRPC)

复制代码
[root@client ~]# docker pull registry.cn-shenzhen.aliyuncs.com/mogublog_business/frpc:latest
​
[root@client ~]# docker run --restart=always --network host -d -v /opt/frp/frpc.ini:/etc/frp/frpc.ini --name frpc registry.cn-shenzhen.aliyuncs.com/mogublog_business/frpc:latest 
5d73d9ee2583b73b84a2863f61ddf29d722b7ac8a79f1e366bec7998bc8e278b
​
[root@client ~]# docker ps -a
CONTAINER ID   IMAGE                                                             COMMAND                   CREATED         STATUS         PORTS     NAMES
5d73d9ee2583   registry.cn-shenzhen.aliyuncs.com/mogublog_business/frpc:latest   "/bin/sh -c '/usr/bi..."   4 seconds ago   Up 4 seconds             frpc
[root@client ~]# 

配置文件示例:

复制代码
[common]
# server_addr为FRPS服务器IP地址
server_addr = x.x.x.x
# server_port为服务端监听端口,bind_port
server_port = 7000
# 身份验证
token = 12345678
​
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2288
​
# [ssh] 为服务名称,下方此处设置为,访问frp服务段的2288端口时,等同于通过中转服务器访问127.0.0.1的22端口。
# type 为连接的类型,此处为tcp
# local_ip 为中转客户端实际访问的IP 
# local_port 为目标端口
# remote_port 为远程端口
​
[ssh]
type = tcp
local_ip = 192.168.1.229
local_port = 80
remote_port = 18022
​
[unRAID web]
type = tcp
local_ip = 192.168.1.229
local_port = 80
remote_port = 18088
​
[Truenas web]
type = tcp
local_ip = 192.168.1.235
local_port = 80
remote_port = 18188
​
[speedtest]
type = tcp
local_ip = 192.168.1.229
local_port = 6580
remote_port = 18190
​
​
[webdav]
type = tcp
local_ip = 192.168.1.235
local_port = 18080
remote_port = 18189
​
[RDP PC1]
type = tcp
local_ip = 192.168.1.235
local_port = 3389
remote_port = 18389
  • 如果监听服务可以有IP限制的设置,需要允许的访问IP为中转内网设备的内网IP;

  • FRP由于端口会暴露在互联网上,虽然说使用方便但安全性较差;

相关推荐
SPC的存折2 分钟前
1、MySQL故障排查与运维案例
linux·运维·服务器·数据库·mysql
Run_Teenage3 分钟前
Linux:认识信号,理解信号的产生和处理
linux·运维·算法
CDN36017 分钟前
高防服务器磁盘 / CPU 爆满?攻击引流与资源扩容实战
运维·服务器·网络协议
freewlt21 分钟前
OpenClaw 工作流自动化实战:打造你的智能定时任务中心
运维·servlet·自动化
Amnesia0_025 分钟前
理解Linux中的OS管理和进程属性
linux·运维·服务器
http阿拉丁神猫25 分钟前
kubernetes知识点汇总43-47
云原生·容器·kubernetes
小夏子_riotous41 分钟前
openstack的使用——7. 共享文件系统manila服务
linux·运维·服务器·系统架构·centos·openstack·运维开发
Omics Pro42 分钟前
上海AI Lab+复旦大学:双轨协同实现自动化虚拟细胞建模
运维·人工智能·语言模型·自然语言处理·数据挖掘·数据分析·自动化
Bert.Cai1 小时前
Linux cp命令详解
linux·运维
七七powerful1 小时前
K8s 工具安装文档 — Harbor + ArgoCD
容器·kubernetes·argocd