centos

sys.13.6 linux网络属性配置(ip/ss)

 

导语

iproute命令家族:

命令系列由软件包’iproute’提供;
安装程序包命令:~]# yum  -y  install  iproute
查看程序包信息:~]# rpm  -qi  iptoute

关键词:
ip link ; ip netns ; ip address ; ip route ;
ss ;

================================********************************===============================

1、 ip命令:

ip –  show / manipulate  routing,  devices,  policy  routing  and  tunnels
        查看/管理路由、设备、策略路由、隧道;

ip  [ OPTIONS ]   OBJECT  { COMMAND | help }
ip  [ -force ]  -batch  filename

OBJECT := { link | address | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |netns | l2tp | tcp_metrics | token }

OPTIONS := { -V[ersion] |  -h[uman-readable] | -s[tatistics] | -d[etails] | -r[esolve] |  -iec | -f[amily]  { inet | inet6 | ipx | dnet | link} | -4 | -6 | -I | -D | -B | -0 | -l[oops]  { maximum-addr-flush-attempts } | -o[neline] |   -rc[vbuf]  [size] | -t[imestamp] |-ts[hort] | -n[etns]   name | -a[ll] }

备注:在能唯一识别的前提下,’OBJECT’ 及其子命令 ‘command’ 的字符串可缩,可缩写成前面几个字符串;

ip    OBJECT 常用用法整理:
=============================

ip  link : network  device  configuration,网络设备管理;
———————————————————-
ip  link  list = ip  link  show                                               显示所有网络接口的统计信息;

ip  link  set  DEVICE  { up | down }                                 启用或禁用指定网络接口;
ip  link  set  DEVICE  multicast  { on | off }                   启用或禁用指定网络接口的多播功能;

ip  link  set  DEVICE  name  NAME                                更改指定网络接口的名字;改名字之前先’down’网络接口,然后更改,最后’up’网络接口;
ip  link  set  DEVICE  mtu  NUMBER                            设置指定网络接口的最大传输单元(MTU),默认是1500bytes;

ip  link  set  DEVICE  netns  { PID | NETNSNAME }              ns指的是namespace,用于将网络接口移动到指定的网络名称空间;
把指定网络接口移动的指定的网络名称空间的步骤:
先创建网络名称空间: ~]# ip  netns  add  NETNSNAME          添加一个网络名称空间,自定义一个名字;

移动网络接口到网络名称空间: ~]# ip  link  set  DEVICE  netns  NETNSNAME
移动网络接口到网络名称空间后,使用类似’ip  link  show’命令,是查看不到已经移动到网络名称空间的网络接口信息的,如果要查看,则使用命令:
~]# ip  netns  exec  NETNSNAME  ip  link  show

注意:如果当前主机只有一块物理网络接口的时候,移动此网络接口到网络名称空间后,远程连接会中断;

删除网络名称空间:~]# ip  netns  del  NETNSNAME
删除网络名称空间后,之前移动到网络名称空间的网络接口自动退出,也就是说,此时能用命令’ip  link  show’查看到所有网络接口的信息;

ip  netns :  process  network  namespace  management,网络名称空间管理;
———————————————————————-
~]# ip  netns  add  NETNSNAME                      添加一个网络名称空间,自定义一个名字;
~]# ip  netns  del  NETNSNAME                       删除指定的网络名称空间;

~]# ip  netns  list                                                  列出所有的网络名称空间;

~]# ip  netns  exec  NETNSNAME  COMMAND                    在指定的网络名称空间中运行指定的命令;

 

ip address命令:protocol  address  management,协议地址管理;
——————————————————————–
添加IP地址:
~]# ip  address  add  IFADDR/PREFIX  dev  IFNAME                  对指定的网络接口设定IP地址;’IFADDR/PREFIX’表示’IP地址/掩码长度’,’IFNAME’表示网络接口名称;
备注:上面命令添加的IP地址信息,用命令’ifconfig’是查看不了的,’ifconfig’命令只能查看到第一次配置的IP地址;只能使用命令’ip  address show’查看;

