1050 字
5 分钟
外网通过域名访问 NAS

前言#

  • 之前是将黑群晖部署在内网环境中,但是这样在外网进行访问是一个问题
  • 已知黑群晖无法通过官方的 QuickConnect 实现外网的远程访问(好像可以通过洗白机器的方法实现),那么就需要通过其他方式进行内网穿透
  • 恰好,本人有一台腾讯云的云服务器(具有公网 IP),其每个月的基础流量也用不完,那么当前这个状态就非常适合使用 frp 来搭建内网穿透服务

原理介绍#

frp 官方简介#

构建原理#

  • 利用具备公网 IP 的服务器(云服务器)作为中转,外网访问云服务器的某个端口,然后通过 frp 将这个端口映射到内网的黑群晖上,从而实现外网访问黑群晖
  • 具体的速度和稳定性取决于云服务器的配置和网络环境,即云服务器的带宽

搭建过程#

服务端(frps)#

  • 在云服务器上,通过 docker 搭建 frps 服务
  • 首先在 /etc/frp 目录下创建配置文件 frps.toml
    frps.toml
    [common]
    bind_port = "监听端口"
    subdomainHost = "使用的域名"
    token = "客户端和服务端之间的身份认证,建议填写"
    dashboard_port = "面板端口"
    dashboard_user = "面板登陆用户名"
    dashboard_pwd = "面板登陆密码"
    log_file = "/var/log/frps.log"
    log_level = "info"
    log_max_day = 3
  • 创建好后,服务器端需要用 docker 拉取 frps 镜像并运行,拉不下来的,记得换源
    Terminal window
    docker pull snowdreamtech/frps
    docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps
    NOTE

    记得在服务器防火墙上开放监听端口和面板端口

  • 运行成功后,可以通过 http://[云服务器 IP]:[dashboard_port] 访问 frps 面板,并且查看当前的连接情况,那么服务器这边就搭建完成了

客户端(frpc)#

  • 在黑群晖上创建一个配置文件 frpc.toml

    frpc.toml
    [common]
    server_addr = "云服务器公网 IP"
    server_port = "frps 中的监听端口"
    token = "frps 中的客户端和服务端之间的身份认证,建议填写"
    [DSM Web] # 映射的服务名称
    # 本地服务类型,这里是群晖的 Web 管理服务
    type = "tcp"
    local_ip = "该服务器所在的内网地址,这里就是黑群晖的内网 IP 地址"
    local_port = 5000 # 群晖的 Web 管理端口
    subdomain = "使用的子域名" # 例如像使用 dsm.example.com 这样的域名来访问,则这里只需要填写 dsm 即可
    remote_port = "云服务器上的端口" # 例如 5000,则可以通过 [云服务器 IP]:5000 访问到黑群晖的 Web 管理页面
    NOTE

    记得在服务器防火墙上开放对应的 remote_port

  • 创建好后,黑群晖上通过 docker 来安装 frpc,具体 docker 名称是 snowdreamtech/frpc,将 frpc.toml 所在的文件夹映射到 /etc/frp 目录,网络记得选择 host 模式

  • 若在 http://[云服务器 IP]:[dashboard_port] 界面的 Proxy 中看到 DSM Web 的状态为 online,那么就说明黑群晖这边也搭建完成了

  • 此时通过 http://[云服务器 IP]:[remote_port] 即可访问到黑群晖的 Web 管理页面

子域名访问#

  • 首先在域名 DNS 处添加一条记录
    主机记录:[子域名] # 例如 dsm
    记录类型:A
    记录值:[云服务器 IP]
  • 然后在服务器的 nginx 中添加一个反向代理
    server {
    listen 443 ssl http2;
    server_name [子域名].[域名]; # 例如 dsm.example.com
    ... # 省略相关 ssl 证书配置
    location / {
    proxy_pass http://127.0.0.1:[remote_port]; # 例如 5000
    proxy_set_header Host $host;
    ... # 省略其他配置
    }
    }
  • 使用 nginx -s reload 重新加载配置文件,此时若正常的话,通过 https://[子域名].[域名] 即可访问到黑群晖的 Web 管理页面

参考#

frp 中文文档

独享带宽,教你搭建只属于自己的内网穿透服务器

frp内网穿透配置,含子域名配置方式

外网通过域名访问 NAS
https://suburbiaxx.fun/posts/c69735ca/
作者
SuburbiaXX
发布于
2025-02-16
许可协议
CC BY-NC-SA 4.0