我正在尝试提出一个解决方案来绕过传入和传出的 docker 容器中的 vpn 隧道。
我使用的 VPN 是 Mullvad VPN,在隧道分割段他们已经解决了如何排除某些 IP 的传出流量的问题。这对我的 Docker 容器不起作用,因为我的容器的流量是通过 Mullvad VPN 创建的隧道路由的。
这是我的 nftables 配置:
define EXCLUDED_IPS = {
# An ip to bypass
1.2.3.4,
}
define CONTAINER_IPS = {
# Local Proxy
10.10.5.0/24,
}
table inet excludeTraffic {
chain excludeOutgoing {
type route hook output priority 0; policy accept;
ip daddr $EXCLUDED_IPS ct mark set 0x00000f41 meta mark set 0x6d6f6c65;
}
# I have created this chain which is not working
chain excludeContainerFromTunnel {
type route hook output priority -5; policy accept;
ip daddr $CONTAINER_IPS ct mark set 0x00000f41 meta mark set 0x6d6f6c65;
}
}
容器的网络与 绑定10.10.5.1
,并且是具有 子网的桥接网络10.10.5.0/24
。
编辑:输出ip rule
:
$ ip rule
0: from all lookup local
32764: from all lookup main suppress_prefixlength 0
32765: not from all fwmark 0x6d6f6c65 lookup 1836018789
32766: from all lookup main
32767: from all lookup default
答案1
您是否尝试过禁用 vpn?据我所知,以前尝试过类似的事情,vpn 连接上的适配器流量会被消耗,无法通过同一适配器绕过它。如果您可以创建一个虚拟适配器,但使用相同的网卡,然后将其授予您尝试与之通信的网络的成员资格,那将很有趣。
我假设您希望您的机器能够连接到互联网和局域网,但不使用 VPN 路由或阻止另一个?