iptables实现远程登陆虚拟机的guest os

introduce

1:vmware的vmnet0 brige

                         vmnet1 host-only

                          vmnet8 host-only  dhcp

每个guest os的网络都采用nat方式。。。方便!!!懒人的选择!

2:整个过程可以看做是内外网的关系。真实的物理网卡eth0--vmnet8--虚拟的eth0,vmnet8 可以想象为真实网络环境中的路由,而两边的真实和虚拟网卡看做是内外网络,要实现的本质其实就是一个端口的影射,只不过是通过一个虚拟的vmnet8来实现转发的功能。

3:数据流向:

     远程访问host:port,=>host接到请求后转发端口到guest的相应port,实现了远程数据到guest os的数据流向

host os=>remoter machine。

4:实例

远程访问虚拟机的windows2003

iptables

1:clean

iptables -F

iptables -X

iptables -Z

/etc/init.d/iptables save

iptables -t nat -A PREROUTING -d x.x.x.1 -p tcp --dport 3389 -j DNAT --to 192.168.0.33:3389

iptables -t nat -A POSTROUTING -s 192.168.0.33 -p tcp --sport 3389 -j SNAT --to 192.168.0.33:3389

iptables -t nat -A POSTROUTING -j MASQUERADE

iptables -A FORWARD -d x.x.x.1 -p tcp --dport 3389 -j ACCEPT

iptables -A  FORWARD -s 192.168.0.33 -p tcp --dport 3389 -j ACCEPT

/etc/init.d/iptables save

/etc/init.d/iptables start

x.x.x.1是host os的IP。192.168.0.33是guest os的ip

从任何地址访问x.x.x.1:3389的数据流将被转发到 guest os的192.168.0.33:3389

而从192.168.0.33出来的数据流将转发到x.x.x.1:3389,继而被传送到远程访问的机器。

注意点:

1:/proc/sys/net/ipv4/ip_forward的值应该是1否则所有的forward规则都失效

2:应该加载一些模块

iptable_filter        

ipt_MASQUERADE        

iptable_nat           

ip_conntrack          

ip_tables 

3:guest os的防火墙。无论是 windows 还是linux,在装完系统后应检查防火墙是否开启。

************************************

 

 

 

你可能感兴趣的:(vmware,windows,虚拟机,tcp,OS,防火墙)