如何通过同一 LAN 中的另一台主机路由一台主机的网络流量?

如何通过同一 LAN 中的另一台主机路由一台主机的网络流量?

因此主机 A(mac OS)有 ip:10.1.10.65主机 B 的 IP 为:10.1.10.68,它是主机 A 上的虚拟机中的 Linux Ubuntu。我想将所有来自主机 A 的流量路由到主机 B。

我目前所做的是在主机 B 上启用了 IP 转发:

sysctl net.ipv4.ip_forward=1

在主机 A 上:

route delete default
route add default 10.1.10.68

完成这些操作后,我可以在主机 A 上正常浏览互联网,但我真的不确定现在是否所有流量都已通过主机 B 路由。我读了一些其他帖子,他们提到iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE在主机 B 上使用,我没有在主机 B 上使用此命令,但我仍然能够在主机 A 上正常访问互联网。我这里遗漏了什么吗?我如何知道我已正确通过主机 B 路由流量?谢谢。

答案1

互联网上许多人错误地认为他们需要iptables路由(这是我的一个烦恼)。

您可以使用 检查主机 A 上的路由,它将根据当前规则ip route get a.b.c.d告诉您 IP 的下一跳在哪里。a.b.c.d

您还可以使用traceroute、 或mtr或类似命令来查看数据包所采用的实际路径(只要它们经过的主机未配置为阻止这种情况)。

顺便说一句,route是旧命令,ip route ...是新版本,并且新内核的某些路由功能只能通过 访问ip route

答案2

在主机 A 上运行 traceroute 8.8.8.8。第一跳将告诉您流量正在经过哪台机器。

相关内容