家庭 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 的情况。 方法:
- 在 NAS 或路由器上开启 DDNS(如 Synology 提供 xxx.synology.me,或用 No-IP、DuckDNS)。
- 配置 端口转发(与方法 1 类似)。
- 访问 http://你的DDNS域名:端口 即可。
安全建议:
- 搭配防火墙限制 IP 访问范围。
- 结合 HTTPS 加密。
3. 使用 FRP(免费开源的内网穿透工具)
适用于没有公网 IP,且不想用 DDNS 或 VPN 的情况。 方法:
- 在云服务器上部署 FRP 服务端。
- 在家庭 NAS 或路由器上运行 FRP 客户端,将本地 NAS 映射到公网。
- 在外网通过 云服务器 IP 或域名 访问 NAS。
参考教程:
- FRP 官方文档
- 服务器上运行 frps,客户端运行 frpc,通过 frpc.ini 配置转发规则。
4. 使用 Tailscale/ZeroTier(P2P VPN)
适用于无公网 IP 且不想用 FRP 的情况,适合安全性要求较高的用户。 方法:
- 在 NAS 和外网设备上安装 Tailscale 或 ZeroTier。
- 登录同一账户,NAS 会获得一个虚拟 IP。
- 在外网用该虚拟 IP 访问 NAS。
优点:
- 免端口转发,适用于封闭 NAT 网络。
- 连接加密,安全性高。
- 适合远程访问 SMB、SSH、Web 端等。
5. 购买第三方内网穿透服务
如 向日葵内网穿透、花生壳 等,适合不想折腾 FRP/VPN 的用户。 方法:
- 注册并绑定 NAS 设备。
- 通过官方提供的外网地址访问 NAS。
优点:
- 配置简单,适合小白用户。
- 适用于家宽 NAT 限制的情况。
缺点:
- 可能有限速或收费。
- 依赖第三方服务,安全性取决于提供商。
推荐方案
- 有公网 IP:使用 DDNS + 端口转发(或 VPN)。
- 无公网 IP(ISP 限制):使用 FRP 或 Tailscale/ZeroTier。
- 小白用户:使用 花生壳/向日葵 等第三方服务。
我的域名和服务器都是Netcup的,Netcup 提供 VPS(云服务器)和域名服务,如果你想用 Netcup 来实现 NAS 的内网穿透,可以用 FRP 或 WireGuard 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