简述iproute家族命令

时间:2023-03-08 17:00:45

ifconfig

是用来查看、配置、启用或禁用网络接口的工具。可以用这个工具来临时配置网卡的IP地址、掩码、广播地址、网关等。

语法######

ifconfig [interface]

参数######

up 启动指定网络设备/网卡

down 关闭指定网络设备/网卡

-a 显示全部接口信息

-s 显示摘要信息

add 设置指定网卡配置IPv6地址

del 删除指定网卡配置IPv6地址

mtu<字节数> 设置网卡的最大传输单元(bytes)

netmask<子网掩码>设置网卡的子网掩码

multicast 为网卡设置组播标志

实例######

为网卡配置和删除IPV6地址

ifconfig eth0 add 33ffe:3240:800:1005::2/64    #为网卡eth0配置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64 #为网卡eth0删除IPv6地址

用ifconfig修改MAC地址

ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE

配置IP地址

[root@qingcheng-app ~]#ifconfig eth0 192.168.2.10
[root@qingcheng-app ~]#ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@qingcheng-app ~]#ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255

启用和关闭arp协议:

ifconfig eth0 arp   //开启网卡eth0的arp协议
ifconfig eth0 -arp //关闭网卡eth0的arp协议

设置最大传输单元

ifconfig eth0 mtu 1500

route

route程序对内核的IP选路进行操作。它主要用于通过已用ifconfig程序配置好接口来指定主机或网络设置静态路由。

语法######

route [-CFvnNee] [-A family |-4|-6]

选项######

-A:设置地址类型

-C:打印将Linux核心路由缓存

-v:详细信息模式

-n:不执行DNS方向查找,直接显示数字形式的IP地址

-e:netstat格式路由表

-net:到一个网络的路由表

-host:到一个主机的路由表

参数######

Add:增加指定的路由记录

Del:删除指定的路由记录

Target:目的网络或目的主机;

gw:设置默认网关

mss:设置TCP最大区块长度,单位MB

window:指定通过路由表的TCP链接的TCP窗口大小

dev:路由记录所表示的网络接口

实例######

显示当前路由

[root@qingcheng-app ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 121.14.47.1 0.0.0.0 UG 0 0 0 br1
121.14.47.0 0.0.0.0 255.255.255.128 U 0 0 0 br1
169.254.0.0 0.0.0.0 255.255.0.0 U 1006 0 0 br0
169.254.0.0 0.0.0.0 255.255.0.0 U 1007 0 0 br1
172.19.47.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0

添加网关/设置网关

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0      //增加一条到达244.0.0.0的路由

屏蔽一条路由

route add -net 224.0.0.0 netmask 240.0.0.0 reject

删除路由记录

route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject

删除和添加设置默认网关

route del default gw 192.168.120.240
route add default gw 192.168.120.240

netstat

显示网络连接、路由表、接口状态、伪装连接、网络链路信息和组播成员。

语法######

netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n]

[--numeric-hosts] [--numeric-ports] [--numeric-users] [--symbolic|-N] [--extend|-e[--extend|-e]] [--program|-p]

选项######
 -t:tcp 协议相关
-u:udp协议相关
-r:raw socket相关
-l:处于监听状态
-a:所有状态
-n:已数字方式显示IP和端口
-e:扩展格式
-p:显示相关的进程和PID
常用组合:
-tan,uan,-tnl,unl
实例######

列出所有端口

netstat -a      //列出所有端口
netstat -at //列出所有tcp端口
netstat -au //列出所有udp的端口

列出所有处于监听状态的sockets

netstat -l      //只显示监听端口
netstat -lt //只列出所有监听tcp端口
netstat -lu //只列出所有监听udp端口
netstat -lx //只列出所有监听unix端口

显示每个协议的统计信息

netstat -s   //显示所有端口的统计信息
netstat -st //显示TCP端口的统计信息
netstat -su //显示UDP端口的统计信息

在netstat 输出中不显示主机,端口和用户名(host,port or user)

netstat -an    //不显示主机,端口,用户名
如果只是不想让着三个名称的一个被显示,使用以下命令
netstat -a --numeric-ports
netstat -a --numeric-hosts
netstat -a --numeric-users

持续输出netstat信息

netstat -c

显示核心路由信息

netstat -r

显示网络接口列表

netstat -i

ip

显示或操纵Linux主机路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。

语法######
ip [ OPTIONS ] OBJECT { COMMAND | help }
选项######
-V:显示指令版本信息
-s:输出更详细的信息
-f:强制使用指定的协议簇
-4:指定使用网络协议是IPv4协议;
-6:指定使用网络协议是IPv6协议;
-0:输出信息每条记录输出一行,即使内容多也不换行显示;
-r:显示主机时,不使用IP地址,而使用主机的域名。
参数######

网络对象:指定要管理的网络对象

具体操作:对指定的网络对象完成具体操作

