cd ..
2025-11-2712 min26 views

利用雨云实现frp内网穿透(docker版)的折腾过程

#Nginx#Web Server#Docker#Frp#Vps
AI Summary
每分钟最多 5 次
  • 服务器选择与配置:根据需求选择合适的雨云服务器,推荐使用带独立IP的机器以简化内网穿透设置。对于远程桌面等高带宽需求的应用,建议选择大带宽且按量计费的方案。
  • Docker安装与服务端配置:在支持Docker的服务器上安装Docker,并通过创建和编辑frps.toml配置文件来设置FRP服务端参数,包括监听端口、认证方式及仪表板访问信息。使用特定Docker命令启动并管理FRP服务端容器。
  • 客户端配置与连接:为需要穿透到公网的内部服务创建frpc.toml配置文件,指定服务端地址、本地与远程端口映射等信息。同样地,利用Docker部署FRP客户端,并确保相关端口已开放。
  • 高级功能:通过域名解析(如A记录)将自定义域名指向服务器IP,实现更友好的访问路径。此外,还可以结合Nginx反向代理进一步优化,允许通过多个不同域名无端口号访问内网资源。
  • 项目资源链接:提供了FRP官方GitHub仓库链接以及专用于Docker环境下的FRP镜像地址,方便开发者获取最新版本或深入了解项目细节。

1、购买雨云服务器(可自选其他服务器)

可以根据自己的需要选择对应速度的服务器,如果是用于远程桌面建议选择带宽较大,使用按量计费的机器,如果是用于其他需求建议选择无限流量固定带宽的机器,雨云的机器流量也比较便宜,300g15块,1024g35元,每月流量可以叠加!

广告时间:点击下方链接注册雨云,价格实惠,服务体验满满

点击此处注册雨云
点击此处注册雨云

image.png

image.png

image.png

这边建议使用debian 自带宝塔管理后台

切记选择带独立ip的机器

不然你就只能通过nat转发来实现映射,比较麻烦,不建议

image.png

2、进入机器管理后台

输入提供的宝塔账号密码进入后台

安装docker

image.png

3、安装服务端

服务端就是一台拥有公网ip的服务器

使用以下命令,创建一个保存frps配置的文件

# 创建存放目录
mkdir -p /opt/docker/frps
# 使用编辑器创建配置文件
vim /opt/docker/frps/frps.toml

在编辑器中输入以下配置文件

bindPort = 7000  #服务端监听端口
auth.method = "token"  #服务端连接身份认证,默认token
auth.token = "yourpassword"  #服务端token密码
webServer.addr = "0.0.0.0" #客户端IP,建议设置为默认路由,方便添加多台设备
webServer.port = 7500  #服务端仪表板端口
webServer.user = "admin"  #访问web时的账号
webServer.password = "webpassword"  #访问web时的密码
bindAddr = "0.0.0.0" 默认使用ipv4

使用docker 命令启动docker 容器

docker run --restart=always --network host -d -v /opt/docker/frps/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps

使用docker命令查看容器启动情况

docker ps -a

在宝塔中放行对应的防火墙规则,打开7000端口和web端口7500

输入你的服务器的 ip:7500访问web页面查看服务

出现以上的web页面,则表明已经安装成功了!

4、安装客户端

如果你的设备支持docker,那就使用docker

演示使用debian服务器

使用以下命令,创建一个保存frps配置的文件

# 创建存放目录
mkdir -p /opt/docker/frpc
# 使用编辑器创建配置文件
vim /opt/docker/frps/frpc.toml

在编辑器中输入以下配置文件

# 服务端地址
serverAddr = "x.x.x.x" #你的服务器ip地址
# 服务端配置的bindPort
serverPort = 7000 #默认是7000端口

[[proxies]]
# 代理应用名称,根据自己需要进行配置
name = "ssh"
# 代理类型
type = "tcp"
# 客户端代理应用IP
localIP = "127.0.0.1" #如果是代理本机输入这个,你也可以利用这台机器代理同一个局域网中其他的设备,比如将frp安装进软路由
# 客户端代理应用端口
localPort = 8080   #客户机上的端口
# 服务端反向代理端口
remotePort = 18080   #服务器上穿透后的端口

[[proxies]]
# 代理应用名称,根据自己需要进行配置
name = "ssh-2"
# 代理类型
type = "tcp"
# 客户端代理应用IP
localIP = "127.0.0.1" #如果是代理本机输入这个,你也可以利用这台机器代理同一个局域网中其他的设备,比如将frp安装进软路由
# 客户端代理应用端口
localPort = 22   #客户机上的端口
# 服务端反向代理端口
remotePort = 1022   #服务器上穿透后的端口

使用docker 命令启动docker 容器

docker run --restart=always --network host -d -v /opt/docker/frpc/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc

使用docker命令查看容器启动情况

docker ps -a

image.png

打开宝塔安全组,放行你穿透到服务器上的端口

接下来,刷新web管理页面,如果出现online表明服务已经成功运行

image.png

使用服务器ip:穿透端口访问页面

image.png

进阶玩法

使用域名来访问内网页面

进入雨云的域名管理后台,使用它提供的免费二级域名来解析你的服务器ip地址,当然你也可以买一个主域名来解析

image.png

使用自己的域名的时候记得将自己的域名过白

image.png

使用a解析,将域名直接解析为ip地址访问

更进阶玩法

使用nginx进行反代理实现,通过多个域名不加端口号访问内网页面

在宝塔中添加站点

image.png

然后直接进到反向代理中,参考下图进行设置

image.png

然后直接就能通过域名访问到对应的ip加端口了!!!

image.png

frp项目地址

源地址:fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

docker 版地址:snowdreamtech/frp: Docker Images for Frp.

/** Comments(0)*/

Loading comments...