查看网络类型
在 Linux 系统里,常见的网络管理类型有 NetworkManager、systemd-networkd、ifupdown 等,
你可以通过以下方法判断当前系统使用的网络管理类型:
检查服务运行状态
使用 systemctl
命令查看不同网络管理服务的运行状态。
NetworkManager
1 | systemctl is-active NetworkManager |
若输出 active
,表明 NetworkManager 服务正在运行,系统可能使用它管理网络;若输出 inactive
,则服务未运行。
systemd-networkd
1 | systemctl is-active systemd-networkd |
输出 active
意味着 systemd-networkd
正在运行并可能用于网络管理。
注意:
服务激活的前提下,查看是否有配置文件,有的话才算真正使用了。
命令
1 | ls /etc/systemd/network |
ifupdown(适用于 Debian 系)
1 | systemctl is-active networking |
在使用 ifupdown
的系统中,networking
服务会处于活动状态。
查看配置文件
不同的网络管理类型对应不同的配置文件。
NetworkManager
检查 /etc/NetworkManager
目录是否存在,以及该目录下是否有相关配置文件,如 NetworkManager.conf
。
1 | ls /etc/NetworkManager |
若有输出,表明系统可能使用 NetworkManager。
systemd-networkd
查看 /etc/systemd/network
目录,若该目录下有 .network
或 .netdev
后缀的配置文件,则系统可能使用 systemd-networkd
。
1 | ls /etc/systemd/network |
ifupdown(适用于 Debian 系)
检查 /etc/network/interfaces
文件是否存在,若存在且包含网络接口的详细配置,系统可能使用 ifupdown
。
1 | ls /etc/network/interfaces |
保留一种方式
在 Linux 系统中,NetworkManager
和 systemd-networkd
理论上可以同时激活,但通常不建议这样做。
如果两个都激活了我们可以根据实际需求选择其中一个网络管理工具,并停止和禁用另一个。
例如,如果选择使用 NetworkManager
,可以使用以下命令停止并禁用 systemd-networkd
:
1 | systemctl stop systemd - networkd |
反之,如果选择 systemd-networkd
,则停止并禁用 NetworkManager
:
1 | systemctl stop NetworkManager |
DNS配置
临时生效
查看DNS配置
1 | cat /etc/resolv.conf |
编辑配置
1 | vi /etc/resolv.conf |
配置如下
1 | nameserver 223.5.5.5 |
注意:
1、resolv.conf
文件中只保留上面的配置,其他的 IP 全部删除
2、虚机重启后需要重新配置 resolv.conf
文件
校验解析
1 | ping scapi.xhkjedu.com |
校验服务
1 | telnet scapi.xhkjedu.com 443 |
退出telnet
1 | quit |
永久生效
参看下文
NetworkManager网络管理
方式1
根据你的发行版,编辑相应的网络接口配置文件
例如 /etc/sysconfig/network-scripts/ifcfg-eth0
(适用于 Red Hat 系列)或 /etc/network/interfaces
(适用于 Debian 系列)。
这里是Red Hat 系列的
先查看网卡名
1 | ifconfig |
我这里使用的是网卡是enp3s0
编辑对应的文件
1 | vi /etc/sysconfig/network-scripts/ifcfg-enp3s0 |
配置 DNS
在配置文件中添加或修改 DNS 配置,例如:
1 | DNS1=223.5.5.5 |
重启网络服务
1 | systemctl restart network |
方式2
显示所有的网络连接信息
1 | nmcli connection show |
查看某个网络信息
1 | nmcli connection show enp3s0 |
设置DNS,DHCP 自动分配的 DNS 配置
1 | nmcli connection modify enp3s0 ipv4.dns "223.5.5.5 223.6.6.6" |
ipv4.dns
:用于指定自定义的 DNS 服务器地址。ipv4.ignore-auto-dns yes
:表示忽略 DHCP 自动分配的 DNS 配置。
*重启网络连接使配置生效**
1 | reboot |
主机无法解析
网关报错
Failed to resolve ‘host-172-26-69-11’ after 4 queries
但是我们ping这个又能通。
解决方法:
自己添加hosts映射
查看主机名
1 | hostname |
比如我的是host-172-26-69-11
用文本编辑器来修改该文件:
1 | sudo vi /etc/hosts |
在文件中找到类似以下的行:
修改
1 | 172.26.69.11 host-172-26-69-11 |
测试
1 | ping host-172-26-69-11 |