最近在学习Linux系统,在ping 命令尝试连接外网时出现"网络不可达"的错误.
刚开始参考了这篇博客的解决方法centos7报错connect: 网络不可达,ping: www.baidu.com: 未知的名称或服务-CSDN博客
即利用route命令添加默认路由
sudo route add default gw <网关IP地址>
输入对应网关IP后连接成功
但是,重点来了,用这种设置,每次重新打开系统时都要重新配置一遍默认路由,否则就会重新出现"网络不可达"的错误.考虑进一步设置永久默认路由.
在 CentOS 7 中,网络服务是通过 NetworkManager 管理的,因此在大多数情况下,您应使用 NetworkManager 来管理网络接口,而不是直接管理 network 服务。哪个服务适用取决于您的系统配置,通常 CentOS 7 预设使用 NetworkManager。
检查 NetworkManager 状态
首先,您可以检查 NetworkManager 服务的状态,并确保它在启动时启用:
bash
sudo systemctl status NetworkManager
如果 NetworkManager 没有运行,可以通过以下命令启动并启用它:
bash
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager
使用 NetworkManager 设置默认网关
如果您使用的是 NetworkManager,建议使用 nmcli 命令来设置永久的默认网关。以下是设置的步骤:
-
查看连接名称: 使用以下命令查看所有网络连接的列表:
bash
nmcli con show
找到您要配置的连接名称,如 Wired connection 1。
-
修改连接以设置默认网关: 使用以下命令设置默认网关(替换 <连接名称> 和 <网关IP地址>):
bash
nmcli con mod "<连接名称>" ipv4.gateway <网关IP地址>
-
确保 IP 配置为静态: 如果您希望手动设置IP地址和网关,请确保此连接的 BOOTPROTO 设置为 static:
bash
nmcli con mod "<连接名称>" ipv4.method manual
然后您还可以设置具体的IP地址和子网掩码:
bash
nmcli con mod "<连接名称>" ipv4.addresses <你的IP地址>/<子网掩码>
-
重新启动连接以使更改生效:
bash
nmcli con down "<连接名称>" nmcli con up "<连接名称>"
亲测有效!