在 Linux VM 上启用数据包转发

在 Linux VM 上启用数据包转发

我的 Mac 上有一个运行着的 Linux VM。

我启用了端口转发,将到我的机器的任何流量转发到我的虚拟机,在虚拟机中我有一个 netcat 服务器将流量记录到控制台。

这有效并且我能够将每个传入的数据包写入控制台。

然后,我尝试启用数据包转发,以便将隧道数据包转发到互联网并返回,但没有成功。

我通过运行以下命令在 Linux VM 上启用了 IP 转发:

sysctl -w net.ipv4.ip_forward=1

然后我使用 iptables 尝试将数据包从一个接口转发到另一个接口:

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

其中 eth0 是 netcat 服务器监听的接口,eth1 是将流量转发到互联网的接口。

但是,经过此配置(并尝试对 IP 表规则进行一些修改)后,我无法将数据包转发到互联网。

据我了解,我只是想通过将数据包从一个接口写入另一个接口来转发发往我的机器的隧道数据包(其有效负载是另一个 IP 数据包)?

关于如何通过此设置将数据包转发到互联网,有什么建议吗?

相关内容