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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度。

网络进阶管理



链路聚合


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


网卡的链路聚合方式:


  • 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七层模型由下往上逐一进行排查(学会看日志)


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
存储 Linux Android开发
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。以前很多赛项都是使用vol2.6都可以完成,但是由于操作系统更新,部分系统2.6已经不支持了,如:Win10 等镜像,而Volatility3是支持这些新版本操作系统的。
|
7天前
|
Shell Linux C语言
|
13天前
|
数据挖掘 大数据 Linux
探索Linux中的snice命令:一个虚构但启发性的数据分析工具
`snice`是一个想象中的Linux命令,用于低优先级地从大数据集中抽样数据。它结合`nice`和`sampling`,支持多种抽样策略,如随机和分层。参数包括指定样本数、策略、输入输出文件和进程优先级。示例:`snice -n 1000 -s random -i large_log.txt -o sample_log.txt`。使用时注意资源管理、数据完整性及权限,并与其它工具结合使用。虽然虚构,但体现了Linux工具在数据分析中的潜力。
|
1月前
|
存储 Prometheus 监控
Linux技术工具:bpftrace介绍
Linux技术工具:bpftrace介绍
40 7
|
6天前
|
存储 缓存 安全
systemd-ask-password:Linux中的安全密码获取工具
`systemd-ask-password`是Linux的密码获取工具,安全收集服务或应用所需的密码。它支持TTY和密码代理输入,有隐藏输入、密码缓存功能。参数如`--no-tty`、`--id`、`--timeout`等可定制交互方式。示例包括直接在TTY请求或通过代理。注意事项包括安全环境、权限管理和密码管理。最佳实践涉及定期更新和使用强密码,以及日志审计。
|
1月前
|
监控 算法 Linux
探索Linux中的lz4命令:高效的数据压缩工具
**探索Linux中的LZ4工具:快速数据压缩。LZ4算法提供高速压缩与解压缩,适合实时数据处理。命令行工具如`lz4c`用于文件压缩(`lz4c file.txt compressed.lz4`)和解压缩(`lz4c -d compressed.lz4 decompressed.txt`)。特点是速度快、低内存占用,可选压缩级别。注意命令的实际形式取决于安装的实现,使用前应查阅文档。**
|
1月前
|
Linux 数据处理
Linux中的numfmt命令:数字格式化的强大工具
**numfmt命令在Linux中用于数字格式化,如转换进制、添加千位分隔符、处理字节单位。它支持从文件读取数字并能自定义分隔符、小数位数。例如:`numfmt 12345` 输出12,345(十进制),`numfmt -b 255` 输出11111111(二进制),`numfmt --to=iec 1000000` 输出976.6K(字节单位)。使用时注意选项组合及单位标准。**
|
1月前
|
Linux 数据处理
Linux命令`install`详解:不仅仅是安装工具
`install`命令在Linux中并非仅用于安装软件,而是用于精确复制文件和目录,设置权限及所有权。它能创建目标目录、处理符号链接并保留时间戳。例如,`install -m 644 source.txt /dest`用于复制文件并设置权限,`install -d -m 755 /dest/dir`创建目录。使用时要注意权限设置,避免误操作,并记录命令以备恢复。
|
1月前
|
Linux Shell 数据处理
探索Linux的`infokey`命令:终端键绑定的查询工具
探索Linux的`infokey`命令用于查询终端键绑定。它显示按键如何映射到命令,帮助用户理解终端行为。`infokey`与`ncurses`库配合,提供查询、清除和定制输出的功能。例如,`infokey -d`显示所有键绑定,`infokey -k &quot;\e[11~&quot;`检查F1键绑定。使用前确保安装了`ncurses`库,注意终端兼容性和权限问题。定期检查键绑定,备份配置,阅读文档以优化终端体验。
|
1月前
|
Linux 测试技术 开发者
【Docker项目实战】使用Docker部署instantbox临时Linux系统环境搭建工具
【6月更文挑战第13天】使用Docker部署instantbox临时Linux系统环境搭建工具
49 3