WireGuard
While Tailscale provides a user-friendly experience for most, WireGuard is a robust built-in VPN solution in Unraid that shines in specific advanced networking scenarios. It’s particularly useful when you need detailed control over VPN routing or require server-to-server or LAN-to-LAN connections without relying on third-party services. Below are key scenarios where WireGuard excels.
何时选择WireGuard
场景 | 为什么选择WireGuard? |
---|---|
高级配置 | 允许自定义 VPN Tunnel 设置并与现有网络基础设施集成 |
服务器到服务器的隧道 | Lets you create persistent encrypted links between Unraid servers |
LAN到LAN的集成 | 连接整个网络而无需中介服务 |
带宽密集型任务 | 提供最小的协议开销以实现最大吞吐量 |
对于大多数用户而言,Tailscale可以轻松实现WireGuard的所有功能,通常更容易。它通常不需要端口转发或手动配置。然而,如果您需要高级自定义VPN设置,或有特定兼容性要求,选择WireGuard可能是更好的选择。
连接类型和使用场景
了解WireGuard中的连接类型可以帮助您决定它是否适合您:
连接类型 | 实际使用案例 |
---|---|
远程访问服务器 | Access Unraid WebGUI, Docker containers, VMs, and network shares remotely. |
远程访问局域网 | 远程访问您局域网的所有设备,就如同在本地网络上。 |
服务器到服务器访问 | Securely connect two Unraid servers for data sharing or backup. |
局域网到局域网访问 | 无缝连接两个完整的局域网,以实现网络间的流畅通信。 |
服务器枢纽&辐射访问 | 允许多个VPN客户端通过服务器相互连接。 |
局域网枢纽&辐射访问 | 通过一个中心服务器实现多个局域网之间的通信。 |
VPN隧道的访问 | Route specific Docker containers and VMs through a commercial WireGuard VPN provider. |
远程隧道访问 | Securely route all your internet traffic through your Unraid server when on untrusted networks. |
在 Unraid 上设置 WireGuard
步骤1:生成密钥
- 前往设置 → VPN管理。
- 为您的隧道命名(例如,“家庭VPN”)。
- 点击 生成密钥对 来创建公钥/私钥。
安全地存储私钥,因为它提供了完整的网络访问。
步骤2:配置您的端点
- 对于DDNS用户: 将本地端点中的IP替换为您的DDNS URL(例如,
myhome.duckdns.org
)。 - 除非与现有服务冲突,否则保持默认端口(
51820
)。
步骤3:设置端口转发
- UPnP 用户: 如果在 设置 → 管理访问 中启用,Unraid 将自动转发端口。
- 手动设置: 如果UPnP不可用:
- 登录到您的路由器。
- 将 UDP 端口
51820
转发至您的 Unraid 服务器的 LAN IP。 - 对外部和内部设置使用相同的端口。
步骤4:激活您的隧道
- 仅限受信任的访问: VPN访问类似于物理网络访问,所以只授权受信任的设备。
- 密钥管理: 切勿共享私钥;像密码一样对待它们。
- 网络分段: 对于复杂的设置(自定义 Docker/VMs),使用 VLAN 或独立子网隔离 VPN 流量。
- 定期审核: 每季度审查连接设备和访问权限。
定义一个对等(客户端)
A peer is a client device - such as a phone, laptop, or another server - that connects to your Unraid WireGuard VPN. Defining a peer means creating a unique identity and securing keys for that device.
- 选择添加对等。
- 为对等命名(例如,MyAndroid)。
- 选择初始连接类型以获得完整的网络访问,通常是_远程访问LAN_。
- 点击生成秘钥对以创建公钥和私钥。请保持私钥的安全。
- 可选地,生成预共享密钥以增加安全性。
- 点击 应用。
虽然 peer 可以生成它们自己的密钥,但让 Unraid 生成密钥可以通过提供完整的配置文件简化设置。
添加一个新peer可能会暂时禁用WireGuard隧道,这可能会中断您的连接。确保在进行更改之前有本地的服务器访问。
配置对等(客户端)
- 移动设备
- 其他设备
配置您的DNS
- 使用IP地址或完全限定的域名访问设备(例如,
yourpersonalhash.unraid.net
)。
像“tower”这样的短名称或由路由器管理的DNS条目可能无法通过VPN工作。
- 要启用短名称解析:
- 转到 Unraid 中的 设置 → VPN 管理器。
- 从基本模式切换到高级模式。
- 在对等DNS服务器字段中输入所选DNS服务器的IP地址。
- 保存更改并更新客户端配置文件。
- 推荐的DNS服务器:
- 您的LAN路由器的IP地址。
- 公共DNS服务器如
8.8.8.8
。
这种设置对于远程隧道访问模式尤为重要,在这种模式下,客户端的原始DNS服务器可能不可访问。
复杂网络
For most users, the default Use NAT setting works out of the box and allows access to Unraid and most LAN devices. However, if you use Docker containers with custom IPs or VMs with strict networking requirements:
- 在您的WireGuard隧道配置中,将使用NAT设置为否。
- 在您的路由器上,为 WireGuard 隧道网络(例如,
10.253.0.0/24
)添加静态路由,指向您的 Unraid 服务器的 IP。 - 在设置→Docker设置中,将主机访问自定义网络设置为启用。
应避免的配置
使用NAT设置 | 自定义网络的主机访问 | 服务器和Dockers(桥接/主机) | VMs 和其他 LAN 系统 | 具有自定义IP的Dockers | 备注 |
---|---|---|---|---|---|
是 | 禁用(静态路由可选) | 可访问 | 可访问 | 不可访问 | 简单的网络设置;推荐给大多数用户 |
是 | 启用(静态路由可选) | 可访问 | 不可访问 | 不可访问 | 避免此配置 |
否 | 禁用(无静态路由) | 可访问 | 不可访问 | 不可访问 | 避免;需要静态路由正确运行 |
否 | 禁 用(有静态路由) | 可访问 | 可访问 | 不可访问 | 几乎正确;启用主机自定义网络的访问 |
否 | 启用(有静态路由) | 可访问 | 可访问 | 可访问 | 复杂网络的推荐设置 |
WireGuard故障排除
WireGuard设计为不干扰——如果某些功能不起作用,它不会提供错误信息。要有效进行故障排除,您应该系统地检查设置的每个方面。
连接检查表
- ✅ The tunnel is active on both Unraid and client devices. ("Active" means the tunnel has started but is not necessarily connected.)
- ✅ DDNS URL指向您当前的公网IP并设置在本地端点中。
- ✅ 从路由器到 Unraid 转发正确的 UDP 端口,匹配 本地端点 端口。
- ✅ 客户端在任何服务器端更改后都拥有最新的配置文件。
- ✅ 在查看或分发对等配置(QR 代码/文件)之前保存更改。
其他故障排除方法
首次设置提示 - 点击展开/折叠
首次设置WireGuard时,这些提示 可以帮助您避免常见的陷阱:
- 使用移动设备在蜂窝数据(而非 Wi-Fi)上设置您的第一个客户端,以排除本地网络问题。
- 使用二维码方法进行最简便的配置传输。
握手和连接问题 - 点击展开/折叠
如果您没有看到握手或无法连接,请尝试这些有针对性的检查:
- 如果您看不到握手,请尝试生成流量(例如,ping 服务器)以触发连接。
- 禁用移动客户端上的节能、数据节省或电池节能功能,因为这些功能可能会干扰 VPN 操作。
- 确保客户端和服务器网络使用不同的子网(例如,避免同时使用
192.168.1.0/24
)。 - 如果使用Cloudflare进行DDNS,将代理状态设置为仅DNS(而非代理)。允许时间使DNS更改传播。
- 如果您可以从某些位置连接,但不能从其他位置连接,可能是远程网络阻止了UDP流量。WireGuard目前不支持启用TCP作为回退。