15. Linux系统网络属性管理

gateway:主要用于本主机和其他网络主机通信使用

我们一般使用的局域网都是IGP,网关地址可以认为是一个默认路由。

route:主要用户建立路由条目,分为三种
  • 网络路由 目标是一个网络范围

  • 主机路由 目标是一个主机ip

  • 默认路由 目标是所有非本地网络

15.1. 地址管理

15.1.1. 查看网络设备

1[root@zzjlogin ~]# dmesg |grep eth
2e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:b3:93:42
3e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
4e1000 0000:02:04.0: eth1: (PCI:66MHz:32-bit) 00:0c:29:b3:93:4c
5e1000 0000:02:04.0: eth1: Intel(R) PRO/1000 Network Connection
6e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
7eth0: no IPv6 routers present

15.1.2. 查看及设置IP

查看IP地址:

 1[root@zzjlogin ~]# ifconfig
 2eth0      Link encap:Ethernet  HWaddr 00:0C:29:B3:93:42
 3        inet addr:192.168.161.132  Bcast:192.168.161.255  Mask:255.255.255.0
 4        inet6 addr: fe80::20c:29ff:feb3:9342/64 Scope:Link
 5        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 6        RX packets:14464 errors:0 dropped:0 overruns:0 frame:0
 7        TX packets:4081 errors:0 dropped:0 overruns:0 carrier:0
 8        collisions:0 txqueuelen:1000
 9        RX bytes:1251606 (1.1 MiB)  TX bytes:720937 (704.0 KiB)
10
11lo        Link encap:Local Loopback
12        inet addr:127.0.0.1  Mask:255.0.0.0
13        inet6 addr: ::1/128 Scope:Host
14        UP LOOPBACK RUNNING  MTU:65536  Metric:1
15        RX packets:24 errors:0 dropped:0 overruns:0 frame:0
16        TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
17        collisions:0 txqueuelen:0
18        RX bytes:3304 (3.2 KiB)  TX bytes:3304 (3.2 KiB)
19
20[root@zzjlogin ~]# ifconfig eth0
21eth0      Link encap:Ethernet  HWaddr 00:0C:29:B3:93:42
22        inet addr:192.168.161.132  Bcast:192.168.161.255  Mask:255.255.255.0
23        inet6 addr: fe80::20c:29ff:feb3:9342/64 Scope:Link
24        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
25        RX packets:14479 errors:0 dropped:0 overruns:0 frame:0
26        TX packets:4089 errors:0 dropped:0 overruns:0 carrier:0
27        collisions:0 txqueuelen:1000
28        RX bytes:1253136 (1.1 MiB)  TX bytes:723049 (706.1 KiB)

临时设置IP

1ifconfig ifname ip/netmask up
2ifconfig ifname ip/prefix up
3
4ifconfig eth0 10.0.0.1/8 up

备注

通过ifconfig命令配置的ip信息会立即生效,但是不会永久生效的。网卡重启就会失效(重启网卡命令:/etc/init.d/network restart)

15.1.3. 使用ip命令来配置网络ip地址参数

ip命令用起来还是比较麻烦的,选项也是特别的多。

1ip [options] object {command}
2object:
3        link: 链接接口
4        addr: 管理接口上的地址
5        route:管理路由的

link的帮助:

set

设置device接口属性

show

显示接口状态信息

addr的帮助:

add

添加

del

删除

示例:

ip addr add 172.18.200.1/16 dev eth0

show

查看所有地址信息

flush

清楚协议地址

route的帮助:

list

列出route信息

add

添加路由

del

删除路由

样例:

ip route del 192.168.0.0/24

样例:

ip route add default via 172.18.0.1 ip route add 172.18.0.0/16 via 172.18.4.4

15.1.4. 图形界面设置

在centos6下可以使用setup命令来配置ip信息,而centos7下使用更强大的工具nmtui命令。

15.1.5. 网络信息的主要配置说明

DEVICE

设备

BOOTPROTO

配置协议, none,static,dhcp

HWADDR

硬件地址

NM_CONTROLLED

是否受到networkManager控制,centos建议设置为no

ONBOOT

开机启动

TYPE

类型,ethernet,team,bound

UUID

设备的uuid

IPADDR

IP 信息

NETMASK

子网掩码

GATEWAY

网关

DNS1

第一个dns

DNS2

第二个dns

USERCTL

是否运行其他用户控制

PREFIX

设置掩码的,cidr格式的

PEERDNS

是否运行dhcp服务器提供的dns服务覆盖本地的dns

15.1.6. 配置dns

1[root@centos-155 backup]# vim  /etc/resolv.conf
2[root@centos-155 backup]# cat /etc/resolv.conf
3# Generated by NetworkManager
4search DHCP HOST
5nameserver 59.108.61.61
6nameserver 219.232.48.61

nameserver用于设置dns服务器。

15.2. 路由管理

15.2.1. 动态配置

注意

我们使用route添加的路由条目可以立即生效,但是只是本次关机之前生效,重启系统就会没有失效。

如果想永久生效一般有两中方法,一种是配置 /etc/syssconfig/network-scripts/route-ifname 或者把添加路由的命令追加到启动脚本中 /etc/rc.local

  1. 查看路由

1[root@centos-155 backup]# route -n
2Kernel IP routing table
3Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
4192.168.46.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
  1. 添加主机路由

1[root@centos-155 backup]# route add -host 192.168.46.200 gw 192.168.46.1
2[root@centos-155 backup]# route -n
3Kernel IP routing table
4Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
5192.168.46.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
6192.168.46.200  192.168.46.1    255.255.255.255 UGH   0      0        0 ens33
  1. 添加网络路由

1[root@centos-155 backup]# route add -net 172.18.0.0/16 gw 192.168.46.1
2[root@centos-155 backup]# route -n
3Kernel IP routing table
4Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
5172.18.0.0      192.168.46.1    255.255.0.0     UG    0      0        0 ens33
6192.168.46.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
7192.168.46.200  192.168.46.1    255.255.255.255 UGH   0      0        0 ens33
  1. 删除路由

1[root@centos-155 backup]# route del -net 172.18.0.0/16  gw 192.168.46.1
2[root@centos-155 backup]# route -n
3Kernel IP routing table
4Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
5192.168.46.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
6192.168.46.200  192.168.46.1    255.255.255.255 UGH   0      0        0 ens33

15.2.2. 静态配置

可以在 /etc/syssconfig/network-scripts/route-ifname 文件中添加如下记录

1192.168.0.0/24 via 172.16.0.2
2192.168.1.1 via 172.16.0.3

15.3. 主机名修改

修改主机名方法比较多
  1. hostname

  2. echo “you_host_name” >> /proc/sys/kernel/hostname

  3. 编辑/etc/sysconfig/network

  4. hostnamectl命令的(centos7有,centos6没有此命令)

15.4. 网络管理常用命令

ping

监测目标主机网络是否可以到达,以及网络相关延时信息。

traceroute

监测到达目标主机之间所经过的网络设备

mtr

合并了ping和traceroute命令的诊断工具

dig

测试dns

15.5. 网络服务查看工具

常用来监控本地服务器的工具有:
  • netstat

  • ss

现在一般最好使用ss,这个工具效率比netstat高。ss的显示结果没有netstat规范。所以一般用 column -t 让输出结果规范化

15.5.1. netstat

主要选项

-r

显示路由表

-n

数字显示

-t

tcp

-u

udp

-l

监听

-a

显示所有连接

-p

显示进程相关信息

样例:

 1[root@centos-155 backup]# netstat -tunlp
 2Active Internet connections (only servers)
 3Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
 4tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
 5tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      916/sshd
 6tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      687/rsync
 7tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
 8tcp6       0      0 :::22                   :::*                    LISTEN      916/sshd
 9tcp6       0      0 :::873                  :::*                    LISTEN      687/rsync
10tcp6       0      0 :::3306                 :::*                    LISTEN      1132/mysqld

备注

nestat命令效率低下,推荐使用ss命令

15.5.2. ss

主要选项

-e

扩展信息

-m

显示使用信息

-o

状态

-n

数字显示

-t

tcp

-u

udp

-l

监听

-a

显示所有连接

-p

显示进程相关信息

样例

1[root@centos-155 backup]# ss -tunl
2Netid  State      Recv-Q Send-Q                                       Local Address:Port                                                      Peer Address:Port
3tcp    LISTEN     0      128                                                      *:111                                                                  *:*
4tcp    LISTEN     0      128                                                      *:22                                                                   *:*
5tcp    LISTEN     0      5                                                        *:873                                                                  *:*
6tcp    LISTEN     0      128                                                     :::111                                                                 :::*
7tcp    LISTEN     0      128                                                     :::22                                                                  :::*
8tcp    LISTEN     0      5                                                       :::873                                                                 :::*
9tcp    LISTEN     0      80                                                      :::3306                                                                :::*