使用frp实现内网穿透,通过域名访问本地服务
我有一台Ubuntu24.04系统的家庭服务器,并在服务器上安装了nextcloud云盘服务,通过配置frp内网穿透服务,在外网通过域名随时查看本地文件。
与
Tailscale
或ZeroTier
相比,此方式无需安装客户端,可以通过域名直接访问内网服务。
需要有一个公网ip的服务器,连接速度取决于公网服务器的网速。
公网服务器安装frps服务
[!NOTE] 说明
1Panel 是一个 Web 图形界面的 Linux 服务器管理工具,应用商店内容丰富,以下操作均以1panel为例。
- 应用商店中搜索并安装frps应用,并进入安装目录
- 编辑
.env
文件
CONTAINER_NAME="1Panel-frps-Nzx7"
CPUS=0
MEMORY_LIMIT=0
PANEL_APP_PORT_HTTP=7500 #后台端口
PANEL_APP_PORT_SERVICE=7000 #服务端口
PASSWORD="后台密码"
USER_NAME="后台用户名"
- 编辑
frps.toml
文件
bindAddr = "0.0.0.0"
bindPort = 7000
auth.method = "token"
auth.token = "token123456"
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "用户名"
webServer.password = "密码"
本地服务器安装frpc服务
- 应用商店中搜索并安装frpc应用,并打开后台
- 后台配置需要穿透的服务
[!NOTE] 配置
以ssh服务和nextcloud服务为例,本地端口分别是22和2380
serverAddr = "168.138.215.235" #公网服务器ip
serverPort = 7000
auth.method = "token"
auth.token = "token123456"
webServer.addr = "0.0.0.0"
webServer.port = 7400
webServer.user = "后台用户名"
webServer.password = "密码"
webServer.pprofEnable = false
[[proxies]]
name = "ssh" #ssh服务
type = "tcp"
localIP = "127.0.0.1" #本地ip
localPort = 22 #本地端口
remotePort = 222 #远程端口
[[proxies]]
name = "nextcloud" #nextcloud服务
type = "tcp"
localIP = "127.0.0.1"
localPort = 2380 #本地端口
remotePort = 6001 #远程端口
[[proxies]]
name = "onlyoffice"
type = "tcp"
localIP = "127.0.0.1"
localPort = 2280
remotePort = 6002
[[proxies]]
name = "joplin"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22300
remotePort = 6003
- 重启frp服务,查看运行情况
frpc端
frps端
- 公网ip+远程端口访问本地服务
配置反向代理实现域名访问本地服务
- 将公网ip解析到域名上
-
公网服务器安装
nginx-proxy-manager
-
配置反向代理
4.申请ssl证书
5. 配置完成,通过域名访问服务
效果如下
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 无辣的学习笔记
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果