WireGuard 是否支持 VPN 服务器向其客户端推送路由和 DHCP 选项的方式,就像 OpenVPN 所做的那样:
push "route 10.0.2.0 255.255.255.0 "
push "dhcp-option DNS 10.66.0.4"
我有 100 多个客户端动态设置它们与 VPN 服务器的 VPN 连接,我希望在它们连接到 VPN 服务器时安装这些路由和选项。
通过在客户端配置中设置参数来完成路由甚至拆分隧道Allowed IPs
!
客户端配置
[Interface]
# client001 #
PrivateKey = <private key of client>
Address = 100.64.0.100/32
DNS = 100.64.0.1
[Peer]
PublicKey = <public key of server>
PresharedKey = <preshared key for client>
AllowedIPs = 100.64.0.0/10, 192.168.178.0/24
Endpoint = <your-ip-or-fqdn.to.connect>:<port>
PersistentKeepalive = 25
服务器配置
[Interface]
Address = 100.64.0.1/10
SaveConfig = true
ListenPort = 51820
PrivateKey = <private key of server>
[Peer]
PublicKey = <public key of client>
PresharedKey = <preshared key for client>
AllowedIPs = 100.64.0.100/32
在这种情况下,客户端的配置在客户端AllowedIPs = 100.64.0.0/10, 192.168.178.0/24
上设置路由以将 100.64.0.0/10 和 192.168.178.0/24 的所有内容发送到 wireguard 隧道,但没有其他内容。(IP 转发和伪装也在 WireGuard 服务器上激活。)
该DNS = 100.64.0.1
参数告诉客户端使用100.64.0.1
(在我的情况下是 WireGuard 服务器)作为 DNS 服务器。即使 DNS 位于 WireGuard-Server 本身,互联网流量仍然直接路由,只有 DNS 由我的自定义 DNS 完成。
使用当前版本,这是不可能的。IPSec 和 OpenVPN 有数千行代码来处理路由策略(至少是 IPSec)以及 IP 地址的配置。Wireguard 希望这些在每个文件中都被硬编码,至少在这个时间点上。
请注意,拥有点对点接口比 OpenVPN 的多种桥接模式要好,但无法在内核模块内部配置接口。IE。没有第 2 层代码。有点遗憾,因为其余的都很干净。