此使用帮助适用宝塔面板9.2.0以上的版本(2024年9月5日后发布)

如何在5分钟内快速实现内网穿透?(首次配置可能需要5-10分钟)
下面我们通过宝塔面板的Docker应用服务,简单高效的达成目标

应用商店已经支持100+应用,欢迎更多应用服务商和宝塔面板用户联系我们持续更新,最下方有我们联系方式

【真实使用场景】
张三有一台服务器在X地区,因为特殊原因无法直接通过公网IP访问这台服务器的业务,此时张三有一台公网服务器,这台公网IP有独立的IP,希望通过内网穿透的功能,通过这台公网服务器来访问X地区服务器的指定业务
此时最简单的方案就是:
在有独立公网IP的服务器中安装【FRP服务端】,在X地区服务器中安装【FRP客户端】,将X地区服务器的某个端口穿透到有独立公网IP的指定端口,以进行访问

【场景实现】
准备服务器
  1. FRP服务端(假设它为张三的公网服务器)
  2. IP:192.168.11.62
  3. 系统:ubuntu22
  4.  
  5. FRP客户端
  6. IP:192.168.11.63(假设它为张三的X地区服务器)
  7. 系统:麒麟v10
  8.  
  9. 两台服务器都安装宝塔面板,并且都安装Docker
复制代码
实现目标
1.通过192.168.11.62的59022端口穿透192.168.11.63的22端口,实现SSH连接
2.通过192.168.11.62的40800端口穿透192.168.11.63的15700端口,实现HTTP协议连接(网站访问),15700端口会在客户端安装一个青龙面板应用

【FRP服务端安装】
点击宝塔面板 --> Docker --> 应用商店 --> FRP服务端 --> 安装
如果你是初次部署,建议所有信息都保持默认,以确保最终实现的成功率,等你真正研究透了再修改相关配置
宝塔面板9.2.0以上版本内网穿透快速配置教程

现在我们需要记住2个信息,
1.服务端的运行端口:这里我们用默认的7000
2.HTTP端口:这里我们用默认的40800

安装成功后,如果你没有保存前面输入的密码,点击详情即可查看
宝塔面板9.2.0以上版本内网穿透快速配置教程

随后我们先确保服务端的7500端口是可以访问的,如图(访问后上方会提示输入账号密码,按照提示填写即可):
宝塔面板9.2.0以上版本内网穿透快速配置教程
宝塔面板9.2.0以上版本内网穿透快速配置教程
当出现此页面,说明服务端已经部署成功,接着我们开始到客户端服务器部署客户端

【FRP客户端安装】
点击宝塔面板 --> Docker --> 应用商店 --> FRP客户端 --> 安装
这里需要注意一个地方,服务端IP(公网服务器请替换为公网IP)和服务端端口,请填写前面部署的服务端信息,如图:
宝塔面板9.2.0以上版本内网穿透快速配置教程
如果后面无法正常穿透,极有可能是这里填错了,请卸载客户端,重新安装配置后再试!
服务端7000端口无法访问?
开放安全组示例(必需):
阿里云
腾讯云

安装成功后,如果你没有保存前面输入的密码,点击详情即可查看
宝塔面板9.2.0以上版本内网穿透快速配置教程

此时使用浏览器访问客户端ip+7400,查看web页面是否可以正常访问,如果无法访问请尝试重新安装客户端,首次访问这里应该是空的
宝塔面板9.2.0以上版本内网穿透快速配置教程

【开始配置内网穿透】
准备客户端的服务
1.SSH服务一般服务器都有,监听的端口是22,所以不需要额外配置
2.安装一个青龙面板,监听15700端口,安装步骤如下:
宝塔面板9.2.0以上版本内网穿透快速配置教程

安装成功后,访问客户端IP+15700,验证是否可以正常访问
宝塔面板9.2.0以上版本内网穿透快速配置教程

客户端服务准备完成后,开始配置客户端
  1. [[proxies]]
  2. name = "ssh"
  3. type = "tcp"
  4. localIP = "127.0.0.1"
  5. localPort = 22
  6. # remotePort 是服务端将通过哪个端口访问客户端的22端口
  7. remotePort = 59022
  8.  
  9. [[proxies]]
  10. name = "web"
  11. type = "http"
  12. # 这个是客户端某一个服务的端口,比如青龙面板就运行在15700端口上
  13. localPort = 15700
  14. # customDomains 填写域名,这里演示直接填写服务端的IP,可以替换成域名,如:xxx.bt.cn
  15. customDomains = ["192.168.11.62"]
复制代码
点击客户端的【configure】页面,将上面的配置粘贴到如图位置
宝塔面板9.2.0以上版本内网穿透快速配置教程
粘贴后点击上方的【upload】按钮更新客户端配置文件,如果配置文件无误,此时客户端首页会显示2行已经配置好的穿透内容
宝塔面板9.2.0以上版本内网穿透快速配置教程

此时再回到服务端的web控制台,首页会出现1个客户端和2个正在穿透的服务
宝塔面板9.2.0以上版本内网穿透快速配置教程

再点击 Proxies --> TCP,此时会出现一个正在监听的TCP穿透服务,这个就是刚刚配置的客户端SSH,打开SSH终端,使用服务端的IP+59022端口访问
宝塔面板9.2.0以上版本内网穿透快速配置教程
查看连接成功后的SSH终端,这里查询IP已经出现了客户端的IP地址,SSH穿透已经成功
注意:59022端口并未在Docker创建时直接控制,如果59022端口无法访问,需要到【安全】-->【系统跟防火墙】添加端口访问

接下来验证HTTP服务是否穿透成功,点击HTTP,会出现监听的HTTP穿透服务,打开浏览器,使用服务端IP+40800端口访问
宝塔面板9.2.0以上版本内网穿透快速配置教程
 

查看访问结果,是客户端的青龙面板,HTTP穿透已经成功

目标已经达成,如果你还有疑问,可以直接查阅FRP原始帮助文档



注意:除了SSH服务的端口,应用内其他端口不经过系统防火墙,勾选【允许外部访问】后是直接允许外部访问,如果您是云服务器,勾选【允许外部访问】后,请到服务器安全组放行此数据库的端口
开放安全组示例(必需):
阿里云
腾讯云

 

 

serverAddr = "服务端ip"
serverPort = 7000

auth.method = "token"
auth.token = "token连接的时候自动生成"

webServer.addr = "客服端ip"
webServer.port = 7400
webServer.user = "frpc_user"
webServer.password = "BsTGmDZCJyHdf3Af"
webServer.pprofEnable = false

[[proxies]]
name = "web-monitor"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["*.ls33.cn", "www.ls4.cn"]

[[proxies]]
name = "[proxies]"
type = "https"
localIP = "127.0.0.1"
localPort = 443
customDomains =  ["*.ls33.cn", "www.ls4.cn"]
# tls
#transport.tls.certFile = "/etc/frp/ssl/client.crt"
#transport.tls.keyFile = "/etc/frp/ssl/client.key"
#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"