在很多新版本的发行版上,默认的网络管理组件都被替换为了 NetworkManager,特别是 RHEL 及其衍生版本。
查询
使用 nmcli
命令可以查询当前网络相关组件的状态:
查询网络概况
sudo nmcli general
查询网络控制器
sudo nmcli networking
查询无线控制器
sudo nmcli radio
查询所有连接
sudo nmcli connection
查询所有设备(包含物理设备、虚拟设备、逻辑设备等)
sudo nmcli device
查询设备详细信息,包含设备名、类型、地址、MTU、状态、地址、子网掩码、网关、DNS 等超级详细的信息。
sudo nmcli device show
缩写
上面所有的命令对象都支持缩写
g[eneral] NetworkManager 的一般状态和操作
n[etworking] 整体网络控制
r[adio] NetworkManager 无线网开关
c[onnection] NetworkManager 的逻辑连接
d[evice] 被 NetworkManager 接管的设备
a[gent] NetworkManager secret 代理或 polkit 代理
m[onitor] 监听 NetworkManager 改动
执行命令时可以直接将对象简写,最为神奇的是简写多少位都可以,比如 connection
可以简写为 c
, co
, con
, conn
...
以此类推。
修改
最强大的功能可以说是配置修改,可以通过命令配置网络,配置的结果会自动写入配置文件,再也不用担心配置文件格式不对了。
配置固定地址
以配置固定 IP 为例,演示一下 nmcli
的强大功能
sudo nmcli connection modify ens34 ipv4.addresses 192.168.1.155/24
命令格式:nmcli connection modify [网卡名] [资源类.资源名] 地址/子网掩码
然后修改网关
sudo nmcli connection modify ens34 ipv4.gateway 192.168.1.1
然后修改网络模式(默认 DHCP,改为手动指定)
sudo nmcli connection modify ens34 ipv4.method manual
然后按需求修改 DNS
sudo nmcli connection modify ens34 ipv4.dns 223.5.5.5,223.6.6.6
小贴士:多个 DNS 之间使用逗号分隔。
如果不确定修改是否正确,可以添加参数 --temporary
临时修改(不会将修改写入配置文件,重启后失效)后确认可用后再去掉参数重新执行一遍。
小贴士:参数有位置要求:sudo nmcli [对象] [操作] --temporary [网卡] [具体配置项]
,如sudo nmcli connection modify --temporary ens34 ipv4.dns 223.5.5.5,223.6.6.6
。
修改完成后应用设置即可
sudo nmcli connection up ens34
参数表
## IPv4 可修改的所有配置
ipv4.addresses
ipv4.dad-timeout
ipv4.dhcp-client-id
ipv4.dhcp-fqdn
ipv4.dhcp-hostname
ipv4.dhcp-hostname-flags
ipv4.dhcp-iaid
ipv4.dhcp-reject-servers
ipv4.dhcp-send-hostname
ipv4.dhcp-timeout
ipv4.dhcp-vendor-class-identifier
ipv4.dns
ipv4.dns-options
ipv4.dns-priority
ipv4.dns-search
ipv4.gateway
ipv4.ignore-auto-dns
ipv4.ignore-auto-routes
ipv4.may-fail
ipv4.method
ipv4.never-default
ipv4.required-timeout
ipv4.route-metric
ipv4.routes
ipv4.route-table
ipv4.routing-rules
## IPv6 可修改的所有配置
ipv6.addresses
ipv6.addr-gen-mode
ipv6.dhcp-duid
ipv6.dhcp-hostname
ipv6.dhcp-hostname-flags
ipv6.dhcp-iaid
ipv6.dhcp-send-hostname
ipv6.dhcp-timeout
ipv6.dns
ipv6.dns-options
ipv6.dns-priority
ipv6.dns-search
ipv6.gateway
ipv6.ignore-auto-dns
ipv6.ignore-auto-routes
ipv6.ip6-privacy
ipv6.may-fail
ipv6.method
ipv6.never-default
ipv6.ra-timeout
ipv6.required-timeout
ipv6.route-metric
ipv6.routes
ipv6.route-table
ipv6.routing-rules
ipv6.token
补充
使用命令修改,默认会将改动写入网卡配置文件,需要注意的是,不同版本的系统写入的配置文件地址也不同。
- RHEL 8 series
/etc/sysconfig/network-scripts/ifcfg-[网卡名]
- RHEL 9 series
/etc/NetworkManager/system-connections/[网卡名].nmconnection
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2023-07-14 14:20 PM