一、利用网卡配置文件修改
网卡配置文件为/etc/sysconfig/network-scripts/ifcfg-< iface>,其中,iface为网卡名称。
[root@localhost 桌面]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet #设备类型为Ethernet
BOOTPROTO=static #启动协议为static静态协议,默认为dhcp动态协议
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=f34005ac-fb06-4d35-a8e9-57eb08429a90
DEVICE=eno16777736 #设备名称
ONBOOT=yes #开机是否启动该网卡,对虚拟接口无效。yes为开启,no为关闭
IPADDR=192.168.203.12 #ip地址。根据要求设置
NETMASK=255.255.255.0 #子网掩码。根据要求设置
GATEWAY=192.168.203.1 #网关。根据要求设置
DNS1=8.8.8.8 #DNS服务器,多个服务器使用数字标记,如DNS1,DNS2等
DNS2=114.114.114.114
重启网络服务使设置生效
#RHEL 7系列操作系统重启方法
[root@localhost 桌面]# systemctl restart network
#RHEL 8/9系列操作系统启动方法
[root@localhost 桌面]# nmcli connection up eno16777736
2、nmcli命令修改,此方法适用于RHEL 7/8/9系列操作系统
在RHEL 8以后版本上,没有传统的network.service。因此只能通过其它方法进行网络配置,包括NM(NetworkManager)命令工具集。换言之,在RHEL 8后,必须开启NM(NetworkManager),否则无法开启网络服务。nmcli命令同样适用于RHEL 7系列操作系统。
首先使用ifconfig或者ip a s命令查看网络接口信息
[root@localhost 桌面]# ifconfig
eno16777736: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.203.99 netmask 255.255.255.0 broadcast 192.168.203.255
inet6 fe80::20c:29ff:fe8e:2de8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:8e:2d:e8 txqueuelen 1000 (Ethernet)
RX packets 7 bytes 420 (420.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.1 nmcli交互式修改
[root@192 ~]# nmcli connection edit eno16777736 #可以简写为:nmcli c e eno16777736
===| nmcli 交互式连接编辑器 |===
正在编辑已有的连接 "802-3-ethernet":"eno16777736"
输入 "help" 或 "?" 查看可用的命令。
输入 "print" 来显示所有的连接属性。
输入 "describe [<设置>.<属性>]" 来获得详细的属性描述。
您可编辑下列设置:connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli> ?
------------------------------------------------------------------------------
---[ 主菜单 ]---
goto [<设置> | <属性>] :: 转到设置或属性
remove <设置>[.<属性>] | <属性> :: 移除设置或重置属性值
set [<设置>.<属性> <值>] :: 设置属性值
describe [<设置>.<属性>] :: 描述属性
print [all | <设置>[.<属性>]] :: 输出连接
verify [all | fix] :: 验证连接
save [persistent|temporary] :: 保存连接
activate [<接口名>] [/<ap>|<nsp>] :: 激活连接
back :: 转到上层(返回)
help/? [<命令>] :: 输出此帮助
nmcli <配置选项> <值> :: nmcli configuration
quit :: 退出 nmcli
------------------------------------------------------------------------------
nmcli> print #以下输出都是可配置的信息
===============================================================================
连接配置集详情 (eno16777736)
===============================================================================
connection.id: eno16777736
connection.uuid: bf0bf416-2664-4dc6-a312-076693f6aefd
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: eno16777736
connection.autoconnect: 是
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0(default)
connection.auth-retries: -1
connection.timestamp: 1751884471
connection.read-only: 否
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1(default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: 未知
connection.lldp: default
connection.mdns: -1(default)
connection.llmnr: -1(default)
connection.wait-device-timeout: -1
-------------------------------------------------------------------------------
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: 否
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist: --
802-3-ethernet.mtu: 自动
802-3-ethernet.s390-subchannels: --
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options: --
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: --
-------------------------------------------------------------------------------
ipv4.method: auto
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: --
ipv4.gateway: --
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.ignore-auto-routes: 否
ipv4.ignore-auto-dns: 否
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: 是
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0(none)
ipv4.never-default: 否
ipv4.may-fail: 是
ipv4.dad-timeout: -1 (default)
-------------------------------------------------------------------------------
ipv6.method: auto
ipv6.dns: --
ipv6.dns-search: --
ipv6.dns-options: --
ipv6.dns-priority: 0
ipv6.addresses: --
ipv6.gateway: --
ipv6.routes: --
ipv6.route-metric: -1
ipv6.route-table: 0 (unspec)
ipv6.routing-rules: --
ipv6.ignore-auto-routes: 否
ipv6.ignore-auto-dns: 否
ipv6.never-default: 否
ipv6.may-fail: 是
ipv6.ip6-privacy: -1(unknown)
ipv6.addr-gen-mode: stable-privacy
ipv6.ra-timeout: 0 (default)
ipv6.dhcp-duid: --
ipv6.dhcp-iaid: --
ipv6.dhcp-timeout: 0 (default)
ipv6.dhcp-send-hostname: 是
ipv6.dhcp-hostname: --
ipv6.dhcp-hostname-flags: 0x0(none)
ipv6.token: --
-------------------------------------------------------------------------------
proxy.method: none
proxy.browser-only: 否
proxy.pac-url: --
proxy.pac-script: --
-------------------------------------------------------------------------------
nmcli> goto ipv4.addresses #转到设置ip地址
nmcli ipv4.addresses> ?
------------------------------------------------------------------------------
---[ 属性菜单 ]---
set [<值>] :: 设置新值
add [<值>] :: 添加新选项到属性
change :: 更改当前值
remove [<目录> | <选项>] :: 删除该值
describe :: 描述属性
print [setting | connection] :: 输出(设置/连接)值
back :: 转到上一级
help/? [<命令>] :: 输出该帮助或命令描述
quit :: 退出 nmcli
------------------------------------------------------------------------------
nmcli ipv4.addresses> change
编辑 "addresses" 值: 192.168.203.11/24
您是否也要将 "ipv4.method" 设为 "manual"?[yes]: yes
nmcli ipv4.addresses> p
addresses: 192.168.203.11/24
nmcli ipv4.addresses> quit
连接未保存。您真的要退出吗?(yes/no) [no] no
nmcli ipv4.addresses> ?
------------------------------------------------------------------------------
---[ 属性菜单 ]---
set [<值>] :: 设置新值
add [<值>] :: 添加新选项到属性
change :: 更改当前值
remove [<目录> | <选项>] :: 删除该值
describe :: 描述属性
print [setting | connection] :: 输出(设置/连接)值
back :: 转到上一级
help/? [<命令>] :: 输出该帮助或命令描述
quit :: 退出 nmcli
------------------------------------------------------------------------------
nmcli ipv4.addresses> back
nmcli ipv4> ?
------------------------------------------------------------------------------
---[ 主菜单 ]---
goto [<设置> | <属性>] :: 转到设置或属性
remove <设置>[.<属性>] | <属性> :: 移除设置或重置属性值
set [<设置>.<属性> <值>] :: 设置属性值
describe [<设置>.<属性>] :: 描述属性
print [all | <设置>[.<属性>]] :: 输出连接
verify [all | fix] :: 验证连接
save [persistent|temporary] :: 保存连接
activate [<接口名>] [/<ap>|<nsp>] :: 激活连接
back :: 转到上层(返回)
help/? [<命令>] :: 输出此帮助
nmcli <配置选项> <值> :: nmcli configuration
quit :: 退出 nmcli
------------------------------------------------------------------------------
nmcli ipv4> save
成功地更新了连接 "eno16777736" (bf0bf416-2664-4dc6-a312-076693f6aefd)。
nmcli ipv4> activate
正在监视连接激活(按任意键继续)
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/8)
nmcli ipv4> quit
如果想修改其他网络接口信息,比如:子网掩码、网关、DNS等等,同理根据提示操作即可。
2.2 nmcli命令行修改
下面使用nmcli命令手动修改网络接口信息,设置IP地址为192.168.203.12,子网掩码为255.255.255.0,网关为192.168.203.1,DNS为114.114.114.114。
[root@localhost 桌面]# nmcli connection modify eno16777736 \
> ipv4.method manual \
> ipv4.addresses 192.168.203.12/24 \
> ipv4.gateway 192.168.203.1 \
> ipv4.dns 114.114.114.114 \
> connection.autoconnect yes
#重启网卡
[root@localhost 桌面]# nmcli connection down eno16777736;nmcli connection up eno16777736
Connection 'eno16777736' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
#再次查看接口信息,已经生效
[root@localhost 桌面]# ifconfig eno16777736
eno16777736: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.203.12 netmask 255.255.255.0 broadcast 192.168.203.255
inet6 fe80::20c:29ff:fe8e:2de8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:8e:2d:e8 txqueuelen 1000 (Ethernet)
RX packets 285 bytes 17100 (16.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
当然nmcli也可以针对某条网络接口信息进行配置
比如:
只配置IP地址,ipv4获取方式为手动:
[root@localhost ~]# nmcli connection modify eno16777736 ipv4.addresses 172.16.213.201/24 ipv4.method manual
只配置网关
[root@localhost ~]# nmcli connection modify eno16777736 ipv4.gateway 172.16.213.1
只配置dns
[root@localhost ~]# nmcli connection modify eno16777736 ipv4.dns 223.5.5.5 + ipv4.dns 8.8.8.8