无法将 CentOS 虚拟机连接到 Internet(NAT 连接)
Posted
技术标签:
【中文标题】无法将 CentOS 虚拟机连接到 Internet(NAT 连接)【英文标题】:Cannot Connect CentOS VM to Internet (NAT Connection) 【发布时间】:2014-03-27 11:33:38 【问题描述】:所以在与 VMWare 网络巨头战斗了一天之后,我决定屈服并寻求帮助。我在 Windows 7 上使用 VMWare Workstation 8.0.2 build-591240 上的 NAT 运行 CentOS 6 映像,由于某种原因,我无法再使用静态 IP 地址连接到 Internet。这似乎只适用于静态,而不适用于 DHCP,它告诉我它要么是:我的 Windows 7 操作系统上的某个程序阻止了该 IP 地址的连接,要么我在 CentOS 映像上的配置发生了一些奇怪的事情。
我不知道这是否是由于 yum 更新,所以我尝试重新安装 VMWare 工具。这似乎没有解决问题。我还尝试了以下方法:
-
确保 VMnet 连接已连接(愚蠢,但必须检查...我也可以使用 DHCP 连接到互联网)
确保我在 Windows 上的防火墙允许 VMware 连接到 Internet
我已经看到/读到 Windows 有时会阻止 ping 请求,所以我尝试在 Firefox 中访问 www.google.com,这得到“服务器未找到响应”...所以我必须为DNS??
我检查了我的 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)
【问题讨论】:
我测试了在静态配置中将 IP 地址更改为 192.168.88.131(在此地址使用 DHCP)。这似乎解决了这个问题......将调查其他人的未来参考,看看是什么阻止了 xxx.xxx.xxx.128.. 【参考方案1】:最好的选择是让它自动从 DHCP 获取一个 ip:
dhclient -v
这会让centos自动获取ip。
【讨论】:
我会接受这一点,因为没有其他人在此线程中添加任何内容,希望它对以后的人有所帮助。然而,这背后的主要驱动因素是我想要一个静态 IP 地址,而接受的答案是一个非静态地址。在深入研究之后,我发现另一个可行的解决方案是简单地将静态 IP 地址更改为另一个地址。我猜 VMware 更改了我下面的 MAC 地址,并将 IP 地址绑定到旧 MAC。简而言之,如果您遇到此问题,请尝试分配不同的静态 IP 地址。 仅供参考,这需要在每次服务器启动时运行【参考方案2】:据我所知,问题可能是您在设置 ip 地址时错过了在 vm 中设置 dns 条目。
请修改
nano /etc/resolv.conf
nameserver 192.168.88.2
Nameserver 应该是您网络的 dns 服务器,如果它是您的家庭路由器,它应该与您的网关相同,或者只是检查您的 pc 的网络并分配相同的 dns 地址。
另外,如果您想使用静态 IP 地址,只需将模式更改为桥接网络并分配您网络的 IP 地址和 dns。
Nt 适配器在不同子网中的 ip 地址与您的桥接网络不同,桥接网络与您的 PC 所在的网络相同。
【讨论】:
【参考方案3】:确保您的PREFIX=
不是/32
而是24
或替换为NETMASK=255.255.255.0
简单的错误。
在你的
中找到/etc/sysconfig/network-scripts/eth****
【讨论】:
【参考方案4】:我刚刚解决了这个问题,不知道是否有人找到了灵魂。我如何为自己修复它是在我去的 VMware(我有第 12 版)中
-
编辑
虚拟网络编辑器
恢复默认值
然后点击确定
我重新安装了 Centos 7
点击网络和主机名
点击以太网
等待详细信息填充,即 ip 地址、子网掩码、dns...
工作。
您可能不必卸载操作系统,只需尝试先编辑和虚拟网络编辑器并先恢复为默认值即可。这应该适用于您在 VMware 上安装的所有操作系统。
【讨论】:
【参考方案5】:供更多读者参考
我遇到了同样的问题。有时问题可能出在主机(Windows 10 和 VMware 工作站 12)中,例如我的情况。
检查 VMnetDHCP 服务是否正在运行。
right click on windows icon -> task manager -> service tab
如果没有,则启动服务并在 VMware 中重新启动您的客户操作系统。
【讨论】:
完美!!解决任何其他问题【参考方案6】:如果您想要其他解决方案,请将网络适配器从桥接更改为 NAT,它对我有用。
【讨论】:
【参考方案7】:这也是我的问题。 当您像这样在 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)在 VM 和虚拟网络编辑器中。
【讨论】:
以上是关于无法将 CentOS 虚拟机连接到 Internet(NAT 连接)的主要内容,如果未能解决你的问题,请参考以下文章
使用虚拟机连接到 SQL Server 2000 时出现问题
使用蓝牙无法同时将超过 4 个从机连接到 master-android