在 Linux 上配置 WireGuard 以进行 WebRTC 泄漏测试

在 Linux 上配置 WireGuard 以进行 WebRTC 泄漏测试

我正在尝试使用特殊配置让 wireguard 工作,以测试浏览器是否存在 WebRTC 泄漏。话虽如此,我需要一个允许隧道外流量的配置。在 Windows 中,我可以通过关闭客户端上的“阻止非隧道流量(终止开关)”复选框来实现这一点,但我从中获取的配置文件(见下文)在带有 wg-quick 的 Linux(ubuntu)上不起作用,因为没有创建有效的隧道。

我看到了分割隧道的建议,但我不确定如何在这里解决这个问题,因为我不想为特定的服务器或 IP 范围分割隧道,但允许 WebRTC 也通过默认网关进行路由(这会使泄漏可见)。

[Interface]
PrivateKey = key
Address = 10.14.0.2/16
DNS = 162.252.x.x, 149.154.x.x

[Peer]
PublicKey = fJDA+OA6jzQxfRcoHfC27xz7m3C8/590fRjpntzSpGo=
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1
Endpoint = example.com:51820

有什么想法吗,为什么这在 Linux 上不起作用?或者也许有想法如何在 Linux 环境中设置此用例?当我在 Linux 配置中设置 AllowedIPs = 0.0.0.0/0 时,隧道可以工作,但现在所有流量都通过隧道路由(WebRTC 泄漏不可见)。

也许设置有点特殊,但我真的很想了解为什么它的表现不一样。非常感谢您的回答。

答案1

如果要使发布的配置在 Linux 上工作,则需要为 example.com(或您实际使用的任何端点地址)添加显式路由。在关闭 WireGuard 接口的 Linux 系统上运行以下命令,以确定它通常如何路由到 example.com:

$ host example.com
example.com has address 93.184.216.34
$ ip route get 93.184.216.34
93.184.216.34 via 192.168.1.1 dev eth0 src 192.168.1.123 uid 1000

然后为其添加一条明确的路线:

$ sudo ip route add 93.184.216.34 via 192.168.1.1 dev eth0

有了这个明确的路由,您应该能够启动一个可以正常工作的 WireGuard 隧道;而且大多数内容都将通过该隧道进行路由 - 与您AllowedIPs = 0.0.0.0/0在 WireGuard 配置中使用时的工作方式非常相似。


但是,在您的问题中,您写道,AllowedIPs = 0.0.0.0/0在 WireGuard 配置中使用不会产生您想要的结果。如果您编辑问题以描述要通过 WireGuard 隧道路由哪些流量以及要通过本地默认网关路由哪些流量,将会很有帮助。以下是我的前三个猜测:

  1. 您希望仅10.14.0.2/16通过隧道进行路由,并将所有公共互联网流量路由出本地默认网关。如果是这样,请将您的 WireGuard 配置更改为以下内容:

     [Interface]
     PrivateKey = key
     Address = 10.14.0.2/16
    
     [Peer]
     PublicKey = fJDA+OA6jzQxfRcoHfC27xz7m3C8/590fRjpntzSpGo=
     AllowedIPs = 10.14.0.0/16
     Endpoint = example.com:51820
    
  2. 您希望通过隧道路由所有公共互联网流量,并将所有本地流量路由出本地默认网关。如果是这样,请将您发布的配置更改为使用AllowedIPs = 0.0.0.0/0,并为本地专用网络添加显式路由,如下所示(或您希望通过本地网关而不是 WireGuard 隧道访问的任何网络):

     ip route add 10.0.0.0/8 via 192.168.1.1 dev eth0
     ip route add 172.16.0.0/12 via 192.168.1.1 dev eth0
     ip route add 192.168.0.0/16 via 192.168.1.1 dev eth0
    
  3. 您希望通过隧道路由大部分公共互联网流量,但将 STUN/TURN 查询路由出本地默认网关。如果是这样,请将您发布的配置更改为使用AllowedIPs = 0.0.0.0/0,并为您想要的例外添加策略路由规则。例如,以下规则会通过您的默认网关将流量发送到标准 STUN/TURN 端口:

     ip rule add dport 3478 ipproto udp table main priority 100
     ip rule add dport 3478 ipproto tcp table main priority 100
     ip rule add dport 5349 ipproto tcp table main priority 100
    

查看路由所有流量WireGuard 路由和网络命名空间集成页面的部分,解释了使用AllowedIPs = 0.0.0.0/0with时会发生什么情况wg-quick在 Linux 上。

相关内容