CentOS 7下无法上网的终极解决方案

原文地址:https://blog.youkuaiyun.com/zhuzj12345/article/details/80747862

最近在VMware虚拟机里玩Centos,装好后发现上不了网。经过一番艰辛的折腾,终于找到出解决问题的方法了。最终的效果是无论是ping内网IP还是ping外网ip,都能正常ping通。方法四步走:

第一步,我们进入/etc/sysconfig/network-scripts目录,查看该目录有没有形如ifcfg-XXX的文件:

如果你看不到以ifcfg-打头的文件(ifcfg-lo除外),说明网卡设备没有被正确识别,可能是你下载的centos镜像版本和你安装centos时选择的centos版本不一致,比如,centos镜像是64位的,却按照32位来安装。这个。。重装吧,至少我没找到好的办法awkward.gifuploading.4e448015.gif转存失败重新上传取消尴尬

 

下面进行第二步:

在VMware里,依次点击”编辑“ - ”虚拟网络编辑器“,如下图,我选择的是NAT模式:

为了能够使用静态IP,这里不要勾选”使用本地DHCP服务将IP分配给虚拟机“这个选项。然后是配置子网ip,子网IP与宿主机的ip一定不能处在同一地址范围里,否则就算虚拟机能上网,网络既慢,还不稳定。我主机的ip段是192.168.115.xxx,所以我配了192.168.10.xxx来避开主机的ip段,反正ip的第三个数字在0到254并且不是115就行。Nat模式相当于配置了一个子路由器,有设置过多级路由的朋友对此应该有所体会。各位结合自己机器的IP来合理配置一个子网ip吧。

在这个界面接着点"NAT设置",查看虚拟机的网关,这个网关在第三步要用。我这里的网关是192.168.10.2。

 

第三步:

以root权限编辑/etc/sysconfig/network-scripts/ifcfg-eno16777736这个文件,效果如下:

TYPE=Ethernet
BOOTPROTO=static  #设置静态Ip
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=4f40dedc-031b-4b72-ad4d-ef4721947439
DEVICE=eno16777736
ONBOOT=yes  #这里如果为no的话就改为yes,表示网卡设备自动启动
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no

GATEWAY=192.168.10.2  #这里的网关地址就是第二步获取到的那个网关地址
IPADDR=192.168.10.150  #配置ip,在第二步已经设置ip处于192.168.10.xxx这个范围,我就随便设为150了,只要不和网关相同均可
NETMASK=255.255.255.0#子网掩码
DNS1=202.96.128.86#dns服务器1,填写你所在的网络可用的dns服务器地址即可
DNS2=223.5.5.5#dns服器2
 

关键的参数我都用彩色底纹标记出来了,其他的保持默认就好,确认无误后保存退出。

 

第四步:重启网卡服务,执行service network restart,然后总算能上网了:

ping下百度的域名

打开浏览器瞅瞅,发现网页秒开

 

 

最后,虚拟机和内网ip通信效果图就不贴出来了,自然不在话下。个人表述能欠佳,请各位凑合看吧,希望能够帮到你。

### 虚拟机无法上网的原因分析与解决方案 虚拟机无法连接到互联网通常由多种原因引起,包括网络适配器配置错误、DNS 设置不正确以及防火墙规则限制等。以下是针对该问题的具体解决方法: #### 1. 检查虚拟机软件的网络适配器设置 确认虚拟机管理软件(如 VMware 或 VirtualBox)中的网络适配器配置是否正确。常见的网络模式有三种:桥接模式、NAT 模式和仅主机模式。 - **桥接模式**:虚拟机会被分配一个独立的 IP 地址并与宿主机处于同一局域网中。如果选择此模式,请确保物理网络允许新设备加入并获取 IP 地址[^1]。 - **NAT 模式**:虚拟机通过 NAT 共享宿主机的网络连接。这是最常用的模式之一,适用于大多数场景[^4]。 - **仅主机模式**:虚拟机只能与宿主机通信而无法访问外部网络。除非特定需求,一般不建议使用这种模式。 #### 2. 验证虚拟机内的网络接口状态 进入 CentOS 系统终端,运行以下命令来检查网络接口的状态: ```bash ifconfig -a ``` 或者对于较新的版本可以使用 `ip addr` 命令替代。如果没有看到激活的网络接口,则可能需要手动启动它: ```bash sudo systemctl start network ``` #### 3. 修改网络配置文件 编辑 `/etc/sysconfig/network-scripts/ifcfg-eth0` 文件(具体名称取决于实际使用的网卡),确保其中的关键参数如下所示: ```plaintext BOOTPROTO=dhcp # 使用 DHCP 自动获取 IP 地址 ONBOOT=yes # 开机自动启用该网卡 NM_CONTROLLED=no # 不受 NetworkManager 控制 ``` 保存更改后重启网络服务以应用修改: ```bash sudo systemctl restart network ``` #### 4. 测试 DNS 功能 即使获得了有效的 IP 地址,也可能因为缺少合适的 DNS 服务器而导致无法解析域名。打开 `/etc/resolv.conf` 并添加可靠的公共 DNS 条目,例如 Google 的 DNS 或者阿里云提供的选项: ```plaintext nameserver 8.8.8.8 # Google Public DNS nameserver 114.114.114.114 # China Telecom DNS ``` 随后再次尝试 ping 一些知名网站验证连通性[^2]。 #### 5. 排除防火墙干扰 有时本地或远程系统的防火墙可能会阻止必要的端口流量。临时关闭 SELinux 和 iptables/firewalld 可帮助判断是否存在此类阻碍因素: ```bash setenforce 0 # 关闭SELinux强制执行模式 sudo systemctl stop firewalld # 停止firewalld服务 ``` 注意这仅仅是诊断手段,在最终部署前应重新开启安全防护措施并调整相应策略[^3]。 完成以上步骤之后,绝大多数情况下应该能够恢复虚拟机至正常联网状态。如果仍然存在问题,则需进一步深入探讨更深层次的技术细节或其他潜在变量影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值