核心原理: 由于家中宽带无公网IP,无法直接被外网访问。因此,我们使用一台拥有公网IP的云服务器(FRPS服务端)作为“中转站”或“桥梁”。家中的飞牛NAS(FRPC客户端)主动连接到这个桥梁,外部的访问请求先到达云服务器,再由服务器转发给家中的NAS。

架构图: 你的设备 (在外) <—> 云服务器 (FRPS) <—> 家庭网络中的飞牛NAS (FRPC)


一、 云服务器选购 (FRPS Server)

  1. 核心要求
    • 公网IP:必须是独立的公网IP地址。
    • 开放端口:需要开放一个主要端口(例如 7000)给FRPS服务端监听,以及后续需要转发的服务端口(如 80, 443, 5445 等)。
    • 配置:FRP本身很轻量,1核1G的配置完全足够。流量和带宽根据你的访问频率和文件传输大小决定。
  2. 推荐厂商
    • 阿里云 (Alibaba Cloud): 国内用户首选,网络稳定,新用户优惠多。
    • 腾讯云 (Tencent Cloud): 与阿里云类似,性价比高,活动频繁。
    • 百度云 (BCC): 你正在使用,同样满足需求。
    • 海外厂商 (AWS, GCP, Azure, Vultr, Linode): 如果你注重数据隐私或NAS服务主要面向海外用户,可以考虑。

二、 服务端 (FRPS) 配置 (在云服务器上)

  1. 安装FRP

    # 创建并进入frp目录
    mkdir -p /opt/frp && cd /opt/frp
       
    # 从GitHub下载最新版本的frp(请替换为最新版本号,例如 frp_0.54.0_linux_amd64.tar.gz)
    wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz
       
    # 解压
    tar -zxvf frp_0.54.0_linux_amd64.tar.gz
       
    # 进入解压后的目录(目录名会随版本变化)
    cd frp_0.54.0_linux_amd64
       
    # 将frps和frps.toml复制到之前创建的目录
    cp frps frps.toml /opt/frp/
    
  2. 编辑配置文件 frps.toml:

    # /opt/frp/frps.toml
       
    bindPort = 7000    # FRP服务端监听的端口,用于与客户端建立连接
       
    # 认证配置(非常重要,防止他人滥用你的服务器)
    auth.method = "token"
    auth.token = "your_strong_password_here" # 设置一个非常复杂的密码
       
    # 可选:Web管理界面(方便查看连接状态)
    webServer.addr = "0.0.0.0"
    webServer.port = 7500
    webServer.user = "admin"
    webServer.password = "another_strong_password"
    
    • bindPort:需要在云服务器的防火墙/安全组中放行此端口(如 7000)。
    • webServer.port:如果启用,也需放行此端口(如 7500)。
  3. 设置系统服务 (Systemd) 以便开机自启

    • 创建服务文件:vim /etc/systemd/system/frps.service

    • 写入以下内容:

      [Unit]
      Description=Frp Server Service
      After=network.target
           
      [Service]
      Type=simple
      User=root
      Restart=on-failure
      RestartSec=5s
      WorkingDirectory=/opt/frp
      ExecStart=/opt/frp/frps -c /opt/frp/frps.toml
           
      [Install]
      WantedBy=multi-user.target
      
    • 启用并启动服务:

      systemctl daemon-reload
      systemctl enable frps
      systemctl start frps
      systemctl status frps # 检查状态是否运行正常
      

三、 客户端 (FRPC) 配置 (在飞牛NAS上)

  1. SSH登录飞牛NAS

    • 在飞牛NAS桌面端开启“允许SSH登录”。
    • 使用SSH工具(如Termius, PuTTY, FinalShell)通过管理员账号和密码登录。
  2. 使用Docker运行FRPC

    • 创建一个目录存放配置文件:mkdir -p /opt/frnats/frpc

    • 创建并编辑配置文件:vim /opt/frnats/frpc/frpc.toml

    • 配置文件内容 frpc.toml:

      # /opt/frnats/frpc/frpc.toml
           
      serverAddr = "你的云服务器公网IP"  # 例如 "123.123.123.123"
      serverPort = 7000                 # 必须与frps的bindPort一致
           
      auth.method = "token"
      auth.token = "your_strong_password_here" # 必须与frps中设置的token一致
           
      [[proxies]]
      name = "fn-os-web"
      type = "tcp"
      localIP = "127.0.0.1" # 本地NAS的IP,在容器内所以是127.0.0.1
      localPort = 5666        # 飞牛NAS Web界面的本地端口
      remotePort = 5666       # 映射到云服务器上的端口
           
      # 你可以继续添加其他服务,例如:
      # [[proxies]]
      # name = "fn-ssh"
      # type = "tcp"
      # localIP = "127.0.0.1"
      # localPort = 22
      # remotePort = 7022   # 注意:云服务器的22端口通常已被占用,建议换为其他高端口
      
    • 重要:在云服务器的防火墙/安全组中,放行你在 remotePort 中配置的所有端口(如 80, 5445)。

  3. 创建并启动Docker容器

    docker run -d \
      --name frpc \
      --restart unless-stopped \
      -v /opt/frnats/frpc/frpc.toml:/etc/frp/frpc.toml \
      snowdreamtech/frpc:latest
    
    • --restart unless-stopped:保证NAS重启后容器自动运行。
    • -v ...:将宿主机上的配置文件挂载到容器内。
  4. 查看日志,确认连接成功

    docker logs frpc
    
    • 如果看到 "login to server success" 或类似字样,说明连接成功。

四、 最终访问方式

完成以上所有配置后,你在外网的访问方式将发生根本变化:

  • 之前 (无法访问)http://你家宽带的IP:5666
  • 现在 (可以访问)http://你的云服务器公网IP:5666

简单来说,以后在任何地方,你只需要访问你的云服务器IP地址,FRP就会自动把请求转发到你家里的飞牛NAS上。


五、 故障排查 Checklist

  1. 全部检查:云服务器和家庭NAS的时间是否准确?时间差过大会导致Token认证失败。
  2. 服务端 (FRPS)
    • systemctl status frps 状态是 active (running) 吗?
    • 云服务器的安全组/防火墙是否放行了 7000, 80, 5445 等所有用到的端口?
  3. 客户端 (FRPC)
    • docker logs frpc 日志是否有错误?最常见的错误是 Token错误连接服务器失败(检查IP和端口)。
  4. 网络问题:尝试在另一台网络环境下(如手机热点)访问,排除当前网络环境的限制。

希望这份总结能帮到你!祝你使用愉快!

分类:

更新时间: