本章主要介绍网络配置的方法。
- 网络基础知识
- 查看网络信息
- 图形化界面修改
- 通过配置文件修改
- 命令行管理
- 主机名的设置
网络基础知识
一台主机需要配置必要的网络信息,才可以连接到互联网。需要的配置网络信息包括IP、 子网掩码、网关和 DNS。
1、IP 地址
在计算机中对IP的标记使用的是32bit的二进制
例如:11000000 10101000 00011010 01100100
这里共有32位由1和0组成的二进制数字,这样的地址对于人类来说并不好记忆,所已用3 个点把这32位的二进制隔成4个部分,每个部分8个二进制数字。
11000000 .10101000 .00011010 .01100100
然后我们把每个部分的二进制转换成十进制之后,IP的格式就是下面这样 的:192.168.26.100
这种对IP的表示方法叫作“点分十进制”。
如同我们的电话号码由“区号+电话号码”组成,例如,下面两个电话号码01088888888和 02188888888,一看号码我们就知道O108888888是北京的电话号码,02188888888是上海 的电话号码。因为不同的城市都有自己的区号,所以不同的城市即便电话号码一样也不会突, 因为区号不一样。
同理,一个IP地址也可以分成两个部分,一个是网络位,另一个是主机位。对于电话号码 来说,我们能一眼判断出来哪个是区号,哪个是电话号码,但是对于来说(如 192.168.26.100),哪些是网络位,哪些是主机位呢?这时就需要用到子网掩码了。
子网掩码是用来标记一个IP里面哪些是网络位,哪些是主机位的。例如,看一个二进制类 型的P地址,共写了两行。
11000000 1010100000011010 01100100
11111111 11111111 11111111 00000000
第一行是IP地址,第二行是子网掩码,二者都是一讲制格式的。需要注意的是,第二h子网 掩码的格式是连续的1和连续的0。
子网掩码为1的部分,对应P地址的团终位部分,子网坯E女О的部分,对应IP地址的主机位 部分。对二者分别用3个点隔成4个部分,变成如下内容。
11000000.10101000.00011010.01100100
11111111.11111111.11111111.00000000
再次分别转换成十进制,得到的结果如下。192.168.26.100 255.255.255.0
所以,我们表示一个IP地址,具体的就是192.168.26.100/255.255.255.0或写成 192.168.26.100/24,这里24表示子网掩码中有24个1,即前24位都是网络位。
2、网关
我们把一个网络中的网关理解为一个城市中的高铁站,如果我们想从一个城市去往另外一 个城市,需要先到高铁站,坐上高铁之后,高铁会把我们送往另外一个城市。同样地,如果 一个网络中的主机要发送一个数据包去往另外一个网络,则需要先把这个数据包发送到网关,然后由网关把这个数据包转发到另外一个网络。
所以,如果我们没有给一台机器配置网关,则这台机器的数据包是不能和其他网络的主机 进行通信的,只能和同一个网段的数据包通信。
注意
给机器配置的IP和网关必须是属于同一个网段的。在我们的练习环境中,本书所使用的网络是 192.168.26.0/24网段,我们需要把网关设置为102168262。如果读者所使用的网络是 192.168.X.0/24网段,则需要把网关设置为192.168.26.X.2,这里的X是一个数字。
3、DNS
两台主机通信时依赖的是IP,但是IP地址并不好记忆,不如主机名好记,例如 www.rhce.cc,再如 www.baidu.com。我们说两台主机通信依赖的是IP,但是我们访问 www.rhce.cc时,这是主机名不是IP,那是怎么通信的呢?这里就要用到 DNS 了。
DNS服务器的主要作用是做域名解析,可以把主机名解析成P地址,所以我们需要给系统 指定 DNS服务器。当我们指定了DNS服务器地址之后,在浏览器中输人www.rhce.cc时, 系统会向 DNS服务器查询 www.rhce.cc的IP,然后再通过这个IP来访问。
在我们的练习环境中,本书所使用的网络是192.168.26.0/24网段,我们需要把 DNS设置 为192.168.26.2。如果读者所使用的网络是192.168.X.0/24网段,则需要把 DNS设置为 192.168.26.X.2,这里的X是一个数字。
下面开始讲解如何查看这些网络信息,以及如何配置这些网络信息。
查看网络信息
查看 IP 信息可以通过ifconfig命令,命令如下。
[root@rhel03 ~]# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.33 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::20c:29ff:fef8:9ac8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f8:9a:c8 txqueuelen 1000 (Ethernet)
RX packets 290 bytes 27454 (26.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 95 bytes 11945 (11.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 48 bytes 4080 (3.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 48 bytes 4080 (3.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:b4:cc:08 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.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
[root@rhel03 ~]#
这里查看的是所有活跃网卡的信息,如果想查看不管是沾跃还是不沾跃网卡的信息,以通 过ifconfig -a来查看。如果只想查看某张网卡的信息,可以通过“ifconfig 网卡名”来查 看。例如,只查看ens160的网络信息这里ens160是网卡名),命令如下。
[root@rhel03 ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.33 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::20c:29ff:fef8:9ac8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f8:9a:c8 txqueuelen 1000 (Ethernet)
RX packets 379 bytes 33900 (33.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 127 bytes 17453 (17.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@rhel03 ~]#
这里inet后面跟的是此网卡的IP,ether后面跟的是此网卡的MAC地址。
也可以通过“ip address show 网卡名”来香看。例如,杏看engl60的网终信息,命令如下
[root@rhel03 ~]# ip address show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:f8:9a:c8 brd ff:ff:ff:ff:ff:ff
inet 192.168.23.33/24 brd 192.168.23.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fef8:9ac8/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@rhel03 ~]#
这里address可以简写为addr 或a,show可以简写为sh。
如果要查看所有网卡的信息,可以写为“ip a”。如果网卡ens160上配置了多个IP,通过 ifconfig ens160只能看到一个IP,如果要看到所有的IP,可以使用ip address show ens160命令。
查看网关可以使用route -n命令,这里的-n是为了防止反向解析,即防止把P解析成主机 名,命令如下。
[root@rhel03 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.23.2 0.0.0.0 UG 100 0 0 ens160
192.168.23.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@rhel03 ~]#
可以看到,网关是192.168.23.2。
查看DNS,所使用的DNS记录在/etc/resolv.conf中。
[root@rhel03 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 202.96.128.86
nameserver 119.119.119.119
[root@rhel03 ~]#
在nameserver后面指定的就是当前默认使用的DNS。
为了更好地理解,这里举一个例子。我们在一张标签上写上IP、子网掩码、网关、DNS等 信息,然后把这个标签贴到网卡上,那么这张网卡就有这些网络信息了,如下图所示。
这个标签就叫作连接(connection),给网卡配置IP,只要给这个网卡建立一个连接就可以了。
通过nmcli connection或简写为nmcli conn来查看当前连接,命令如下。
[root@rhel03 ~]# nmcli connection
NAME UUID TYPE DEVICE
ens160 da3e49b8-181d-4864-8260-c11fac6066b2 ethernet ens160
virbr0 073d3f4f-45d9-4f85-8c8c-630247a8aaf8 bridge virbr0
[root@rhel03 ~]#
这里 DEVICE 对应的是网卡名,NAME对应的是连接名。整句的意思就是网卡ens160存在一个连接,名称为ens160。
查看连接的具体属性,可以通过“nmcli connection show连接名”来查看。
下面查看ens160属性中与IPv4相关的条目,命令如下。
[root@rhel03 ~]# nmcli connection show ens160 | grep ipv4
ipv4.method: manual
ipv4.dns: 202.96.128.86,119.119.119.119
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.23.33/24
ipv4.gateway: 192.168.23.2
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.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.dhcp-reject-servers: --
[root@rhel03 ~]#
可以看到,ens160获取IP的方式是 manual。
因为我们要练习创建连接,所以这里先把此连接删除。
[root@rhel03 ~]# nmcli connection delete ens160
成功删除连接 "ens160" (da3e49b8-181d-4864-8260-c11fac6066b2)。
[root@rhel03 ~]#
这里已经查看到相关的网络信息了,如果要配置IP、网关、DNS等网络信息呢?下面我们 分别来讲解如何通过图形化界面的方式、修改配置文件的方式、命令行管理的方式来配置络 信息。
图形化界面修改
在root用户下,输入“nm-connection-editor ”。 即可打开【网络连接】图形化界面窗口,这个窗口显示了当前具有的连接,单击左下角的 【+】按钮,添加一个连接,如下图所示。
[root@rhel03 ~]# nm-connection-editor
在【选择连接类刑】对话框中选择【以太网】选项,单击【创建】按钮,如下图所示。
打开【编辑ens160】对话框,在【常规】选项卡下的【连接名称】文本框中输 入“ens160”,这是创建连接的名称,名称可以随意取,不必和网卡名一致;选中【自动以 优先级连接】复选框,如下图所示。
选择【以太网】选项卡,在【设备】下拉列表中选择【ens160】选项,意思就是为网卡 ens160创建一个连接,名称为ens160,如下图所示。
选择【IPv4设置】选项卡,这里设置的是连接ens160是通 过什么方式获取IP,可以手动设置也可以通过 DHCP获取。在 【方法】下拉列表中选择【手动】选项,单击下面的【添 加】按钮,输入IP地址、子网掩码、网关、DNS等。然后单 击右下角的【保存】按钮,如下图所示。
如果要为ens160配置第二个IP,单击上图右侧的【添加】 按钮,然后输入IP地址即可。之后就可以看到已经创建了一个 连接ens160,如下图所示。
在另外一个终端中,输入“ifconfig ens160”,如下所示。
[root@rhel03 ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.33 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::f34b:d631:a402:fbff prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f8:9a:c8 txqueuelen 1000 (Ethernet)
RX packets 1334 bytes 102803 (100.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 371 bytes 44127 (43.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@rhel03 ~]#
可以看到,这里的IP地址为192.168.23.33,就是我们刚刚设置的IP。
也可以通过查看连接ens160的属性来查看IP信息。
[root@rhel03 ~]# nmcli connection show ens160 | grep ipv4
ipv4.method: manual
ipv4.dns: 202.96.128.86,119.29.29.29
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.23.33/24
ipv4.gateway: 192.168.23.2
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.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.dhcp-reject-servers: --
[root@rhel03 ~]#
这里可以看到IP地址、网关、DNS等信息。
因为这个连接是新创建的,所以创建好之后可以立即生效。
下面介绍如何修改已经存在连接的IP。选中【ens160】,单击 下方的齿轮按钮,如下图所示。
选择【IPv4设置】选项卡,将P地址设置 为“192.168.23.133”,单击【保存】按钮,如下图所示。
在终端中查看ens160的IP。
[root@rhel03 ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.33 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::f34b:d631:a402:fbff prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f8:9a:c8 txqueuelen 1000 (Ethernet)
RX packets 1468 bytes 111936 (109.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 377 bytes 44999 (43.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@rhel03 ~]#
可以看到,IP地址仍然是192.168.23.33,并没有变成192.168.23.133。
因为这个IP不是在创建连接时指定的,而是后期修改连接时指定的,所以这个IP不会生效。
如果想让其生效,需要执行“nmcli device reapply 设备名”命令。
[root@rhel03 ~]# nmcli device reapply ens160
成功重新应用连接到设备 "ens160"。
[root@rhel03 ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.133 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::f34b:d631:a402:fbff prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f8:9a:c8 txqueuelen 1000 (Ethernet)
RX packets 1533 bytes 117913 (115.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 393 bytes 47861 (46.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@rhel03 ~]#
可以看到,现在IP地址已经变成192.168.23.133了。
删除连接的操作如下。
选中连接名,单击下面的【-】按钮,在弹出的界面中单击【删陈】按钮即可,如下图所示。
如果打不开上述图形化界面,可以在终端中输人“nmtui-edit”命令后按【Enter】键, 然后按【Tab】键选择【添加】按钮,再按【Enter】键,如下图所示。
在【新建连接】界面中选中【以太网】,按【Tab】键选择【创建】按钮,然后按 【Enterl】键,如下图所示。
在【编辑连接】界面的【配置集名称】中输人“ens160”,这是设置连接名的;在下方的 【设备】中输入“ens160”。按【Tab】键选择【IPv4配置】后的【显示】按钮,然后按 【Enter】键,如下图所示。
在【IPv4配置】后面将获取IP的方式设置为“手动”,按【Tab】键选择【地址】后的 【添加】按钮,然后按【Enter】键,如下图所示。
然后设置IP地址、网关、DNS,如下所示
保存退出,然后返回到初始界面,如下图所示。
在第二个终端中查看IP信息。
[root@rhel03 ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.33 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::e6:ea8:9922:20e8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f8:9a:c8 txqueuelen 1000 (Ethernet)
RX packets 2215 bytes 163027 (159.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 437 bytes 53976 (52.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@rhel03 ~]#
可以看到,此处IP地址已经被设置为192.168.23.33 了。
如果要修改IP,在初始界面中选中连接名,按【Tab】键选择【编辑】按钮,然后按 【Enter】键,如下图所示,就可以正常修改IP了。记得修改之后需要执行nmcli devir.reapply ens160命令让其生效。
删除连接,先选中连接名,按【Tab】键选择【删除】按钮,然后按【Enter】键。弹出个弹窗,按【Tab】键选择【删除】按钮,然后按【Enter】 键,如下图所示。这种删除连接的方式是最简单的。
通过配置文件修改
网卡连接的配置文件在/etc/sysconfig/network-scripts 中,格式为“ifcfg-连接名”, 可以看到连接都被删除了,现在没有任何连接。
[root@rhel03 ~]# nmcli connection
NAME UUID TYPE DEVICE
virbr0 073d3f4f-45d9-4f85-8c8c-630247a8aaf8 bridge virbr0
[root@rhel03 ~]#
下面为网卡 ens160创建一个连接,连接名为ens160。
创建一个文件/etc/sysconfig/network-scripts/ifcfg-ens160,内容如下。
[root@rhel03 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
DEVICE=ens160
NAME=ens160
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.23.33
NETMASK=255.255.255.0
GATEWAY=192.168.23.2
DNS1=202.96.128.86
DNS2=119.29.29.29
这里字段的含义如下。
- DEVICE:用于指定哪张网卡。
- NAME:用于指定连接的名称。
- ONBOOT:设置的是开机是否自动生效,这里设置为yes。
- BOOTPROTO:设置的是通过什么方式获取IP,可选值如下。
- dhcp:通过 DHCP获取IP。
- none或static:手动配置。
- IPADDR:设置IP。
- NETMASK:设置子网掩码。
- GATEWAY:设置网关。
- DNS1:设置 DNS,这里最多可以指定3个 DNS,分别是 DNS1、DNS2、DNS3
因 为这个配置文件是新创建的,所以需要重新加载一下才能生效,命令如下。
[root@rhel03 ~]# nmcli connection reload
然后查看网卡 ens160 的 IP。
[root@rhel03 ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.33 netmask 255.255.255.0 broadcast 192.168.23.255
ether 00:0c:29:f8:9a:c8 txqueuelen 1000 (Ethernet)
RX packets 2579 bytes 186506 (182.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 464 bytes 57153 (55.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@rhel03 ~]#
可以看到,现在已经生效了。
记住,因为这个文件是新创建的,所以只要执行 nmcli connect reload 命令即可生效。 下面开始修改 IP,把配置文件修改为如下内容。
[root@rhel03 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
DEVICE=ens160
NAME=ens160
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.23.133
NETMASK=255.255.255.0
GATEWAY=192.168.23.2
DNS1=202.96.128.86
DNS2=119.29.29.29
修改之后执行 nmcli connect reload 命令是没用的,还要执行 nmcli device reapply ens160 命令。
[root@rhel03 ~]# nmcli device reapply ens160
成功重新应用连接到设备 "ens160"。
总结如下。
- 新创建好连接的配置文件,直接执行 nmcli connection reload 命令即可生效。
- 修改已经存在的配置文件,之后需要执行 nmcli connection reload 和 nmcli device reapply ens160 命令才能让修改生效。
命令行管理
在命令中查看现有连接,命令如下。
[root@rhel03 ~]# nmcli connection
NAME UUID TYPE DEVICE
ens160 ea74cf24-c2a2-ecee-3747-a2d76d46f93b ethernet ens160
virbr0 073d3f4f-45d9-4f85-8c8c-630247a8aaf8 bridge virbr0
[root@rhel03 ~]#
删除连接的命令如下。
- nmcli connection delete 连接名
现在把连接ens160删除,命令如下。
[root@rhel03 ~]# nmcli connection delete ens160
成功删除连接 "ens160" (ea74cf24-c2a2-ecee-3747-a2d76d46f93b)。
[root@rhel03 ~]#
命令行添加连接的命令是nmcli connection add,其常见的选项包括以下几个。
- type:类型。
- con-name:连接名。
- ifname:网卡名。
- ipv4.method manual/auto manual:手动配置IP,auto为自动获取。
- ipv4.addresses:指定IP及子网掩码。
- ipv4.gateway:指定网关。
- ipv4.dns :指定DNS。
- autoconnect yes:设置连接开机自动生效。
下面为网卡 ens160创建一个名称为ens160、类型为以太网的连接。
[root@rhel03 ~]# nmcli connection add type ethernet con-name ens160 ifname ens160 ipv4.method manual ipv4.addresses 192.168.23.33/24 ipv4.gateway 192.168.23.2 ipv4.dns 202.96.128.86 autoconnect yes
连接 "ens160" (1df4a215-1723-4e07-b3c3-cac85af993c1) 已成功添加。
[root@rhel03 ~]#
这里命令比较长,可以想象一下在图形化界面中指定的内容。
- 类型为以太网。
- 连接名为ens160。
- 为哪张网卡用ifname指定。
此处创建好之后,可以查看连接属性,命令如下。
[root@rhel03 ~]# nmcli connection show ens160 | grep ipv4
ipv4.method: manual
ipv4.dns: 202.96.128.86
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.23.33/24
ipv4.gateway: 192.168.23.2
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.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.dhcp-reject-servers: --
[root@rhel03 ~]#
左侧是此连接的属性,右侧是具体的值。
如果要修改配置,只要修改左侧对应的属性即可,语法如下。
- nmcli connection modify 连接名 属性1 值1 属性2 值2 ...
这里的属性与前面创建连接用的属性一致。
现在把cns160的IP地址改为192.168.23.133,命令如下。
[root@rhel03 ~]# nmcli connection modify ens160 ipv4.addresses 192.168.23.133/24
[root@rhel03 ~]# nmcli device reapply ens160
成功重新应用连接到设备 "ens160"。
[root@rhel03 ~]#
一定要记得,修改之后要执行nmcli device reapply ens160命令让所做修改生效。如果不是修改的配置文件,则不必执行nmcli connection reload命令。
如果要给ens160再额外添加一个IP地址192.168.23.233/24,可以用如下命令。
[root@rhel03 ~]# nmcli connection modify ens160 ifname ens160 ipv4.method manual +ipv4.addresses 192.168.23.233/24
[root@rhel03 ~]# nmcli device reapply ens160
成功重新应用连接到设备 "ens160"。
[root@rhel03 ~]#
在添加 IP 地址时,ipy4 .addresses前面一定要有一个加号“+”,写 作“+ipv4.addresses"表示额外添加一个IP,如果没有这个+,会覆盖原有的IP。
查看ens160的IP信息。
[root@rhel03 ~]# ip address show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:f8:9a:c8 brd ff:ff:ff:ff:ff:ff
inet 192.168.23.133/24 brd 192.168.23.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.23.233/24 brd 192.168.23.255 scope global secondary noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::c272:7829:bfe2:5137/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@rhel03 ~]#
可以看到,ens160现在是有两个IP地址的。
类似地,如果要删除ens160的某个P地址,可以写作“-ipv4.addresses”。例如,要删 除ens160的192.168.23.233这个IP地址,可以用如下命令。
[root@rhel03 ~]# nmcli connection modify ens160 ifname ens160 ipv4.method manual -ipv4.addresses 192.168.23.233/24
[root@rhel03 ~]# nmcli device reapply ens160
成功重新应用连接到设备 "ens160"。
[root@rhel03 ~]# ip address show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:f8:9a:c8 brd ff:ff:ff:ff:ff:ff
inet 192.168.23.133/24 brd 192.168.23.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::c272:7829:bfe2:5137/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@rhel03 ~]#
在RHEL8中,不能通过systemctl restart network来重启网络,不过安装network-scripts之后就可以了,关于软件包的安装,后续的章节会讲解。
主机名的设置
每台主机都会有自己的主机名,默认主机名是 localhost.localdomain,不过并不建议使 用这个主机名。查看主机名的命令是hostname。
[root@rhel03 ~]# hostname
rhel03
[root@rhel03 ~]# hostname -s
rhel03
hostname加上-s选项可以查看短主机名,即没有域名的主机名。
设置主机名的语法如下。
- hostnamectl set‐hostname 主机名
下面把主机名设置为www.rhce.cc。
[root@rhel03 ~]# hostnamectl set-hostname www.rhel.cc
[root@rhel03 ~]# hostname
www.rhel.cc
使用这个命令修改主机名是永久生效的,因为会写入配置文件中。
[root@rhel03 ~]# cat /etc/hostname
www.rhel.cc
[root@rhel03 ~]#
这里主机名虽然改为www.rhce.cc了,但是大家可以看到提示符中的主机名仍然是 sever.rhce.cc。打开一个新的终端就可以看到主机名已经是www了。
不过此时在当前环境中是不能把server.rhce.cc解析成IP地址的,所以需要编 辑/etc/hosts,把主机名和P的对应关系写进去,格式如下。
- IP 长主机名 短主机名
修改/etc/hosts,内容如下。
[root@rhel03 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.23.133 www.rhel.cc
然后使用ping命令“ping www.rhel.com”.
[root@rhel03 ~]# ping www.rhel.cc
PING www.rhel.cc (192.168.23.133) 56(84) bytes of data.
64 bytes from www.rhel.cc (192.168.23.133): icmp_seq=1 ttl=64 time=0.107 ms
64 bytes from www.rhel.cc (192.168.23.133): icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from www.rhel.cc (192.168.23.133): icmp_seq=3 ttl=64 time=0.065 ms
64 bytes from www.rhel.cc (192.168.23.133): icmp_seq=4 ttl=64 time=0.063 ms
^C
--- www.rhel.cc ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3091ms
rtt min/avg/max/mdev = 0.063/0.077/0.107/0.020 ms
[root@rhel03 ~]#
可以看到,已经把www.rhel.cc解析成192.168.23.133了。