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

问题描述 投票:0回答:8

所以在与VMWare网络巨头战斗了一天之后,我决定屈服并寻求帮助。我有一个在 Windows 7 上运行的 CentOS 6 映像,使用 VMWare Workstation 8.0.2 build-591240 上的 NAT,由于某种原因,我无法再使用静态 IP 地址连接到互联网。这似乎只适用于静态,而不适用于 DHCP,这告诉我可能是:我的 Windows 7 操作系统上的某个程序阻止了该 IP 地址的连接,或者我在 CentOS 映像上的配置发生了一些奇怪的事情。

我不知道这是否是由于 yum 更新所致,因此我尝试重新安装 VMWare 工具。这似乎没有解决问题。我还尝试过以下方法:

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

就像我说的,这似乎是突然发生的。该图像之前可以毫无问题地连接到互联网。有人知道 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)
centos centos6 vmware-workstation
8个回答
55
投票

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

dhclient -v

这会让centos自动获取ip。


2
投票

我刚刚解决了这个问题,不知道是否有人找到了灵魂。我自己如何修复它是在VMware(我有第12个版本)中,我去了

  1. 编辑
  2. 虚拟网络编辑器
  3. 恢复默认值
  4. 然后点击确定
  5. 我重新安装了 Centos 7
  6. 单击网络和主机名
  7. 单击以太网
  8. 等待详细信息填充,即 IP 地址、子网掩码、DNS...
  9. 有效。

您可能不必卸载操作系统,只需尝试先编辑虚拟网络编辑器并先恢复为默认值即可。这应该适用于您在 VMware 上安装的所有操作系统。


2
投票

供更多读者

我也遇到了同样的问题。有时问题可能出在主机(Windows 10 和 VMware Workstation 12)上,例如我的情况。

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

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

如果没有,则启动该服务并重新启动 VMware 中的来宾操作系统。


0
投票

据我所知,问题可能是您在设置 IP 地址时错过了在虚拟机中设置 dns 条目。

请编辑

nano /etc/resolv.conf
nameserver 192.168.88.2

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

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

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


0
投票

如果您需要其他解决方案,请将网络适配器从桥接更改为 NAT,这对我有用。


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
投票

我也有同样的问题。 就我而言,网关设置不正确。


-2
投票

请确保您

PREFIX=
不是
/32
而是
24
或替换为
NETMASK=255.255.255.0

简单的错误。

在您的

中找到
/etc/sysconfig/network-scripts/eth**** 
© www.soinside.com 2019 - 2024. All rights reserved.