linux网络管理(链路聚合、桥接网络、故障排查、常用工具)

简介: 网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度。

网络进阶管理



链路聚合


网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度。


网卡的链路聚合方式:


  • bond:最多可以添加两块网卡
  • team:最多可以添加八块网卡


bond的常用的2种模式:


bond0(balance-rr)


  • bond0用于负载轮询(2个网单独都是100MB,聚合为1个网络传输带宽为200MB)


bond1(active-backup)


  • bond1用于高可用,其中一条线若断线,其他线路将会自动备援


                            --> eth0  ----\
    app  --发送数据到--> bond0          <---> switch 
                            --> eth1  ----/


桥接网络


桥接网络也即网桥,可基于MAC地址在网络间转发流量。网桥识别哪些主机连接到每个网络,构建MAC地址表,然后根据该表做出包转发决策。


软件网桥的最常见应用是在虚拟化应用程序中,用于在一个或多个虚拟NIC中共享一个硬件NIC。


链路聚合配置


Centos7/RHEL7配置bond聚合链路


Centos7/RHEL7配置bond0


准备两块网卡做链路聚合,其中ens33用来做远程连接的,实际上只有两块网卡


查看网络状态:


[root@localhost ~]# nmcli dev
设备   类型      状态    连接 
ens38  ethernet  已断开  --   
ens39  ethernet  已断开  --   
ens33  ethernet  未托管  --   
lo     loopback  未托管  -- 


//创建bond0, 模式为balance-rr


[root@localhost ~]# nmcli connection add type bond mode balance-rr con-name bond0 ifname bond0 ipv4.method manual ipv4.addresses 192.168.100.68/24 ipv4.gateway 192.168.100.254 ipv4.dns 192.168.100.254
连接“bond0”(ae91ade2-b034-4e7a-84c0-b1992e96fc3b) 已成功添加。   //bond0已经添加
注释:
 nmcli con add                             // 添加nmcli连接
 type  bond                               //类型为bond
 mode balance-rr                         //模式为balance-rr(负载均衡)
 con-name bond0                         // 连接的名字为bond0
 ifname bond0                          //进来的网卡的名字bond0
 ipv4.method manual                   //ipv4的方法为手动
 ipv4.addresses  192.168.100.68/24   //ip地址为
 ipv4.gateway  192.168.100.254      //网关为
 ipv4.dns   192.168.100.254        //dns为
[root@localhost ~]# nmcli dev                                 //查看状态bond0已连接
设备   类型      状态    连接  
bond0  bond      连接的  bond0 
ens38  ethernet  已断开  --    
ens39  ethernet  已断开  --    
ens33  ethernet  未托管  --    
lo     loopback  未托管  --   


//添加物理网卡连接至bond0


[root@localhost ~]# nmcli connection add type bond-slave con-name bond-slave0 ifname ens38 master bond0
连接“bond-slave0”(dc02bacd-e9da-4f32-bf9d-1fc7994d88f9) 已成功添加。
[root@localhost ~]# nmcli connection add type bond-slave con-name bond-slave0 ifname ens39 master bond0
连接“bond-slave0”(da5a39cf-0c22-458f-b299-98f7fcd94950) 已成功添加。
注释:
nmcli connection add      //添加nmcli连接
type bond-slave           //类型为bond-slave
con-name  bond-slave0     //连接的名字为bond-slave0
ifname ens38              //网卡的名字为ens38
master  bond0             //添加到bond0里面去
查看状态
[root@localhost network-scripts]# nmcli de
设备   类型      状态    连接        
bond0  bond      连接的  bond0       
ens38  ethernet  连接的  bond-slave0 
ens39  ethernet  连接的  bond-slave1 
ens33  ethernet  未托管  --          
lo     loopback  未托管  --  


//启用连接


[root@localhost network-scripts]# nmcli con up bond0
成功激活(主服务器等待从服务器)连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/10)
[root@localhost network-scripts]# nmcli con up bond-slave0
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/13)
[root@localhost network-scripts]# nmcli con up bond-slave1
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/14)
[root@localhost network-scripts]# 


//验证


查看bond的配置信息
[root@localhost network-scripts]# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens38               //ens38为开启状态
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:6a
Slave queue ID: 0
Slave Interface: ens39                 //ens39也是开启状态  
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:74
Slave queue ID: 0
//将ens38 down掉(断开)
[root@localhost ~]# nmcli device discon ens38
成功断开设备 'ens38'。
//网络状态中ens38已断开
[root@localhost ~]# nmcli  dev
设备   类型      状态    连接        
bond0  bond      连接的  bond0       
ens39  ethernet  连接的  bond-slave1 
ens38  ethernet  已断开  --          
ens33  ethernet  未托管  --          
lo     loopback  未托管  -- 
//再次bond的配置信息
[root@localhost ~]# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens39          //ens38已经没了,只有ens39
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:74
Slave queue ID: 0
[root@localhost ~]# 
//把ens38启动
[root@localhost ~]# nmcli dev con ens38
成功用 'ens38' 激活了设备 'b6b4a54b-1a63-426d-a59a-c03a06231b68'。
//查看网络状态ens38已连接
[root@localhost ~]# nmcli dev
设备   类型      状态    连接        
bond0  bond      连接的  bond0       
ens38  ethernet  连接的  bond-slave0 
ens39  ethernet  连接的  bond-slave1 
//查看bond的配置信息
[root@localhost ~]# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens39                 //ens39还在
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:74
Slave queue ID: 0
Slave Interface: ens38                  //ens38已经起来了
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:6a
Slave queue ID: 0


Centos7/RHEL7配置bond1


//添加bond1模式为active-backup(高可用)


[root@localhost ~]# nmcli con add type bond mode active-backup con-name bond1 ifname bond1 ipv4.method manual ipv4.addresses 192.168.100.96/24 ipv4.gateway 192.168.100.254 ipv4.dns 192.168.100.254
连接“bond1”(fbf28be4-3db2-460c-9699-c7fce1f982e2) 已成功添加。


查看网络状态


[root@localhost ~]# nmcli dev
设备   类型      状态    连接  
bond1  bond      连接的  bond1         //bond1已连接
ens38  ethernet  已断开  --    
ens39  ethernet  已断开  --    
ens33  ethernet  未托管  --    
lo     loopback  未托管  --  


//添加物理网卡连接至bond1


[root@localhost ~]# nmcli con add type bond-slave con-name bond-a ifname ens38 master bond1   //添加ens38至bond1,连接的名字bond-a(配置文件的name)   网卡的名字ens38(配置文件的device)
连接“bond-a”(c528b036-8c9f-4459-8ab7-5604306a18e5) 已成功添加。
[root@localhost ~]# nmcli dev
设备   类型      状态    连接   
bond1  bond      连接的  bond1  
ens38  ethernet  连接的  bond-a 
ens39  ethernet  已断开  --     
ens33  ethernet  未托管  --     
lo     loopback  未托管  --  
[root@localhost network-scripts]# nmcli con add type bond-slave con-name ens39 ifname ens39 master bond1   //添加ens39至bond1,类型为bond-slave,链接名字ens39,网卡名字ens39
连接“ens39”(f721d815-1a04-483d-a38d-4deaee156611) 已成功添加。
[root@localhost network-scripts]# nmcli dev
设备   类型      状态    连接   
bond1  bond      连接的  bond1  
ens38  ethernet  连接的  bond-a 
ens39  ethernet  连接的  ens39  
ens33  ethernet  未托管  --     
lo     loopback  未托管  --


//激活链接:


[root@localhost ~]# nmcli con up bond1
成功激活(主服务器等待从服务器)连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@localhost ~]# nmcli con up bond-a
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
[root@localhost ~]# nmcli con up ens39
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/8)


//验证:


查看bond的配置信息 cat /proc/net/bonding/bond1