help:显示网络对象支持的操作命令的帮助信息

实例######

用ip命令显示网络设备的运行状态

[root@qingcheng-app ~]# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP mode DEFAULT qlen 1000
link/ether 80:18:44:ea:80:a8 brd ff:ff:ff:ff:ff:ff
3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br1 state UP mode DEFAULT qlen 1000
link/ether 80:18:44:ea:80:a9 brd ff:ff:ff:ff:ff:ff
4: em3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
link/ether 80:18:44:ea:80:aa brd ff:ff:ff:ff:ff:ff

显示更加详细的设备信息

[root@qingcheng-app ~]# ip -s link list|more
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
31597378 557905 0 0 0 0
TX: bytes packets errors dropped carrier collsns
31597378 557905 0 0 0 0
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP mode DEFAULT qlen 1000
link/ether 80:18:44:ea:80:a8 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
391717022510 928145510 0 146014 0 16244537
TX: bytes packets errors dropped carrier collsns
176477581378 928005445 0 0 0 0

显示核心路由表

[root@qingcheng-app ~]# ip route list
default via 121.14.47.1 dev br1
169.254.0.0/16 dev br0 scope link metric 1006
169.254.0.0/16 dev br1 scope link metric 1007
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

显示邻居表

[root@qingcheng-app ~]# ip neigh list
172.19.47.27 dev br0 lladdr 00:22:64:f7:9e:52 STALE
172.19.47.212 dev br0 lladdr 52:54:00:fa:ee:f2 STALE
121.14.47.3 dev br1 lladdr 74:1f:4a:7f:90:9a STALE

ss

用来显示处于活动状态套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

语法######
ss [options] [ FILTER ]
选项######
-t:只显示tcp套接字
-u:只显示udp套接字
-h:显示帮助信息
-V:显示指令版本信息
-a:显示所有的套接字
-l:显示处于监听状态的套接字
-o:显示计时器信息
-m:显示套接字的内存使用情况
-p:显示使用套接字的进程信息
-i:显示内部的TCP信息
-4:指定使用网络协议是IPv4协议
-6:指定使用网络协议是IPv6协议
-d:只显示DDCP套接字
-w:仅显示RAW套接字
-x:仅显示UNIX域套接字
实例######

显示TCP连接

[root@qingcheng-app ~]# ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 1 *:rfb *:*
LISTEN 0 1 *:5901 *:*
LISTEN 0 5 *:5902 *:*
LISTEN 0 5 *:5903 *:*
LISTEN 0 1 *:5904 *:*
LISTEN 0 1 *:5905 *:*
LISTEN 0 128 *:20050 *:*
LISTEN 0 128 *:6002 *:*
LISTEN 0 128 *:22898 *:*
LISTEN 0 128 *:6003 *:*

显示 Sockets摘要

[root@qingcheng-app ~]# ss -s
Total: 3196 (kernel 11861)
TCP: 102 (estab 1, closed 74, orphaned 0, synrecv 0, timewait 73/0), ports 0 Transport Total IP IPv6
* 11861 - -
RAW 2 0 2
UDP 12 9 3
TCP 28 21 7
INET 42 30 12
FRAG 0 0 0

列出所有打开的网络连接断开

[root@qingcheng-app ~]# ss -l|more
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
nl UNCONN 0 0 rtnl:mission-control/6366 *
nl UNCONN 0 0 rtnl:evolution-calen/135397 *
nl UNCONN 0 0 rtnl:gnome-software/135092 *
nl UNCONN 0 0 rtnl:mission-control/4058 *
nl UNCONN 0 0 rtnl:gnome-software/6409 *
nl UNCONN 0 0 rtnl:goa-daemon/6354 *
nl UNCONN 0 0 rtnl:evolution-calen/4452 *
nl UNCONN 0 0 rtnl:evolution-calen/6543 *

列出所有进程使用的socket

[root@qingcheng-app ~]# ss -pl|more
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
nl UNCONN 0 0 rtnl:mission-control/6366 *
nl UNCONN 0 0 rtnl:evolution-calen/135397 *
nl UNCONN 0 0 rtnl:gnome-software/135092 *
nl UNCONN 0 0 rtnl:mission-control/4058 *
nl UNCONN 0 0 rtnl:gnome-software/6409 *
nl UNCONN 0 0 rtnl:goa-daemon/6354 *
nl UNCONN 0 0 rtnl:evolution-calen/4452 *

显示所有UDP Sockets

root@qingcheng-app ~]# ss -u -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:31804 *:*
ESTAB 0 0 121.14.47.48:34330 193.228.143.14:ntp
UNCONN 0 0 *:53334 *:*
UNCONN 0 0 192.168.122.1:domain *:*
UNCONN 0 0 *%virbr0:bootps *:*
UNCONN 0 0 *:bootpc *:*
UNCONN 0 0 *:bootpc