~]# ip  address  add  IFADDR/PREFIX  dev  IFNAME  label  LABEL_NAME                  为指定网络接口添加IP地址,并指定’LABEL_NAME’;
备注1:’LABEL_NAME’ 的表示方式为,’IFNAME:N’,其中’N’表示’0,1,2,…’的数字;

~]# ip  address  add  IFADDR/PREFIX  dev  IFNAME  broadcast  ADDRESS

删除IP地址:
~]# ip  address  del  IFADDR/PREFIX  dev  IFNAME                                删除不带’label’标签的IP地址;
~]# ip  address  del  IFADDR/PREFIX  dev  IFNAME:PREFIX               删除带’label’标签的IP地址;

显示IP地址信息:
~]# ip  address  show  [IFNAME]                          查看:所有网络接口或指定网络接口的信息;

清空所有IP地址:
~]# ip  address  flush  dev  IFNAME                     清空指定网络接口的所有IP地址;

举例:
~]# ip  address  add  192.168.206.120/16  dev  ens33
~]# ip  address  add  192.168.206.120/16  dev ens33  label  ens33:0
~]# ip  address  add  192.168.206.120/16  dev  ens33  label  ens33:7

~]# ip  address  del  192.168.206.120/16  dev  ens33
~]# ip  address  del  192.168.206.120/16  dev  ens33:7

ip route命令:routing  table  management,路由表管理;
———————————————————–
添加路由:
~]# ip  route  add  [ TYPE ]  PREFIX  via  ADDRESS  [ dev  STRING ]  [src  SOURCE_ADDRESS]
说明:
‘TYPE’类型有: { unicast | local | broadcast | multicast | throw | unreachable | prohibit | blackhole | nat };如果没有指定’TYPE’,则使用默认值’unicast’;
‘PREFIX’ : 表示’目标IP网段/掩码长度’;
‘via ADDRESS’ : ‘via’是固定的关键词;’ADDRESS’是网关地址,即下一跳地址;

举例:
~]# ip  route  add  192.168.40.0/16  via 190.168.10.1  dev  ens33  src 192.168.10.55
~]# ip  route  add  default  via  190.168.10.1  dev  ens33                                                   添加默认路由;

删除路由:
~]# ip  route  delete  [ TYPE ]  PREFIX

显示路由表:
~]# ip  route  list                         显示路由表的所有条目;
~]# ip  route  show                     显示路由表的所有条目;

~]# ip  route  show  [ TYPE ]  PREFIX                       显示指定目标网段的路由条目;

清空路由表;
~]# ip  route  flush  [ TYPE ]  PREFIX

2、ss命令:another  utility  to  investigate  sockets; 另一个用于研究套接字的实用程序;

ss  [options]  [ FILTER ]

OPTIONS:
-t :  TCP协议的相关连接;
-u :  UDP协议的相关连接;
-w :  raw socket相关的连接;
-l :  处于监听状态的连接;’State’;
-a :  所有信息状态;Show  both  listening  and  non-listening  ( for  TCP  this  means  established  connections)  sockets. With  the — interfaces option, show  interfaces  that  are  not  up;
-n :  以数字格式显示IP和PORT;
-e :  扩展格式;’User’,’Inode’;表示显示哪个用户开启的进程,以及此进程文件所对应的’inode’号;
-p :  显示相关的进程及PID;’PID/Program name’

-o : Show  timer  information;                          显示计数器的信息;
-m : Show  socket  memory  usage;                 显示套接字内存的使用;

FILTER := [ state  STATE-FILTER ]  [ EXPRESSION ]