[root@localhost ~]# cat /proc/net/bonding/bond1 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens38             //当前活动的是ens38
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens38
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:6a
Slave queue ID: 0
Slave Interface: ens39
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:74
Slave queue ID: 0


//down掉ens38


[root@localhost ~]# nmcli  dev discon ens38
成功断开设备 'ens38'。
[root@localhost ~]# nmcli dev
设备   类型      状态    连接  
bond1  bond      连接的  bond1 
ens39  ethernet  连接的  ens39 
ens38  ethernet  已断开  --    
ens33  ethernet  未托管  --    
lo     loopback  未托管  -- 


//再次查看bond配置文件信息


[root@localhost ~]# nmcli con up bond-a
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/9)
[root@localhost ~]# nmcli dev
设备   类型      状态    连接   
bond1  bond      连接的  bond1  
ens38  ethernet  连接的  bond-a 
ens39  ethernet  连接的  ens39  
ens33  ethernet  未托管  --     
lo     loopback  未托管  -- 


//再次启用ens38这块网卡的链接


[root@localhost ~]# nmcli con up bond-a
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/9)
[root@localhost ~]# nmcli dev
设备   类型      状态    连接   
bond1  bond      连接的  bond1  
ens38  ethernet  连接的  bond-a 
ens39  ethernet  连接的  ens39  
ens33  ethernet  未托管  --     
lo     loopback  未托管  -- 


//再次查看bond的配置信息


[root@localhost ~]# cat /proc/net/bonding/bond1 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens39                //ens39是活跃的
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens39
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:74
Slave queue ID: 0
Slave Interface: ens38                   //ens38回来了
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:6a
Slave queue ID: 0


Centos6/RHEL6配置bond聚合链路


适用于RedHat6以及CentOS6


image.png


