linux DMZ host 允许虚拟机以Host-only的方式上网。
host ip 192.168.0.17
vboxnet0 ip 192.168.56.1
1、首先打开linux的转发功能:
sysctl net.ipv4.ip_forward=1
或
echo 1 > /proc/sys/net/ipv4/ip_forward
或
vi /etc/sysctl.conf
#net.ipv4.ip_forward=1
sysctl -p
2、iptables文件配置如下,有先后顺序:
*filter
……
-A OUTPUT -j ACCEPT #允许主动连出
-A FORWARD -s 192.168.56.101 -j ACCEPT #允许这个ip连接外网
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT #允许任何地址到任何地址的确认包和关联包通过。没懂?
-A FORWARD -j REJECT --reject-with icmp-host-prohibited #除此外拒绝
COMMIT
……
*nat
……
-A POSTROUTING -s 192.168.56.0/24 -j SNAT --to 192.168.0.17 #源地址转换
COMMIT
3、至此,Guest机设置192.168.56.1的网关和正确的DNS以后就可以正常联网了。
4、虚拟机3389端口映射到主机:
4.1、首先端口映射,nat增加:
-A PREROUTING -d 192.168.0.17 -p tcp --dport 3389 -j DNAT --to-destination 192.168.56.101:3389
-A POSTROUTING -d 192.168.56.101 -p tcp --dport 3389 -j SNAT --to-source 192.168.0.17
4.2、允许虚拟网关转发,filter增加:
-A FORWARD -i vboxnet0 -j ACCEPT
-A FORWARD -o vboxnet0 -j ACCEPT