Linux网络管理命令

netstat命令(显示本机网络连接、运行端口和路由表等信息)

root@localhost ~]# netstat -tlunp
Active Internet connections (only servers)
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      7186/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      7383/master         
tcp6       0      0 :::22                   :::*                    LISTEN      7186/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      7383/master         
udp        0      0 0.0.0.0:68              0.0.0.0:*                           6899/dhclient       
udp        0      0 127.0.0.1:323           0.0.0.0:*                           6421/chronyd        
udp6       0      0 ::1:323                 :::*                                6421/chronyd  

#各字段释义
Proto:数据包的协议,分为TCP和UDP
Recv-Q:表示收到的数据已经在本地接受缓存,但是还没有被进程取走的数据包数量
Sent-Q:对方没有收到的数据包,或者没有ACK回复的,还在本地缓冲区的数据包数量
Local Address:本地IP:端口,通过端口可以知道本级开启了哪些服务
Foreign Address:远程主机:端口也就是远程那个IP使用哪个端口连接到本机
State:连接状态,主要是已经建立连接(ESTABLISEND)和监听两种状态(LISTEN)
PID/Program name:主要是进程ID和进程命令

[root@localhost ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 192.168.18.212:22       192.168.18.1:52993      ESTABLISHED
tcp        0     52 192.168.18.212:22       192.168.18.1:52909      ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN     
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp6       0      0 ::1:323                 :::*                               
raw6       0      0 :::58                   :::*                    7          
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     SEQPACKET  LISTENING     21520    /run/udev/control
unix  3      [ ]         DGRAM                    8979     /run/systemd/notify
unix  2      [ ]         DGRAM                    8981     /run/systemd/cgroups-agent
unix  2      [ ACC ]     STREAM     LISTENING     35610    /var/run/vmware/guestServicePipe
unix  2      [ ACC ]     STREAM     LISTENING     8999     /run/systemd/journal/stdout
unix  5      [ ]         DGRAM                    9002     /run/systemd/journal/socket

#各字段释义
Proto:协议,一般为unix
RefCnt:连接到此Socket的进程数量
Flags:连接标识
Type:Socket访问类型
State:连接状态,已经建立连接(ESTABLISHED)和监听两种状态(LISTEN)
I-Node:程序文件的Inode号
Path:Socket程序的路径,或者相关数据的输出路径
寻找特定程序运行的端口

[root@localhost ~]# netstat -nltp|grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7186/sshd           
tcp6       0      0 :::22                   :::*                    LISTEN      7186/sshd

列出所有的tcp协议的端口

[root@localhost ~]# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost.localdoma:ssh 192.168.18.1:52993      ESTABLISHED
tcp        0     52 localhost.localdoma:ssh 192.168.18.1:52909      ESTABLISHED

查看本机路由信息

[root@localhost ~]# 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
default         gateway         0.0.0.0         UG        0 0          0 ens33
link-local      0.0.0.0         255.255.0.0     U         0 0          0 ens33
192.168.18.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33
192.168.18.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33

#状态说明
CLOSED:初始(无连接)状态
LISTEN:监听状态,等待远程机器的连接请求
SYN_SEND:在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包
SYN_RECV:在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态。
ESTABLISHED:完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。
FIN_WAIT_1:在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态。
FIN_WAIT_2:在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态。
TIME_WAIT:在TCP四次挥手时,主动关闭端发送ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。
CLOSING:在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却受到了对方的FIN包,此时,进入CLOSING状态。
CLOSE_WAIT:在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。
LAST_ACK:在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。

ss命令

ss命令用于显示socket状态,可以显示packet socket,tcp socket,udp socket,dccp socket等,是一个非常实用、快速、有效的跟踪IP连接和socket的新工具。
它可检测到如下信息:

  • 所有的TCP sockets
  • 所有的UDP sockets
  • 所有的ssh/ftp/https持久连接
  • 所有连接到xshell的本地进程
  • 使用state(如:connected,synchronized,SYN-RECV,SYN-SENT,TIME-WAIT)、地址、端口过滤
  • 所有的state FIN-WAIT-1 TCP socket连接等

常用选项

-ttcp协议的连接
-uudp协议的连接
-l监听状态的连接
-a所有状态的连接
-e显示扩展信息
-m显示套接连接使用的内存信息
-p进程及UDP
-n数字格式显示

查看所有tcp协议的连接

[root@localhost ~]# ss -ta
State      Recv-Q Send-Q      Local Address:Port                       Peer Address:Port                
LISTEN     0      128                     *:ssh                                   *:*                    
LISTEN     0      100             127.0.0.1:smtp                                  *:*                    
ESTAB      0      52         192.168.18.212:ssh                        192.168.18.1:59971                
LISTEN     0      128                    :::ssh                                  :::*                    
LISTEN     0      100                   ::1:smtp                                 :::*    

查看所有协议监听以及列出进程号

[root@localhost ~]# ss -nltup
Netid  State      Recv-Q Send-Q     Local Address:Port                    Peer Address:Port              
udp    UNCONN     0      0                      *:68                                 *:*                   users:(("dhclient",pid=6713,fd=6))
udp    UNCONN     0      0                      *:68                                 *:*                   users:(("dhclient",pid=6722,fd=6))
udp    UNCONN     0      0              127.0.0.1:323                                *:*                   users:(("chronyd",pid=6525,fd=1))
udp    UNCONN     0      0                    ::1:323                               :::*                   users:(("chronyd",pid=6525,fd=2))
tcp    LISTEN     0      128                    *:22                                 *:*                   users:(("sshd",pid=7058,fd=3))
tcp    LISTEN     0      100            127.0.0.1:25                                 *:*                   users:(("master",pid=7172,fd=13))
tcp    LISTEN     0      128                   :::22                                :::*                   users:(("sshd",pid=7058,fd=4))
tcp    LISTEN     0      100                  ::1:25                                :::*                   users:(("master",pid=7172,fd=14))

查看所有基于ssh建立连接的信息

[root@localhost ~]# ss -o state established '( dport = :ssh or sport = :ssh )'
Netid  Recv-Q Send-Q        Local Address:Port                         Peer Address:Port                
tcp    0      52           192.168.18.212:ssh                          192.168.18.1:59971                 timer:(on,243ms,0)

获取当前主机到目的主机所经过的路由(网关)

traceroute命令

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

[root@localhost ~]# traceroute 192.168.18.21
traceroute to 192.168.18.21 (192.168.18.21), 30 hops max, 60 byte packets
 1  192.168.18.21 (192.168.18.21)  0.788 ms !X  0.561 ms !X  0.399 ms !X
[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (103.235.46.39), 30 hops max, 60 byte packets
 1  gateway (192.168.18.2)  0.408 ms  0.432 ms  0.334 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
 ...

以上出现很多*号这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

mtr命令

在Linux中有一个更好的网络连通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是mtr

例:
mtr 104.193.88.123 (www.baidu.com)
在这里插入图片描述
已报告模式显示

[root@localhost ~]# mtr -r 192.168.18.21
Start: Fri Nov 27 10:05:50 2020
HOST: localhost.localdomain       Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 192.168.18.21              0.0%    10    1.2   2.2   0.5  13.0   3.7

wget命令(从网络上下载软件)

wget是一个从网络上自动下载文件的工具。所谓的自动下载是指,CentOS wget可以在用户退出系统的之后在后台执行。wget下载数据的时候使用的协议可以是http,https,ftp三种协议。使用wget命令时的输出信息中可以看到本地下载使用的什么协议。

下载后重命名

[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

下载时,不显示详细信息,即在后台下载。
命令执行后会,下载的详细信息不会显示在终端,会在当前目录下生成一个web-log记录下载的详细信息。

[root@localhost ~]# wget -O yum.repo -b https://mirrors.aliyun.com/repo/Centos-7.repo
继续在后台运行,pid 为 7646。
将把输出写入至 “wget-log”。

下载时,不显示详细信息,同时将下载信息保存到文件中

[root@localhost ~]# wget -o file1  https://mirrors.aliyun.com/repo/Centos-7.repo

wget -c:
重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。

scp命令(不同系统间拷贝)

scp是一个基于SSH的不同Linux系统间相互拷贝文件或目录的工具。scp是有security的文件copy,基于ssh登录,也就是它实际上是使用ssh协议。

[root@localhost ~]# scp file root@192.168.18.21:/tmp/
root@192.168.18.21's password: 
file                                                                        100%    9     7.0KB/s   00:00 

递归复制目录

[root@localhost ~]# scp -r etc root@192.168.18.21:/tmp/
root@192.168.18.21's password: 
passwd                                                                      100% 1311    42.6KB/s   00:00    
passwd.zip                                                                  100%  634    50.1KB/s   00:00  

iproute家族

ip-link
与ifconfig作用一样

[root@localhost ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:af:89:a5 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:af:89:af brd ff:ff:ff:ff:ff:ff

示例1:启动/关闭网卡

[root@localhost ~]# ifconfig ens37 down #关闭网卡ens37
[root@localhost ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:af:89:a5 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:af:89:af brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# ip link set ens37 up #启动网卡ens37
[root@localhost ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:af:89:a5 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:af:89:af brd ff:ff:ff:ff:ff:ff

示例2:修改MAC地址

[root@localhost ~]# ip link set dev ens37 address 00:01:4f:00:15:f1

-s选项出现两次或多次,ip会输出更为详细的错误信息统计。这个命令等于传统的ifconfig ens37

[root@localhost ~]# ip -s -s link ls ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:af:89:af brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    10436      80       0       0       0       0       
    RX errors: length   crc     frame   fifo    missed
               0        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    5152       36       0       0       0       0       
    TX errors: aborted  fifo   window heartbeat transns
               0        0       0       0       4       
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值