wireguard 服务器 MAQUERADE/SNAT 低 iptables 流量统计

wireguard 服务器 MAQUERADE/SNAT 低 iptables 流量统计

我已将我的家庭 Ubuntu 22.04 服务器设置为wireguard 服务器。我从Ubuntu 22.04笔记本电脑wireguard客户端连接到它,从互联网通过我的家庭网络防火墙连接到wireguard服务器,所以看起来我的笔记本电脑位于家里。进行此设置是为了让我在国外时可以看到受限制的国内内容。例如,国家电视台太聪明了,不会被在我的祖国终止的 Proton VPN 愚弄,以获取其中的某些内容。

wireguard 服务器配置为通过以下 iptables 规则之一将客户端wireguard 流量路由到 Internet:

iptables -t nat -A POSTROUTING -s 10.x.x.x/24 -o enp3s0 -j MASQUERADE
 or 
iptables -t nat -A POSTROUTING -s 10.x.x.x/24 -o enp3s0 -j SNAT --to-source 10.y.y.y

看起来两者都工作得同样好。

10.xxx/24是wireguard vpn,10.yyy是连接到我的LAN的传出以太网端口enp3s0的IP地址,该端口具有固定的IP地址。

我应该提到的是,我已经在两台主机上禁用了 UFW,并且使用“iptables-save”检查了 iptables 规则是否符合上述规则。并且服务器配置为 ipv4 转发。

我的“问题”主要是一个理解问题,希望有人能解释一下。现在,据我所知,整个设置就像一个魅力。当通过我的家庭防火墙从互联网连接时,客户端可以访问wireguard服务器上的资源,并且来自客户端的互联网流量不再直接进入网站,而是出现(确实需要)通过我的家庭wireguard服务器,到达互联网的源 IP 地址是我的家庭路由器/防火墙的 IP 地址,如 Whatismyipaddress.com 网站所示。因此,从笔记本电脑wireguard客户端到各个网站的traceroute显示第一跳是wireguard服务器wg0接口的IP地址,如果它正常工作的话,这是预期的。 “问题”是,当我在wireguard客户端上播放youtube视频时,我预计会看到来自MASQUERADE/SNAT规则(sudo iptables -L -nv -t nat)的大量iptables流量。但是,当我将 MASQUERADE/SNAT 规则的 iptables 流量与wireguard 服务器总流量进行比较时,它仅占总wireguard 流量的一小部分。

我本来预计几乎​​所有通过服务器发往互联网的客户端wireguard流量都必须使用连接到我的家庭LAN的wireguard服务器的出口enp3s0以太网接口的IP地址进行伪装?

我非常确定一切都按预期工作,但我希望有人可以解释为什么 SNAT/MAQUERADE 流量仅占总流量的一小部分?

答案1

很抱歉用我的问题打扰社区。阅读 iptables 手册页后,我发现 NAT 仅在创建新连接时使用 - 但不适用于每个数据包。我猜 iptables 状态机会自动检测任何后续数据包也应该进行 NAT。

相关内容