TCP的常见状态,TCP  FSM(有限状态机,Finite  State  Machine):
LISTEN :                      监听状态;
ESTABLISHED :        已建立的连接;
FIN_WAIT_1 : ;
FIN_WAIT_2 : ;
SYN_SENT : ;
SYN_RECV : ;
TIME_WAIT : ;
CLOSED : ;
CLOSE_WAIT : ;
LAST_ACK : ;
CLOSING : ;

EXPRESSION:
dport =                                                表示目标端口;
sport =                                                 表示源端口;

举例: ‘(  dport = :22  or  sport = :22  )’
~]# ss  -o  state  established  ‘(  dport = :ssh  or  sport = :ssh  )’
Display  all  established  ssh  connections;

~]# ss  -o  state  fin-wait-1  ‘(  sport = :http  or  sport  =  :https  )’  dst  193.233.7/24
List  all  the  tcp  sockets  in  state  FIN-WAIT-1  for  our  apache  to  network  193.233.7/24  and  look  at  their  timers;

 

F.E.

1、iproute家族的命令由软件包’iproute’提供,查看’iproute’程序包信息:

[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# rpm -qi iproute
Name        : iproute
Version     : 3.10.0                                 'iproute'的版本号与内核的版本号是一致的;
Release     : 87.el7
Architecture: x86_64
Install Date: Wed 27 Dec 2017 05:43:18 AM CST
Group       : Applications/System
Size        : 1505751
License     : GPLv2+ and Public Domain
Signature   : RSA/SHA256, Fri 11 Aug 2017 12:45:58 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : iproute-3.10.0-87.el7.src.rpm
Build Date  : Sat 05 Aug 2017 06:11:33 AM CST
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://kernel.org/pub/linux/utils/net/iproute2/
Summary     : Advanced IP routing and network device configuration tools
Description :
The iproute package contains networking utilities (ip and rtmon, for example)
which are designed to use the advanced networking capabilities of the Linux
2.4.x and 2.6.x kernel.
[root@kouyuushinn ~]# 


[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# uname -r
3.10.0-693.21.1.el7.x86_64
[root@kouyuushinn ~]#

2、查看’ip’命令的帮助信息:

IP - COMMAND SYNTAX
   OBJECT
       address
              - protocol (IP or IPv6) address on a device.

       addrlabel
              - label configuration for protocol address selection.

       l2tp   - tunnel ethernet over IP (L2TPv3).

       link   - network device.

       maddress
              - multicast address.

       monitor
              - watch for netlink messages.

       mroute - multicast routing cache entry.

       mrule  - rule in multicast routing policy database.

       neighbour
              - manage ARP or NDISC cache entries.

       netns  - manage network namespaces.

       ntable - manage the neighbor cache's operation.

       route  - routing table entry.

       rule   - rule in routing policy database.

       tcp_metrics/tcpmetrics
              - manage TCP Metrics

       token  - manage tokenized interface identifiers.

       tunnel - tunnel over IP.

       tuntap - manage TUN/TAP devices.

       xfrm   - manage IPSec policies.

       The names of all objects may be written in full or abbreviated form, for exampe address can be abbreviated as addr or just a.

   COMMAND
       Specifies the action to perform on the object.  The set of possible actions depends on the object type.  As a rule, it is possible to add,
       delete and show (or list ) objects, but some objects do not allow all of these operations or have some additional commands. The help command
       is available for all objects. It prints out a list of available commands and argument syntax conventions.

       If no command is given, some default command is assumed.  Usually it is list or, if the objects of this class cannot be listed, help.


说明:

1> 'ip OBJECT' 中对于具体的'OBJECT'的使用帮助,可以使用命令查看:'ip OBJECT help',或者 'man ip-OBJECT';

2> 'ip OBJECT' 后面没有给定'OBJECT'的子命令'COMMAND'时候,通常以'list'方式显示,如果遇到'OBJECT'没有可显示的信息,则可用上面的帮助命令查看此'OBJECT'的其他子命令使用方法;

3、’ip address add ‘添加IP地址;使用’label’选项添加IP地址;

[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.206.132  netmask 255.255.255.0  broadcast 192.168.206.255
        inet6 fe80::7e22:852b:5f82:f5d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ce:f2:dd  txqueuelen 1000  (Ethernet)
        RX packets 306053  bytes 290195948 (276.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 138299  bytes 46829639 (44.6 MiB)
        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 1  (Local Loopback)
        RX packets 2274  bytes 130086 (127.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2274  bytes 130086 (127.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ip address add 192.168.206.135/16 dev ens33
[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ip address add 192.168.206.138/16 dev ens33
[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ip address add 10.10.10.10/8 dev ens33
[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.206.132  netmask 255.255.255.0  broadcast 192.168.206.255
        inet6 fe80::7e22:852b:5f82:f5d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ce:f2:dd  txqueuelen 1000  (Ethernet)
        RX packets 306309  bytes 290218440 (276.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 138453  bytes 46847849 (44.6 MiB)
        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 1  (Local Loopback)
        RX packets 2274  bytes 130086 (127.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2274  bytes 130086 (127.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ce:f2:dd brd ff:ff:ff:ff:ff:ff
    inet 192.168.206.132/24 brd 192.168.206.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.206.135/16 scope global ens33
       valid_lft forever preferred_lft forever
    inet 10.10.10.10/8 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.206.138/16 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7e22:852b:5f82:f5d/64 scope link 
       valid_lft forever preferred_lft forever
[root@kouyuushinn ~]# 

--------------------------------------------

[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ip addr add 192.168.10.10/16 dev ens33 label ens33:0
[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ip addr add 192.168.10.15/16 dev ens33 label ens33:5
[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.206.132  netmask 255.255.255.0  broadcast 192.168.206.255
        inet6 fe80::7e22:852b:5f82:f5d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ce:f2:dd  txqueuelen 1000  (Ethernet)
        RX packets 307335  bytes 290305849 (276.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 139014  bytes 46919951 (44.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.10  netmask 255.255.0.0  broadcast 0.0.0.0
        ether 00:0c:29:ce:f2:dd  txqueuelen 1000  (Ethernet)

ens33:5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.15  netmask 255.255.0.0  broadcast 0.0.0.0
        ether 00:0c:29:ce:f2:dd  txqueuelen 1000  (Ethernet)

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 1  (Local Loopback)
        RX packets 2284  bytes 130666 (127.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2284  bytes 130666 (127.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ip addr sho
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ce:f2:dd brd ff:ff:ff:ff:ff:ff
    inet 192.168.206.132/24 brd 192.168.206.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.10.10/16 scope global ens33:0
       valid_lft forever preferred_lft forever
    inet 192.168.10.15/16 scope global secondary ens33:5
       valid_lft forever preferred_lft forever
    inet6 fe80::7e22:852b:5f82:f5d/64 scope link 
       valid_lft forever preferred_lft forever
[root@kouyuushinn ~]#

4、ss命令举例:

[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ss -tan state established '( dport = :22 or sport = :22 )'
Recv-Q Send-Q                                   Local Address:Port                                                  Peer Address:Port              
0      0                                      192.168.206.132:22                                                   192.168.206.1:49911              
0      52                                     192.168.206.132:22                                                   192.168.206.1:49912              
[root@kouyuushinn ~]# 
[root@kouyuushinn ~]# ss -tan  '( dport = :22 or sport = :22 )'
State       Recv-Q Send-Q                              Local Address:Port                                             Peer Address:Port              
LISTEN      0      128                                             *:22                                                          *:*                  
ESTAB       0      0                                 192.168.206.132:22                                              192.168.206.1:49911              
ESTAB       0      52                                192.168.206.132:22                                              192.168.206.1:49912              
LISTEN      0      128                                            :::22                                                         :::*                  
[root@kouyuushinn ~]#

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *