在此处描述的场景中,我最终在客户端中使用了此配置(端点 WG 服务器有两个公共 IP)
[Interface]
Address = <ip_to_use>/32
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[Peer]
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
AllowedIPs = 0.0.0.0/0
Endpoint = <wg_server_ip>:51820
PersistentKeepalive = 10
现在我想从 Wireguard 隧道中排除来自用户的所有进程或所有数据包(往返)某些端口。
我注意到这可以使用 WG 自己设置的 fwmark 来完成,我不需要使用其他标记,如建议的here。
这是 Ubuntu 16.04 上的 IPtables 1.6。如何使用 wg-quick 创建的标记从 WG 隧道中排除每个用户或每个端口?
我找到的解决方案是升级到 Ubuntu 18.04.1,它启用了以下新功能,可以在一行中处理问题:
使用内核 4.15 运行 16.04.5 不允许
uidrange
. 使用 uidrange 还需要 iproute2 的版本高于 Xenial repo 提供的版本。仅 iptables 1.6.1 是不够的。