这个问题可能已经被问过很多次了,但我似乎无法找到合适的解决方案。
这是我的设置:
两台虚拟机(Ubuntu 12.04)M1和M2。
M1有 2 个网络适配器:
eth0
设置为NAT
并eth1
设置为Internal Network
VirtualBox 中。M2有 1 个网络适配器,设置与
Internal Network
VirtualBox 中相同。
我想设置M1作为代理(使用iptables
),以便M2可以访问互联网。
以下是更多详细信息:
M1配置:
iptables 规则:
iptables -A FORWARD -o eth0 -i eth1 -s 192.168.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A POSTROUTING -t nat -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -I PREROUTING 1 -i eth1 -s 192.168.10.150 -p tcp -m tcp --dport 80 -j ACCEPT
接口配置:
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.10.125
netmask 255.255.255.0
broadcast 192.168.1.255
M2 配置:
接口配置:
auto eth0
iface eth0 inet static
address 192.168.10.150
netmask 255.255.255.0
broadcast 192.168.1.255
内核IP路由表:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.10.125 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0