我有一台使用仅主机网络的虚拟机。在主机上,我有一个 ppp0 接口,通过它我可以访问互联网(作为额外的公共 IP 地址)。但是,如果您将流量从 ppp0 发送到 vboxnet0,虚拟机将无法访问互联网。我尝试在主机上运行此程序:
iptables -t nat -F
iptables -t filter -F
iptables -F
iptables -t filter -I FORWARD --in-interface vboxnet0 --out-interface ppp0 --source 192.168.56.100 -j ACCEPT
iptables -t filter -I FORWARD --in-interface ppp0 --out-interface vboxnet0 --destination 192.168.56.100 -j ACCEPT
iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE
我还尝试将“ppp0”替换为“eth0”,效果很好。如何使用 PPP 做到这一点?
答案1
自己找到了解决办法,需要在物理机上添加路由:
/etc/iproutes2/rt_tables:
100 vpn0
$ ip rule add from 192.168.56.100 table vpn0
$ ip route add default dev ppp0 via 10.0.2.1 table vpn0