侧边栏壁纸
博主头像
恪晨的小站 博主等级

行动起来,活在当下

  • 累计撰写 153 篇文章
  • 累计创建 43 个标签
  • 累计收到 29 条评论

目 录CONTENT

文章目录

Openwrt + frp + nginx proxy manager实现无端口域名访问内网服务

恪晨
2025-04-23 / 0 评论 / 0 点赞 / 5 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前提

  • 你有一台Nas
  • 你有一台有公网IP的服务器,服务器上安装了docker,docker-compose
  • 你有一个路由器刷了openwrt,当然这个不是必须,nas上也可以部署openwrt
  • 你有一个域名

前言

当我们在Nas上部署很多服务,比如Halo博客、dpanel、青龙等等很多好玩的服务,但是访问的时候都需要是内网访问并且都是IP+端口,然后你正好拥有一台闲置的服务器,那部署frp加上nginx-proxy-manager刚好可以解决。

效果

image.png

image-hzrt.png

frp部署

首先下载frp服务端文件frp服务端,根据自己的服务器内核下载对应的版本,下载好以后根据文档直接安装即可,在frps.toml中配置以下内容即可,网上也有很多可以参考,因为我们后面用的客户端是openwrt安装好的,所以只需要在服务器上部署frps即可。

bindPort = 7000
auth.method = "token"
# token将用在客户端连接
auth.token = "woshitoken"
webServer.addr = "0.0.0.0"
webServer.port = 7500
# dashboard 用户名密码,可选,默认为空
webServer.user = "xxx"
webServer.password = "xxxxxx"

部署好以后直接启动,可以命令直接启动,也可以后台启动一般都是后台启动
nohup ./frps -c ./frps.toml &> /dev/null &
启动以后直接打开 http://IP:7500,用上面设置的webServer.user和password登陆,打开正常则表示启动成功

image-167p.png

nginx-proxy-manager部署

nginx-proxy-manager是使用docker-compose部署的,首先要在服务器安装docker和docker-compose,

  • 创建一个文件夹
    mkdir -p docker/data/nginx_proxy_manager
  • 进入文件夹,创建vim docker-compose.yml
  • docker-compose.yml文件内容如下:
version: '3.3'
services:
  app:
    image: 'chishin/nginx-proxy-manager-zh'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  • 我用的是中文版的镜像,正常也可以使用原版的镜像,image名称替换一下即可,保存文件后直接使用命令启动即可:docker-compose up -d
  • 容器启动后后,打开http://IP:81,登陆即可,默认的登陆信息如下,登陆后及时修改账号和密码
Email:    admin@example.com
Password: changeme

image-uj2t.png

  • 如果你服务器之前安装过nginx,则需要卸载干净,并将相关的进程kill,不然容器启动会报端口冲突的错误

frp配置

配置frp客户端

登陆到openwrt,找到frp内网穿透,勾选已启动,设置以下内容,设置完成后保存并应用即可。

  • 服务器:你的服务器IP
  • 端口:7000,上面设置好的bindPort
  • 令牌:woshitoken,上面设置好的auth.token
  • 用户名:随意
  • 其他保持默认

image-y9ug.png

配置以后记得在openwrt的防火墙-端口转发中打开对应的端口转发,不然应该是访问不到的

配置代理服务

点击下方的添加

  • 开启状态:启用
  • Frp协议类型:根据自己需要,一般TCP即可
  • 远程端口:就是到时候你服务器IP:端口要访问的这个端口
  • 内网主机地址:选择你要代理的内网主机,这里我选择的是路由器的内网地址
  • 内网主机端口:填写你要代理的服务的端口
  • 服务备注名:自定义即可
  • 其他保持默认即可

image-5mrw.png

image-xpan.png
增加以后我们通过http://服务器IP:9999就能访问到我的路由器后台了

nginx-proxy-manager配置

登陆nginx-proxy-manager,点击ssl证书tab页面,点击添加证书,可以自己上传证书,也可以使用Let's Encrypt 的证书,这里我们使用Let's Encrypt的证书

image-fjq5.png

  • 域名:使用通配域名
  • 输入自己的邮箱,
  • 勾选使用DNS认证,我用的是阿里云的域名,所以DNS提供者使用Aliyun,证书的key根据自己实际情况添加,
  • 填写后保存即可自动创建证书

image-yqxz.png

点击主机-选择代理服务-新建代理服务

image-sk5a.png

  • 域名:即你要配置的子域名,
  • 协议:http,或根据你在openwrt配置的frpc情况
  • 转发主机:就是你的服务器IP,因为已经使用frp代理了
  • 转发端口:就是你在frpc中配置远程访问端口

image-lqwk.png

选择SSL,勾选你刚创建的那个ssl证书,保存即可

image-jniv.png

配置好以后,就可以用你的域名访问你的内网服务了

nginx-proxy-manager的作用其实就是将nginx的配置界面化,省去了很多麻烦,本质还在在修改nginx的配置文件。

结尾

通过上述的配置,就可以使用域名直接访问你的nas服务了,并且支持在任何地方访问,也可以根据自己的需求配置像mysql、mongo等这种数据库代理地址,访问的时候也可以大大的简化记端口的问题,当然在配置frpc的时候记得按需配置,不要暴露过多的端口。

0
广告 广告

评论区