家庭NAS如何通过内网穿透构建私有网盘

家庭 NAS内网穿透可以让你在外网访问家中的 NAS 设备。以下是几种常见的方法:

1. 使用公网 IP 直连(适用于有公网 IP 的情况)

方法:

  • 登录 NAS 或路由器,查看是否有公网 IP(在 IP 查询网站 看到的 IP 是否与路由器的 WAN 口 IP 一致)。
  • 在路由器上设置 端口转发(如 5000/5001 端口用于 Synology DSM,445/139 端口用于 SMB)。
  • 在外网直接访问 http://<你的公网 IP>:<端口> 即可。

安全建议:

  • 更改默认端口,避免被扫描攻击。
  • 开启 HTTPS/SSL 证书 保障传输安全。
  • 使用 VPN 代替端口转发(下文介绍)。

2. 使用 DDNS(动态域名解析)+ 端口转发

适用于没有固定公网 IP,但 ISP 分配的是公网 IP 的情况。 方法:

  1. 在 NAS 或路由器上开启 DDNS(如 Synology 提供 xxx.synology.me,或用 No-IP、DuckDNS)。
  2. 配置 端口转发(与方法 1 类似)。
  3. 访问 http://你的DDNS域名:端口 即可。

安全建议:

  • 搭配防火墙限制 IP 访问范围。
  • 结合 HTTPS 加密。

3. 使用 FRP(免费开源的内网穿透工具)

适用于没有公网 IP,且不想用 DDNS 或 VPN 的情况。 方法:

  1. 在云服务器上部署 FRP 服务端
  2. 在家庭 NAS 或路由器上运行 FRP 客户端,将本地 NAS 映射到公网。
  3. 在外网通过 云服务器 IP 或域名 访问 NAS。

参考教程:

  • FRP 官方文档
  • 服务器上运行 frps,客户端运行 frpc,通过 frpc.ini 配置转发规则。

4. 使用 Tailscale/ZeroTier(P2P VPN)

适用于无公网 IP 且不想用 FRP 的情况,适合安全性要求较高的用户。 方法:

  1. 在 NAS 和外网设备上安装 TailscaleZeroTier
  2. 登录同一账户,NAS 会获得一个虚拟 IP。
  3. 在外网用该虚拟 IP 访问 NAS。

优点:

  • 免端口转发,适用于封闭 NAT 网络。
  • 连接加密,安全性高。
  • 适合远程访问 SMB、SSH、Web 端等。

5. 购买第三方内网穿透服务

向日葵内网穿透花生壳 等,适合不想折腾 FRP/VPN 的用户。 方法:

  1. 注册并绑定 NAS 设备。
  2. 通过官方提供的外网地址访问 NAS。

优点:

  • 配置简单,适合小白用户。
  • 适用于家宽 NAT 限制的情况。

缺点:

  • 可能有限速或收费。
  • 依赖第三方服务,安全性取决于提供商。

推荐方案

  1. 有公网 IP:使用 DDNS + 端口转发(或 VPN)。
  2. 无公网 IP(ISP 限制):使用 FRPTailscale/ZeroTier
  3. 小白用户:使用 花生壳/向日葵 等第三方服务。

我的域名和服务器都是Netcup的,Netcup 提供 VPS(云服务器)和域名服务,如果你想用 Netcup 来实现 NAS 的内网穿透,可以用 FRPWireGuard VPN 进行配置。

方法 1:使用 Netcup VPS + FRP 内网穿透(推荐)

如果你的家庭网络没有公网 IP(或被运营商封锁了端口),可以用 FRP(Fast Reverse Proxy) 在 Netcup VPS 上转发 NAS 的流量。

1. 在 Netcup VPS 上安装 FRP 服务端(frps)

首先,连接到你的 VPS(假设你的 VPS 运行的是 Debian/Ubuntu):

# 下载 FRP
wget https://github.com/fatedier/frp/releases/latest/download/frp_0.51.3_linux_amd64.tar.gz
tar -xzf frp_0.51.3_linux_amd64.tar.gz
cd frp_0.51.3_linux_amd64

编辑 frps.ini 配置文件(服务端配置):

[common]
bind_port = 7000
vhost_http_port = 8080   # 让 VPS 通过 8080 端口转发 NAS 的 Web 界面
vhost_https_port = 8443

然后运行 FRP 服务端:

./frps -c frps.ini

2. 在家庭 NAS 上安装 FRP 客户端(frpc)

下载和解压 FRP(与 VPS 版本相同)。 然后编辑 frpc.ini(客户端配置):

[common]
server_addr = <你的 Netcup VPS IP>
server_port = 7000

[web]
type = http
local_port = 5000  # Synology DSM 默认是 5000 端口
custom_domains = mynas.yourdomain.com

然后运行 FRP 客户端:

./frpc -c frpc.ini

这样,你可以在外网通过
http://mynas.yourdomain.com:8080 访问你的 NAS 界面。


3. 使用 systemd 让 FRP 开机自启

在 VPS 上创建 frps.service:

sudo nano /etc/systemd/system/frps.service

内容如下:

[Unit]
Description=FRP Server
After=network.target

[Service]
ExecStart=/root/frp_0.51.3_linux_amd64/frps -c /root/frp_0.51.3_linux_amd64/frps.ini
Restart=always
User=root

[Install]
WantedBy=multi-user.target

保存后启用并启动 FRP:

sudo systemctl enable frps
sudo systemctl start frps

在 NAS 端同样创建 frpc.service 并启用 frpc,这样 NAS 端也能开机自动运行 FRP。


方法 2:使用 Netcup VPS + WireGuard VPN(更安全)

如果你更注重安全,可以用 WireGuard VPN,让外网设备连接到家里的 NAS,就像它是局域网的一部分。

1. 在 Netcup VPS 上安装 WireGuard

sudo apt update && sudo apt install wireguard -y

编辑 /etc/wireguard/wg0.conf:

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <你的服务器私钥>

[Peer]
PublicKey = <NAS 公钥>
AllowedIPs = 10.0.0.2/32

启动 WireGuard:

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

2. 在 NAS 上配置 WireGuard

在 NAS 上安装 WireGuard 客户端,并添加以下配置:

[Interface]
Address = 10.0.0.2/24
PrivateKey = <你的 NAS 私钥>
DNS = 8.8.8.8

[Peer]
PublicKey = <VPS 公钥>
Endpoint = <你的 Netcup VPS IP>:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25

连接后,你可以用 10.0.0.2 访问 NAS,就像它在你本地一样。


总结

  • 如果你想远程访问 NAS 的 Web 界面(DSM、Nextcloud)推荐 FRP
  • 如果你想访问 SMB 共享、SSH、局域网服务推荐 WireGuard VPN
  • 如果你不想折腾用 Tailscale 或 Zerotier
原文链接:,转发请注明来源!