//1.创建绑定网卡配置文件
[root@wyh ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
IPADDR=172.16.12.250
NETMASK=255.255.255.0
GATEWAY=172.16.12.2
DNS1=172.16.12.2
BONDING_OPTS="mode=0 miimon=50" //如果使用模式1将mode修改为1即可
//2.修改eth0和eth1网卡配置文件
[root@wyh ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
USERCTL=no
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
[root@wyh ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
USERCTL=no
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
//3.添加驱动支持bond0
[root@wyh ~]# vim /etc/modprobe.d/bonding.conf
alias bond0 bonding


Centos7/RHEL7配置team聚合链路


centos/rhce7使用teaming实现聚合链路,能够提供网卡绑定之后的网络吞吐性能,并且提供网卡的故障切换处理能力。


Team是基于一个小型内核驱动实现聚合链路,在用户层提供teamd命令实现链路管理。


teamd可以实现以下模式的聚合链路


broadcast 广播容错

roundrobin 负载轮询

activebackup 主备(必考)

loadbalance 负载均衡

lacp 需要交换机支持lacp协议


//创建team0:
[root@localhost ~]# nmcli con add type team con-name team0 ifname team0 config          '{"runner":{"name":"activebackup"}}' ipv4.addresses 192.168.100.250/24 ipv4.gateway 192.168.100.254 ipv4.dns 114.114.114.114 ipv4.method manual  
连接“team0”(cae0a7dc-c9db-473b-bf5d-b6a9de8ade1b) 已成功添加。
//将物理网卡加入team0中:
[root@localhost ~]# nmcli con add type team-slave con-name ens38 ifname ens38 master team0
连接“ens38”(5e38d849-9783-445e-9498-35ba76c947fa) 已成功添加。
[root@localhost ~]# nmcli con add type team-slave con-name ens39 ifname ens39 master team0
连接“ens39”(3e5af9e6-a9b3-41ea-afeb-2c8180fecf90) 已成功添加。
[root@localhost ~]# nmcli dev
设备   类型      状态    连接  
ens38  ethernet  连接的  ens38 
ens39  ethernet  连接的  ens39 
team0  team      连接的  team0 
ens33  ethernet  未托管  --    
lo     loopback  未托管  --  
//将其中一块网卡断掉后测试:
[root@localhost ~]# nmcli dev discon ens39 
成功断开设备 'ens39'。
[root@localhost ~]# teamdctl team0 state
setup:
  runner: activebackup        //高可用模式
ports:
  ens38                     
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens38          //正在使用的是ens38
//把ens39网卡起来,然后查看team0的配置信息
[root@localhost ~]# nmcli dev con ens39
成功用 'ens39' 激活了设备 '3e5af9e6-a9b3-41ea-afeb-2c8180fecf90'。
[root@localhost ~]# teamdctl team0 state
setup:
  runner: activebackup              //使用的是高可用模式
ports:
  ens38
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens39                            //起来了ens39
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens38                //目前用的还是ens38


动态修改team模式


// 导出配置进行修改 (man teamd.conf)
[root@wangqing ~]# teamdctl team0 config dump > /tmp/team.conf
[root@wangqing ~]# vim /tmp/team.conf
{
    "device": "team0",
    "hwaddr": "1A:E1:49:D1:02:AF",
    "mcast_rejoin": {
        "count": 1
    },
    "notify_peers": {
        "count": 1
    },
    "ports": {
        "ens38": {
            "link_watch": {
                "name": "ethtool"
            }
        },
        "ens39": {
            "link_watch": {
                "name": "ethtool"
            }
        }
    },
    "runner": {
        "name": "loadbalance",            //此处将avtivebackup改为loadbalance
        "tx_hash": [
            "eth",
            "ipv4",
            "ipv6"
        ]
    }
}
//以最新修改的配置选项修改team0属性
[root@wyh ~]# nmcli con mod team0 team.config /tmp/team.conf
//修改之后需要重启team0
[root@wyh ~]# nmcli connection down team0;nmcli connection up team0 
[root@wyh ~]# nmcli connection up ens38
[root@wyh ~]# nmcli connection up ens39
[root@localhost ~]# teamdctl team0 stat
setup:
  runner: loadbalance                     //现在使用的是loadbalance负载均衡模式
ports:
  ens38
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens39
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0


桥接网络配置


创建桥接网络br1
[root@wyh ~]# nmcli connection add type bridge con-name br1 ifname br1 ipv4.addresses 192.168.56.222/24 ipv4.method manual
桥接至eth1
[root@wyh ~]# nmcli connection add type bridge-slave con-name br1-prot1 ifname eth1 master br1
//[root@wyh~]# ping -I br1 192.168.56.1
//[root@wyh ~]# brctl show


网络检测工具与故障排查


ping


ping命令的目的在于测试另一台主机是否可达, 如果ping不到某台主机,就说明对方主机已经出现了问题, 但是不排除由于链路中的防火墙、ping被丢弃等原因造成ping不通的情况


//ping命令常用选项:
    -c 指定ping的次数
    -i 指定ping包的发送间隔
    -w 如果ping没有回应, 则在指定超时时间后退出


host与nslookup


host/nslookup命令用于查询DNS记录


[root@localhost ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 119.75.216.20
www.a.shifen.com has address 119.75.213.61
[root@localhost ~]# nslookup www.baidu.com
Server:         172.16.12.2
Address:        172.16.12.2#53
Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 119.75.213.61
Name:   www.a.shifen.com
Address: 119.75.216.20


traceroute


traceroute命令用于路由跟踪, 检测网络故障出现在ISP运营商或是对端服务无法响应


[root@wyh ~]# traceroute www.baidu.com
traceroute to www.baidu.com (119.75.213.61), 30 hops max, 60 byte packets
 1  gateway (192.168.1.1)  1.838 ms  1.749 ms  1.654 ms
 2  49.222.80.1 (49.222.80.1)  2.506 ms  7.196 ms  7.133 ms
 3  * * *
 4  * * *
 5  * * *


netstat


netstat用于查看网络状态


//显示路由表
[root@wyh~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 ens33
172.16.12.0     0.0.0.0         255.255.255.0   U         0 0          0 ens33
//以数字方式显示路由表
[root@wyh ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         172.16.12.2     0.0.0.0         UG        0 0          0 ens33
172.16.12.0     0.0.0.0         255.255.255.0   U         0 0          0 ens33
//显示建立的tcp连接
[root@wyh ~]# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 seancheng:ssh           172.16.12.1:56187       ESTABLISHED
tcp        0      0 seancheng:ssh           172.16.12.1:53808       ESTABLISHED
//显示udp连接
[root@wyh ~]# netstat -u
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
[root@wyh ~]# 
//显示监听状态的连接
[root@wyh ~]# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN
//显示监听指定的套接字的进程的进程号及进程名
[root@wyh ~]# netstat -p
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 seancheng:ssh           172.16.12.1:56187       ESTABLISHED 2094/sshd: root@pts
tcp        0      0 seancheng:ssh           172.16.12.1:53808       ESTABLISHED 1077/sshd: root@pts
//显示所有状态的连接
[root@wyh ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN
tcp        0      0 seancheng:ssh           172.16.12.1:56187       ESTABLISHED
tcp        0      0 seancheng:ssh           172.16.12.1:53808       ESTABLISHED
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN
udp        0      0 0.0.0.0:23511           0.0.0.0:*
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*
udp6       0      0 [::]:35299              [::]:* 
//常用选项
    -antlp
[root@wyh ~]# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      889/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1007/master
tcp        0      0 172.16.12.128:22        172.16.12.1:56187       ESTABLISHED 2094/sshd: root@pts
tcp        0      0 172.16.12.128:22        172.16.12.1:53808       ESTABLISHED 1077/sshd: root@pts
tcp6       0      0 :::22                   :::*                    LISTEN      889/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1007/master


ss


ss是一种网络状态查看工具,取代netstat


//语法:ss [options] [ FILTER ]
//常用的options:
    -t:tcp协议相关
    -u:udp协议相关
    -w:裸套接字相关
    -x:unix套接字相关
    -l:listen状态的连接
    -a:所有
    -n:数字格式
    -p:相关的程序及pid
    -e:扩展的信息
    -m:内存用量
    -o:显示计时器信息
//常见的FILTER:
    FILTER := [ state TCP-STATE ] [ EXPRESSION ]
    如:ss -tan state ESTABLISHED
//常见的state:
    //tcp finite state machine:有限状态机
        LISTEN:监听
        ESTABLISHED:已建立的连接
    //EXPRESSION:
        dport =
        sport =
        示例:'( dport = :ssh or sport = :ssh)',此处的ssh也即服务名可以使用其对应的端口号代替,等号两边必须有空格
//常用组合:
[root@wyh ~]# ss -tan
State      Recv-Q Send-Q                Local Address:Port                               Peer Address:Port
LISTEN     0      128                               *:22                                            *:*
LISTEN     0      100                       127.0.0.1:25                                            *:*
ESTAB      0      0                     172.16.12.128:22                                  172.16.12.1:56187
ESTAB      0      0                     172.16.12.128:22                                  172.16.12.1:53808
LISTEN     0      128                              :::22                                           :::*
LISTEN     0      100                             ::1:25                                           :::* 
[root@wyh ~]# ss -tanl
State      Recv-Q Send-Q                Local Address:Port                               Peer Address:Port
LISTEN     0      128                               *:22                                            *:*
LISTEN     0      100                       127.0.0.1:25                                            *:*
LISTEN     0      128                              :::22                                           :::*
LISTEN     0      100                             ::1:25                                           :::* 
[root@wyh~]# ss -antlp
State      Recv-Q Send-Q                Local Address:Port                               Peer Address:Port
LISTEN     0      128                               *:22                                            *:*                   users:(("sshd",pid=889,fd=3))
LISTEN     0      100                       127.0.0.1:25                                            *:*                   users:(("master",pid=1007,fd=13))
LISTEN     0      128                              :::22                                           :::*                   users:(("sshd",pid=889,fd=4))
LISTEN     0      100                             ::1:25                                           :::*                   users:(("master",pid=1007,fd=14))
[root@wyh ~]# ss -anu
State      Recv-Q Send-Q                Local Address:Port                               Peer Address:Port
UNCONN     0      0                                 *:23511                                         *:*
UNCONN     0      0                                 *:68                                            *:*
UNCONN     0      0                                :::35299                                        :::* 
//常见端口
http    80/tcp 
https   443/tcp 
ssh     22/tcp 
ftp     20,21/tcp
mysql   3306/tcp
rsync   873/rsync
redis   6379/tcp


网络故障排查


  • 网络故障分为硬件/软件故障
  • 网卡损坏
  • 链路故障
  • 网卡驱动不兼容


网络排查思路


  • ping本地回环口, 确定本机TCP/IP协议栈是否正常
  • ping本机IP地址, 确定本地设备以及驱动是否正常
  • ping同网段主机, 确定二层网络是否正常工作
  • ping网关地址, 确定本地与网络是否正常
  • ping公网地址, 确定本地路由是否正常
  • ping公网域名, 确定DNS客户端是否正常


服务故障排查思路


  • 使用telnet检测端口是否开放
  • 检查服务端防火墙以及SElinux
  • 检查相应的权限是否配置正常
  • 检查日志是否有异常
  • 检查完毕后持续测试


建议:

所有的排查思路都从OSI七层模型由下往上逐一进行排查(学会看日志)


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
4月前
|
安全 网络协议 算法
Nmap网络扫描工具详细使用教程
Nmap 是一款强大的网络发现与安全审计工具,具备主机发现、端口扫描、服务识别、操作系统检测及脚本扩展等功能。它支持多种扫描技术,如 SYN 扫描、ARP 扫描和全端口扫描,并可通过内置脚本(NSE)进行漏洞检测与服务深度枚举。Nmap 还提供防火墙规避与流量伪装能力,适用于网络管理、渗透测试和安全研究。
776 1
|
4月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
148 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
5月前
|
Web App开发 API 虚拟化
Cisco Modeling Labs (CML) 2.9.0 - 网络仿真工具
Cisco Modeling Labs (CML) 2.9.0 - 网络仿真工具
421 15
Cisco Modeling Labs (CML) 2.9.0 - 网络仿真工具
|
5月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
367 18
|
5月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
279 5
|
6月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
505 5
|
6月前
|
监控 安全 网络安全
网络安全工具及其使用方法:保护数字安全的第一道防线
在信息时代,网络攻击变得日益复杂且频繁,保护个人和企业数据安全的重要性日益凸显。幸运的是,各种网络安全工具为用户提供了有效的防护手段。从防火墙到密码管理器,这些工具覆盖了威胁检测、攻击防御和数据保护的方方面面。本文将介绍几款常用的网络安全工具,并提供其使用方法,以帮助您构建强大的网络安全防线。
249 1
|
6月前
|
监控 数据可视化 Java
VMware Aria Operations for Networks 6.14 - 网络和应用监控工具
VMware Aria Operations for Networks 6.14 - 网络和应用监控工具
145 0
VMware Aria Operations for Networks 6.14 - 网络和应用监控工具
|
7月前
|
运维 监控 Linux
网络延迟监测工具选择(第一篇)
**WGCLOUD**是一款开源免费的跨平台运维监控工具,支持Windows、Linux、MacOS等系统,具备网络延迟监测功能。其内置的**PING监测**模块可实时ping目标IP,图形化展示延迟趋势,并在目标IP不可达时发送告警通知。支持分组管理,操作简单便捷,适合运维人员高效监控网络状态。
|
6月前
|
网络协议 Linux 开发者
深入Linux中UDP网络通信机制编程探索
以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
180 0