NAS上的FRP内网穿透搭建笔记(+花生壳动态域名)

      发布在:all      评论:0 条评论

肝了两个晚上,好几小时,踩了无数坑,从NPS折腾到FRP,从腾讯云服务器折腾到本地NAS,从centOS折腾到win,终于搞出来一套成功的内网穿透方案。此笔已被追溯和后续运维修改配置。

一开始在腾讯云服务器上(centOS 7.9 , 宝塔环境(php,mysql,apache,phpmyadmin)),用宝塔应用商店的内网frp穿透插件,还参看了宝塔官网论坛的教材,各种稀奇古怪的问题,白天防火墙, 腾讯云安全组,最在AI辅助下一直说我的toml配置文件编码问题,AI来回无数个方案最终高还是没有解决,遂浪费2小时。

然后换nps,还是在腾讯云上搞,在AI的配合下,肝了两小时,老是因为443端口的问题(最后才知道和宝塔有冲突), 整到AI无语,直接让我升级版本避免现行版本的bug,结果没有新版本了,猝。AI建议我用frp , 遂浪费2小时

第二天一早,突然想到能不能服务端也用win , AI回复可以。我决定在我的NAS上启个虚拟机,虚拟机里面安装win10。跟着AI教程一步一步肝2小时,最终成功了。

目标:通过公网 Win10(带花生壳动态域名)实现外网访问内网 Win10 的 Web 服务与远程桌面  . 一个跑在NAS上的虚拟机上的win10
服务机:Windows 10,已安装花生壳,绑定动态域名myhost.com
客户内网机:Windows 10,运行多个本地服务(Web、RDP 等)
工具:frp(v0.58+)、NSSM(服务管理)、Windows 防火墙


一、整体架构

1[内网 Win10]

├─ Web 服务 A:http://127.0.0.1:7860 → 映射到公网 :78604

├─ Web 服务 B:http://127.0.0.1:5005 → 映射到公网 :78615

├─ 文件服务器:http://127.0.0.1:8023 → 映射到公网 :80236

├─ 远程桌面:3389 → 映射到公网 :60017│8

└─ frpc(客户端)──TCP 加密隧道─

myhost.com:7000│[公网 Win10 上的 frps(服务端)]

│外网用户通过 myhost.com:7860 / :7861 / :8023 访问 Web

外网用户通过 myhost.com:6001 连接远程桌面


二、服务端配置(公网 Win10)

1. 下载与目录

2. 配置文件 C:\frp-server\frps.toml

Toml

编辑

1[common]2bind_port=7000# frpc 连接端口3dashboard_addr=0.0.0.0# 允许外网访问 Dashboard4dashboard_port=8090# Dashboard 端口5dashboard_user="admin"6dashboard_pwd="YourStrongPassword"# ← 务必修改!7token="YourSecureToken"# 客户端必须一致8log_level=info9log_max_days=3

🔐安全提示:

  • 密码和 token 必须加双引号(避免数字开头被误解析,血泪啊 win 下面解析异常,)
  • 不要使用默认密码
  • 启动命令cmd下:切换到frps目录: frps.exe -c frps.toml

3. 设置开机自启(使用 NSSM)

  1. 下载 NSSM,解压
  2. 管理员 CMD 执行:

    Cmd

    编辑

    1nssm install frps

    • Path: C:\frp-server\frps.exe
    • Startup directory: C:\frp-server
    • Arguments: -c frps.toml
  3. 启动服务:

    Cmd

    编辑

    1net start frps

4. 防火墙放行端口

5. 路由器做端口转发规则并生效


三、客户端配置(内网 Win10)

1. 下载与目录

2. 配置文件 D:\frp-client\frpc.toml

Toml

编辑

1[common]2server_addr=myhost.com# 花生壳动态域名3server_port=70004token="YourSecureToken"# 必须与服务端一致56# Web服务7[web_qimage]8type=tcp9local_ip=127.0.0.110local_port=786011remote_port=78601213# web1平台14[web_ops]15type=tcp16local_ip=127.0.0.117local_port=500518remote_port=78611920# CHFS 文件服务器21[file_server]22type=tcp23local_ip=127.0.0.124local_port=802325remote_port=80232627# 远程桌面(RDP)28[rdp]29type=tcp30local_ip=127.0.0.131local_port=338932remote_port=6001

⚠️关键注意:

  • 每个 [xxx] 名称必须全局唯一
  • 不要在配置行末加 # 注释,会导致域名解析失败 (血泪啊,不要加注释)
  • 所有 remote_port 必须避开 Chrome 不安全端口(如 6000),推荐使用 7000+ 或 80xx (血泪啊,6000段的端口死活不同,最后才知道和浏览器有关系)
  • 启动命令cmd下:切换到frpc目录: frpc.exe -c frpc.toml

3. 设置开机自启(同样用 NSSM)


四、验证与访问方式

服务 外网访问地址
Qimage-edit http://myhost.com:7860
运维平台 http://myhost.com:7861
CHFS 文件服务器 http://myhost.com:8023
远程桌面 使用“远程桌面连接” → 输入 myhost.com:6001
Dashboard(监控) http://myhost.com:8090(账号/密码见 frps.toml)

✅ 建议在外网(如手机 4G)测试,避免本地回环干扰


五、常见问题与解决

问题现象 原因 解决方案
Dashboard 循环登录 密码未加引号或以数字开头 dashboard_pwd = "pwd"
no such host 配置文件行尾有 # 注释 删除所有行尾注释
浏览器报 ERR_UNSAFE_PORT 使用了 Chrome 黑名单端口(如 6000) 改用 7860、8080、8023 等安全端口
某个端口不通 防火墙未放行 / 本地服务未启动 检查 netstat、放行端口、确认服务运行
代理未生效 代理名称重复(如两个 [app]) 确保每个 [xxx] 唯一

六、维护建议

  1. 定期检查花生壳客户端是否在线,确保 myhost.com 解析正确
  2. 升级 frp 到最新版,修复安全与兼容性问题
  3. 不要暴露高危端口(如 3389、3306)到公网,除非必要
  4. 可通过 Dashboard(:8090)实时监控连接状态与流量

📌备注:本方案适用于家庭宽带、无固定公网 IP 场景,成本低、配置灵活,适合个人开发、远程办公、NAS 访问等场景。


✅当前状态:全部服务正常运行


one more thing:

没想到有了腾讯云固定公网IP的服务,折腾了数小时没成功,最终还是靠NAS。

All  in one FnNAS  is very good 。

Responses

滇ICP备14007443号-4