如何在运行CentOS 5.4的专用服务器上设置端口转发,以使用Ubuntu 9.0.4

我的基本情况是运行CentOS 5.4的专用服务器。目前我有一台运行Ubuntu 9.0.4的虚拟机。 稍后,我将要添加另一个运行Windows Server 2003的虚拟机,但目前我正专注于使Ubuntu启动并运行。

Ubuntu安装工作正常,但我正在努力使端口转发工作,以便我可以访问网站托pipe在Ubuntu VM上。 作为Linux的新手,我很困惑IPTables和VMWare自己的端口转发之间的关系。

这是我迄今为止所尝试的。

我的服务器的IP是xxx.xxx.xxx.xxx,提供者支持告诉我,子网掩码是255.255.255.0,网关地址是xxx.xxx.xxx.1,networking地址是xxx.xxx.xxx 0.0。 (后两者让我感到吃惊,我期望私有网关/networking地址,而不是公共networking地址。)

首先,我尝试了桥接networking,但是除了通过VMware控制台之外,还没有成功与机器进行通信。 我尝试从主机(使用SSH到主机)ping它,但没有喜悦; 也没有从VM的Inernet访问。 我将接口configuration从DHCP更改为静态,使用静态地址192.168.1.100,并根据提供商的build议将网关设置为xxx.xxx.xxx.1。 没有真正的区别,仍然不能从主机ping客人,反之亦然,从客人没有互联网接入。

然后我尝试了NAT。 主机自动将IP地址设置为192.168.132.128,网关为192.168.132.2。现在,客户端可以访问Internet,当我对主机执行VNC操作并使用192.168.132.128打开Firefox时,我可以看到托pipe网站没问题,但我仍然无法从外面进入。

我提到我对IPtables和VMware端口转发有点困惑,我的意思是我不确定IPtable转发是否应该设置为来宾接口的IP地址(本例中为192.168.132.128),或者网关地址192.168.132.2。

我有一种感觉,我错过了这里很简单的东西,有人可以告诉我是什么吗?

这是我的主人需要的魔法咒语。 总之,必须添加新的iptables规则来实现两件事情。 一个是从虚拟机到主机的端口80,也可能是端口443。 二是允许在公共和私人子网之间跳跃。 如果vmware处理所有内容并自动添加规则,则应该在由“iptables -nvL”获取的规则列表中find规则或其function等效项。 如果没有,你必须添加它们。

主机端…

#In my case, IF_ETH_0=eth0 IF_TUN_0=vbr0 IP_PRIVATE_WEB=192.168.132.xxx IP_PUBLIC_0=192.168.1.yyy #The interface for the VM is vnet0. vbr0 bridges eth0 and vnet0. #Using vnet0, instead or vbr0, for IF_TUN_0 will not work. # port forwarding /sbin/iptables -t nat --flush /sbin/iptables -t nat -A PREROUTING  -p tcp -i $IF_ETH_0 -j DNAT -d $IP_PUBLIC_0 --dport 80 --to $IP_PRIVATE_WEB:80 /sbin/iptables -t nat -A POSTROUTING -p tcp -o $IF_ETH_0 -j SNAT -s $IP_PRIVATE_WEB --to-source $IP_PUBLIC_0 # the private internal VM address and public-facing host address are on different subnets # add rules to allow travel between subnets /sbin/iptables -A FORWARD -i $IF_TUN_0 -o $IF_ETH_0 -j ACCEPT /sbin/iptables -A FORWARD -i $IF_ETH_0 -o $IF_TUN_0 -j ACCEPT 

VM SIDE …

 # open up ports 40 and 443 /sbin/iptables -A INPUT -j ACCEPT -p tcp --dport 40 -m state --state NEW /sbin/iptables -A INPUT -j ACCEPT -p tcp --dport 443 -m state --state NEW # allow established traffic to pass /sbin/iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED 

你根本不需要用iptables做端口转发。 Vmware的端口转发机制应该为您处理。 在高级NATconfiguration – >主机部分 – >传输协议部分的vmware服务器手册中查找设置端口映射。

你可能需要在主机和客户机上打开端口80,如果他们还没有打开,但你不需要任何转发规则。