Linux网络——配置网络之iproute家族命令
程序员文章站
2022-08-29 07:59:41
Linux网络——配置网络之iproute家族命令 摘要:本文主要学习了iproute家族用来配置网络的命令。 ip命令 ip命令用于查看和管理IP地址、接口、路由、隧道等。用来取代ifconfig命令。 基本语法 网络接口相关: 网络名称空间相关: IP地址相关: 路由相关: 选项说明 网络接口相 ......
linux网络——配置网络之iproute家族命令
摘要:本文主要学习了iproute家族用来配置网络的命令。
ip命令
ip命令用于查看和管理ip地址、接口、路由、隧道等。用来取代ifconfig命令。
基本语法
网络接口相关:
1 ip link [选项]
网络名称空间相关:
1 ip netns [选项]
ip地址相关:
1 ip addr [选项]
路由相关:
1 ip route [选项]
选项说明
网络接口相关:
1 list 网卡名称:查看网卡信息,不指定则查看全部网卡信息。 2 show 网卡名称:查看网卡信息,不指定则查看全部网卡信息。 3 set 网卡名称 up:启用网卡。 4 set 网卡名称 down:关闭网卡。 5 set 网卡名称 name 网卡名称:修改网卡名称,需要在网卡关闭状态才可修改。 6 set 网卡名称 mtu mtu值:修改网卡最大传输单元。 7 set 网卡名称 multicast on:开启组播功能。 8 set 网卡名称 multicast off:禁用组播功能。 9 set 网卡名称 netns 名称空间:将接口移动至指定的网络名称空间中。
网络名称空间相关:
1 list:列出所有的netns。 2 add 名称空间:创建指定的netns。 3 del 名称空间:删除指定的netns。 4 exec 名称空间 命令:在指定的netns上运行命令。
ip地址相关:
1 list 网卡名称:查看网卡上的ip地址,不指定则查看全部网卡ip地址。 2 show 网卡名称:查看网卡上的ip地址,不指定则查看全部网卡ip地址。 3 add ip地址/掩码位数 dev 网卡名称:添加ip地址。 4 add ip地址/掩码位数 dev 网卡名称 label 别名:添加ip地址并指定别名。 5 add ip地址/掩码位数 dev 网卡名称 broadcast 广播地址:添加ip地址并指定广播地址。 6 add ip地址/掩码位数 dev 网卡名称 scope 作用域:添加ip地址并指定作用域。作用域主要有三种:global全局有效,link仅接口有效,host仅主机有效。 7 delete ip地址/掩码位数 dev 网卡名称:删除ip地址。 8 flush dev 网卡名称:清空ip地址。
路由相关:
1 show 路由地址:显示路由表,不指定地址则查看全部路由。 2 add 目标网络 via 网关 dev 网卡 src 出口地址:添加路由,网卡和出口地址可以省略。 3 change 目标网络 via 网关 dev 网卡 src 出口地址:修改路由,网卡和出口地址可以省略。 4 replace 目标网络 via 网关 dev 网卡 src 出口地址:修改路由或添加路由,网卡和出口地址可以省略。 5 del 目标网络:删除路由。 6 get 目标网络:获得单条路由的详细信息。 7 flush:清空路由表。
ss命令
ss命令用于获取socket统计信息等。用来取代netstat命令。
基本语法
1 ss [选项] 过滤条件
选项说明
1 -t:显示tcp协议相关的连接。 2 -u:显示udp协议相关的连接。 3 -w:显示raw协议相关的连接。 4 -a:显示所有状态的连接。 5 -l:显示处于监听状态的连接。 6 -e:以扩展格式显示。 7 -n:以数字格式显示ip和port。 8 -p:显示相关进程和pid。 9 -m:显示内存用量。 10 -o:显示计数器信息。
过滤条件
过滤条件可以没有,主要有种方式:
1)通过tcp状态过滤
语法如下:
1 state tcp状态
tcp状态通常为以下几个值之一:
1 established 套接字有一个有效连接。 2 syn_sent 套接字尝试建立一个连接。 3 syn_recv 从网络上收到一个连接请求。 4 fin_wait1 套接字已关闭,连接正在断开。 5 fin_wait2 连接已关闭,套接字等待远程方中止。 6 time_wait 在关闭之后,套接字等待处理仍然在网络中的分组。 7 closed 套接字未用。 8 close_wait 远程方已关闭,等待套接字关闭。 9 last_ack 远程方中止,套接字已关闭。等待确认。 10 listen 套接字监听进来的连接。如果不设置-l或者-a选项,将不显示出来这些连接。 11 closing 套接字都已关闭,而还未把所有输出发出。 12 unknown 套接字状态未知。
2)通过表达式过滤
语法如下:
1 dport 目标端口或协议类型 2 sport 源端口或协议类型
使用举例
显示tcp网络连接:
1 [root@localhost ~]# ss -tan 2 state recv-q send-q local address:port peer address:port 3 listen 0 128 *:22 *:* 4 listen 0 100 127.0.0.1:25 *:* 5 estab 0 0 192.168.35.128:22 192.168.35.1:9341 6 estab 0 52 192.168.35.128:22 192.168.35.1:12751 7 listen 0 128 :::22 :::* 8 listen 0 100 ::1:25 :::* 9 [root@localhost ~]#
通过状态筛选:
1 [root@localhost ~]# ss state established 2 netid recv-q send-q local address:port peer address:port 3 u_str 0 0 * 19669 * 19670 4 u_str 0 0 * 19633 * 19634 5 u_str 0 0 * 16125 * 16787 6 u_str 0 0 * 19661 * 19660 7 u_str 0 0 * 19646 * 19645 8 u_str 0 0 * 18283 * 18284 9 ... 10 [root@localhost ~]#
通过端口筛选:
1 [root@localhost ~]# ss dport = 17715 2 netid state recv-q send-q local address:port peer address:port 3 u_str estab 0 0 * 17224 * 17715 4 [root@localhost ~]# ss sport = 17224 5 netid state recv-q send-q local address:port peer address:port 6 u_str estab 0 0 * 17224 * 17715 7 [root@localhost ~]# ss sport = 22 8 netid state recv-q send-q local address:port peer address:port 9 tcp estab 0 0 192.168.35.128:ssh 192.168.35.1:9341 10 tcp estab 0 52 192.168.35.128:ssh 192.168.35.1:12751 11 [root@localhost ~]#
通过组合筛选:
1 [root@localhost ~]# ss state established '( dport = :ssh or sport = :ssh )' 2 netid recv-q send-q local address:port peer address:port 3 tcp 0 0 192.168.35.128:ssh 192.168.35.1:9341 4 tcp 0 52 192.168.35.128:ssh 192.168.35.1:12751 5 [root@localhost ~]# ss -tan state established sport = :22 6 recv-q send-q local address:port peer address:port 7 0 0 192.168.35.128:22 192.168.35.1:9341 8 0 52 192.168.35.128:22 192.168.35.1:12751 9 [root@localhost ~]#