无法连接CentOS虚拟机到互联网(NAT连接)

12

在过去的一天里,我一直在与VMWare网络巨头作斗争,但最终决定寻求帮助。我在VMWare Workstation 8.0.2 build-591240上使用NAT,在Windows 7上运行CentOS 6映像,并且由于某种原因,我无法再使用静态IP地址连接到互联网。这似乎仅适用于静态IP,而不是DHCP,这告诉我要么是:在我的Windows 7操作系统上某个程序阻止了该IP地址的连接,或者是在CentOS映像上的配置发生了一些奇怪的问题。

我不知道这是否是由于yum更新引起的,所以尝试重新安装VMWare工具。但这似乎没有解决问题。我还尝试了以下操作:

  1. 确保VMnet连接已连接(很傻,但必须检查... 另外我可以使用DHCP连接到互联网)
  2. 确保我的Windows防火墙允许VMware连接到互联网
  3. 我看到/读到Windows有时会阻止ping请求,所以我在Firefox中尝试访问www.google.com,结果得到“服务器未找到”的响应...那么我需要做一些不同的DNS配置吗?
  4. 我检查了我的Windows机器注册表,只有一个默认网关条目

就像我说的,这似乎是突然发生的。映像以前可以无问题连接到互联网。是否有人知道可能引起这种情况的CentOS更新?为了节省一些调试周期,我在下面添加了我的配置:

[root@MyCentOS ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:A0:51:BD
          inet addr:192.168.88.128  Bcast:192.168.88.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:683 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:64242 (62.7 KiB)  TX bytes:8055 (7.8 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1049 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1049 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:68417 (66.8 KiB)  TX bytes:68417 (66.8 KiB)


[root@MyCentOS ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
IPV6INIT="no"
NM_CONTROLLED="no"
ONBOOT="yes"
IPADDR=192.168.88.128
NETMASK=255.255.255.0
GATEWAY=192.168.88.2
TYPE="Ethernet"

[root@MyCentOS ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=MyCentOS
GATEWAY=192.168.88.2

[root@MyCentOS ~]# service iptables status
iptables: Firewall is not running.
[root@MyCentOS ~]# service ip6tables status
ip6tables: Firewall is not running.
[root@MyCentOS ~]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

[root@MyCentOS ~]# ping 192.168.88.2
PING 192.168.88.2 (192.168.88.2) 56(84) bytes of data.
64 bytes from 192.168.88.2: icmp_seq=1 ttl=128 time=0.391 ms
64 bytes from 192.168.88.2: icmp_seq=2 ttl=128 time=0.271 ms
^C
--- 192.168.88.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1349ms
rtt min/avg/max/mdev = 0.271/0.331/0.391/0.060 ms

[root@MyCentOS ~]# ping www.google.com
ping: unknown host www.google.com

[root@MyCentOS ~]# uname -a
Linux MyCentOS 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@MyCentOS ~]# vmware-toolbox-cmd -v
8.8.2.10499 (build-590212)

我测试了在静态配置中将IP地址更改为192.168.88.131(在此地址上使用DHCP),这似乎解决了问题...将调查其他人的参考,以查看是什么阻止了xxx.xxx.xxx.128。 - gordysc
7个回答

53

最好的选择是让它从DHCP自动获取IP地址:

dhclient -v

这将使CentOS自动获取IP地址。


2
我会接受这个答案,因为没有其他人在这个帖子中添加任何内容,希望它能对未来的某个人有所帮助。然而,主要驱动因素是我想要一个静态IP地址,而被接受的答案是针对非静态地址的。经过进一步调查,我发现另一个可行的解决方案是将静态IP地址更改为另一个地址。我猜测VMware在我的下面更改了MAC地址,并将IP地址绑定到旧的MAC地址上。简而言之,如果您遇到此问题,请尝试分配不同的静态IP地址。 - gordysc
请注意,每次服务器启动时都需要运行此程序。 - Drakes

2

给读者的提示:

我曾经遇到过同样的问题。有时候问题可能出在主机上(比如我的情况是Windows 10和VMware Workstation 12)。

请检查VMnetDHCP服务是否正在运行。

right click on windows icon -> task manager -> service tab

如果没有,则启动服务并在VMware中重新启动您的客户操作系统。 VMnetDHCP服务

完美!解决任何其他问题。 - rwvaldivia

1
我刚刚解决了这个问题,不确定是否有人找到了解决方案。我是在 VMware(我使用的是第12版)中进行以下操作解决的:
  1. 编辑
  2. 虚拟网络编辑器
  3. 恢复默认值
  4. 然后点击确定
  5. 重新安装Centos 7
  6. 点击网络和主机名
  7. 为以太网打开
  8. 等待详细信息填充,例如IP地址、子网掩码、DNS...
  9. 完成。
你可能不需要卸载操作系统,只需尝试先进入编辑和虚拟网络编辑器并恢复默认值即可。这对你在 VMware 上安装的所有操作系统都应该有效。

0
这也是我的问题。 当您在VMware Workstation中创建NAT时,如下所示: 192.168.X.0/24 ,您的主机IP地址将是:

vmnet1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.X.1  netmask 255.255.255.0  broadcast 192.168.X.255
        ether <GENERATED MAC ADDRESS>  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1264  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

你应该在虚拟机和虚拟网络编辑器中更改NAT网关。(例如,192.168.X.254)


0
从我看来,问题可能是您在设置IP地址时错过了在虚拟机中设置DNS条目。
请编辑。
nano /etc/resolv.conf
nameserver 192.168.88.2

Nameserver 应该是您网络的 DNS 服务器,如果是家庭路由器,则应与网关相同,或者只需检查您的计算机网络并分配相同的 DNS 地址。

此外,如果您想使用静态 IP 地址,只需将模式更改为桥接网络,并分配您网络的 IP 地址和 DNS。

Nt 适配器在不同子网中具有不同的 IP 地址,而桥接网络与您的计算机所在的网络相同。


0
如果您想要另一种解决方案,可以将网络适配器从桥接改为NAT,这对我很有效。

enter image description here


-2

请确保您的PREFIX=不是/32,而是24,或者替换为NETMASK=255.255.255.0

这是一个简单的错误。

在您的代码中发现了此问题。

/etc/sysconfig/network-scripts/eth**** 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接