我在 CentOS 5.6 主机上安装了 VMware Server 2。我可以从主机访问我的虚拟机,但无法从其他机器访问它。
我已经配置了 NAT 端口转发。但不知何故我无法使用 访问虚拟机ssh
。我检查了所有防火墙设置,它们似乎都正确。
什么可能导致这个问题?
答案1
如果您能够ssh
从远程进入主机,则需要检查主机上的防火墙,看看ssh
端口(22)是否转发到虚拟机。
有一个类似的问题这里。
那里是 ufw 防火墙,它需要有一条规则,例如
ufw route allow 2222/tcp to 192.168.130.128 port 22
允许连接到主机端口 2222 并将 TCP 转发到 IP 为 192.168.130.128:22 的虚拟机客户机
和此用户提到,这ufw
是一个前端iptables
,因此请转到您的前端或以该形式编辑您的 iptables。
iptables -t nat -A PREROUTING -m tcp -p tcp --dport 2222 -j DNAT --to-destination 192.168.130.128:22
缺失的部分
简短版本 您被告知iptables
要向您的 添加一条PREROUTING
规则nat table
。缺少的部分是:
#---------------------------------------------------------------
# After DNAT, the packets are routed via the filter table's
# FORWARD chain.
# Connections on port 22 to the target machine on the private
# network must be allowed.
#---------------------------------------------------------------
# The `\` masks the `linebreak` in the `bash command`
# You can `copy & paste` all the lines at once
# From the manual
# Changing to specific IP and Interfaces
# being:
# `eth0` your host adapter and
# `vmnet8` your guest adapter
这是与目标机器的连接:
iptables -A FORWARD -p tcp -i eth0 -o vmnet8 -d 192.168.130.128 \
--dport 22 --sport 2222 -m state --state NEW -j ACCEPT
这些是来自host interface
您的过滤器guest interface
,反之亦然。
iptables -A FORWARD -t filter -o eth0 -m state \
--state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -t filter -i vmnet8 -m state \
--state ESTABLISHED,RELATED -j ACCEPT
答案2
这里你要处理的是两个独立的网络。我给你举个例子:
您的 ISP 为您提供的 IP =22.24.42.44
您的路由器的 IP =192.168.2.1
主机系统 IP =192.168.2.2
您的 VM 的 IP =10.5.5.4
此配置就是我的虚拟环境的网络。因此,您实际上有两个网络,您必须通过端口转发才能获得对 VM 的公共访问权限。可以将其视为虚拟机管理程序(主机系统)是适用于您的虚拟机的路由器。
我跟着本指南设置我的配置,但你的配置可能更复杂。这取决于你想运行什么应用程序 - RDC、apache、ssh。还有更多有用的信息这里。您必须提供比我在公共网站上要求的更多详细信息,我才能帮助您解决具体问题。原则始终相同 - 建立与物理系统的 localhost:<> 连接,通过 VMware Server 2 转发到您要访问的 VM 端口(SSH 为 22)。
答案3
您的主机在NAT网络中是否有虚拟网卡?
在 Win7 上使用 VMware Workstation 9 时,需要打开网络管理器,勾选“将主机虚拟适配器连接到此网络”,然后主机才能连接到 NAT 网络。Linux 可能也有类似的过程。
这是有意为之,允许创建一个到虚拟机管理程序没有“主机路由”的安全虚拟网络。
答案4
在 centOS 5.6 主机上service iptables stop
大多数情况下后端主机不需要运行 iptables,这可能会/将会阻止您的连接。
您是否转发了所有端口?80/443/902/903/