Centos7系统配置上的变化(二)网络管理基础上篇简单介绍了CentOS 7 在服务和网络方面的一点变化,先前很多烂熟于心的操作指令已经不适用了,不管是否习惯,总要接受、熟悉这些变化。
写上篇的时候还没有最小安装的ISO(CentOS-7.0-1406-x86_64-Minimal.iso),后来安装了首先发现ifconfig、netstat、route、arp都没有了,在哪儿呢?[iyunv@centos7 ~]# yum search ifconfig......======================== Matched: ifconfig=========================net-tools.x86_64 : Basic networking tools[iyunv@centos7 ~]#哦,最小安装默认没有包含这些老工具,如果非用不可,就yum install net-tools 吧,但我就是要看看不用它们我们怎么来管理网络。
我们将要用到的是ip指令,ss指令和NetworkManager的两个工具nmtui,nmcli。
老实说,这几个工具更加强大了,但还真不太容易习惯呢。
一、ip ss指令替代ifconfig route arp netstat1、ip 指令入门ip [ OPTIONS ] OBJECT { COMMAND | help }OBJECT 和COMMAND可以简写到一个字母ip help 可以查到OBJECT列表和OPTIONS,简写ip hip help 查看针对该OBJECT的帮助,比如ip addr help,简写ip a hip addr 查看网络接口地址,简写ip a查看网络接口地址,替代ifconfig:[iyunv@centos7 ~]# ip addr1: lo: mtu 65536 qdisc noqueue state UNKNOWNlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: enp0s3: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ffinet 192.168.150.110/24 brd 192.168.150.255 scope global enp0s3valid_lft forever preferred_lft foreverinet6 fe80::a00:27ff:fe15:35d2/64 scope linkvalid_lft forever preferred_lft forever[iyunv@centos7 ~]#网络接口统计信息[iyunv@centos7 ~]# ip -s link1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULTlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 RX: bytes packets errors dropped overrun mcast0 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns0 0 0 0 0 02: enp0s3: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ffRX: bytes packets errors dropped overrun mcast 8135366 131454 0 0 0 456 TX: bytes packets errors dropped carrier collsns 646297 2441 0 0 0 02、ip route显示和设定路由显示路由表[iyunv@centos7 ~]# ip route show default via 192.168.150.254 dev enp0s3 proto static metric 1024192.168.150.0/24 dev enp0s3 proto kernel scope link src 192.168.150.110太难看了,格式化一下(显示的是默认网关和局域网路由,两行的内容没有共通性):[iyunv@centos7 tmp]# ip route show|column -tdefault via 192.168.150.254 devenp0s3 proto static metric 1024192.168.150.0/24 dev enp0s3 protokernel scope link src 192.168.150.110添加静态路由[iyunv@centos7 ~]# ip route add10.15.150.0/24 via 192.168.150.253 dev enp0s3[iyunv@centos7 ~]#[iyunv@centos7 ~]# ip route show|column -tdefault via 192.168.150.254 devenp0s3 proto static metric 102410.15.150.0/24 via 192.168.150.253 devenp0s3 proto static metric 1192.168.150.0/24 dev enp0s3 protokernel scope link src 192.168.150.110 [iyunv@centos7 ~]#[iyunv@centos7 ~]# ping 10.15.150.1PING 10.15.150.1 (10.15.150.1) 56(84) bytes of data.64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.77ms64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.08ms64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.57ms^C删除静态路由只需要把add 替换成del,或者更简单的只写目标网络[iyunv@centos7 ~]# ip route del 10.15.150.0/24#修改于2014-10-8 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =3、设置永久的静态路由ip route 指令对路由的修改不能保存,重启就没了。
把ip route 指令写到/etc/rc.local 也是徒劳的。
RHEL7官网文档没有提到/etc/sysconfig/static-routes,经测试此文件已经无效;/etc/sysconfig/network 配置文件仅仅可以提供全局默认网关,语法同Centos6 一样:GATEWAY= ;永久静态路由需要写到/etc/sysconfig/network-scripts/route-interface 文件中,比如添加两条静态路由:[iyunv@centos7 ~]#echo'10.15.150.0/24 via 192.168.150.253 dev enp0s3' >/etc/sysconfig/network-scripts/route-enp0s3[iyunv@centos7 ~]#echo '10.25.250.0/24 via192.168.150.253 dev enp0s3' >>/etc/sysconfig/network-scripts/route-enp0s3 注意第二条指令的重定向符号是>> 。
重启计算机、或者重新启用设备enp0s3才能生效(指令:nmcli dev connect enp0s3 )。
如果要清除永久静态路由,可以删除ifcfg-enp0s3文件或者注释掉文件里的相应静态路由条目,重启计算机。
想要让修改后的静态路由立即生效,只能用ip route del 手工删除静态路由条目。
实验的过程中出现两个奇怪的现象:1)有时候路由生效了但是在ip route show 却没有显示,重启计算机后是肯定显示的,原因暂时不明。
2)存在多个网卡时,默认路由似乎是随机经由某个网卡设备。
检查了所有连接配置文件后发现,第一网卡的默认连接配置文件ifcfg-eth0 设置了GATEWAY0(此设置会覆盖/etc/sysconfig/network 定义的全局默认网关),第二网卡的连接配置文件ifcfg-eth1 使用的是dhcp,会在启动时也分配默认网关,两个默认网关让计算机糊涂了。
这是在测试系统里经常发生的现象,生产系统一般不会让网卡用dhcp,或者即使是用了也会仔细分配默认网关防止冲突。
其他需要注意的:1)连接配置文件ifcfg-* 里可以设置多个GATEWAY,一般第一个是GATEWAY0,然后GATEWAY1, GATEWAY2... ,尾号最大的有效;2)如果必须在/etc/sysconfig/network 文件定义全局网关,连接配置文件ifcfg-* 就不要设置GATEWAY了,dhcp 的连接要注意dhcp服务器不要定义默认网关。
3)ifcfg-enp0s3 文件改名为ifcfg-eth0 后,route-enp0s3 文件也要改名为route-eth0。
#修改于2014-10-8 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =4、用ip neighbour 代替arp -n[iyunv@centos7 ~]# ip nei192.168.150.254 dev enp0s3 lladdr b8:a3:86:37:bd:f8 STALE192.168.150.100 dev enp0s3 lladdr 90:b1:1c:94:a1:20 DELAY192.168.150.253 dev enp0s3 lladdr 00:09:0f:85:86:b9STALE可以用ip nei add 添加静态arp 条目,ip nei delete 删除静态arp条目,见/lidp/archive/2009/12/02/1697480.ht ml5、用ss 代替netstat对应netstat -ant[iyunv@centos7 ~]# ss -antState Recv-Q Send-Q Local Address:Port Peer Address:PortLISTEN 0 100 127.0.0.1:25*:*LISTEN 0 128 *:22*:*ESTAB 0 0 192.168.150.110:22 192.168.150.100:53233LISTEN 0100 ::1:25 :::* LISTEN 0128 :::22 :::*对应netstat -antp[iyunv@centos7 tmp]# ss -antpState Recv-Q Send-Q Local Address:Port Peer Address:PortLISTEN 0 100 127.0.0.1:25 *:*users:(('master',1817,13))LISTEN 0 128 *:22 *:*users:(('sshd',1288,3))ESTAB 0 0 192.168.150.110:22 192.168.150.100:59413users:(('sshd',2299,3))LISTEN 0100 ::1:25 : ::*users:(('master',1817,14))LISTEN 0128 :::22 : ::*users:(('sshd',1288,4))[iyunv@centos7 tmp]#看着真的很别扭,不管多宽的终端屏,users:部分都会折到下一行,其实是在一行的。