说出你常用的20个linux命令,你还是只会说ls、cat那20个命令吗?3分钟让你发现新大陆

服务器排障常用命令


🍊 博客主页作者主页
🍊 简介:云计算领域优质创作者🏆、在校期间参与众多计算机ICT相关的省赛、国赛,斩获系列荣誉。考取华为资深工程师、红帽工程师、阿里云ACP云计算工程等系列认证。

🍊 关注我简历模板、学习资料、文档下载、技术支持 都可以关注、私信我哦!
让生命像一团热烈燃烧的火,直到死亡才能使它熄灭


1.ifconfig命令

  • inux ifconfig命令用于显示或设置网络设备。

  • ifconfig可设置网络设备的状态,或是显示目前的设置。

# 1. ifconfig 查看IP地址===>(ip add命令)
[root@rivers ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.103  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::313d:5ec5:2360:b413  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:73:a6:4f  txqueuelen 1000  (Ethernet)
        RX packets 72197  bytes 61229101 (58.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 50277  bytes 3210398 (3.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 第一行: # UP 标识网络接口为 启用状态(down关闭状态)
 	    # Broadcast广播
 	    # running 网卡设备以连接
 	    # multicast 支持组播
 	    # mtu 数据最大传输单元

 第二行 : # ip地址、子网掩码、广播地址
 第三行 : # ipv6 地址
 第四行 : #  Ethernet 以太网表示连接类型
 		 # ether 标识为MAC地址
 第五行 : # 接手数据包个数,大小统计信息 
 第六行 : # 异常接收包的个数,如 丢包两、错误等
 第七行 : # 发送数据包个数、大小统计信息
 第八行 : # 发送数据包的个数,如丢包量、错误等
 
 
 ifconfig
#打开(up)或关闭(down)适配器
ifconfig <网络名> <up|down>
[root@rivers ~]# ifconfig ens33 up
[root@rivers ~]# ifconfig ens33 down

#为适配器分配IP地址:
ifconfig <网络名> <ip地址>   重启失效

[root@rivers ~]# ifconfig ens33 192.168.10.103


#为适配器分配第二个IP地址:
ifconfig <网络名:实例数> <ip地址>

2.ping 命令

Linux ping 命令用于检测主机。

执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

# linux 命令参数
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]

# windows 命令参数:
ping (ip地址或主机名) (-t) (-a) (-n count) (-l size) 
	-t不停地向目标主机发送数据; 
	-a 以ip地址格式来显示目标主机的网络地址 ; 	
	-n count 指定要ping多少次,具体次数由count来指定 ; 
	-l size 指定发送到目标主机的数据包的大小。 

ping 
netsh wlan show profile name=BJTX key=clear
[root@rivers ~]# ping www.baidu.com -c 1
PING www.a.shifen.com (39.156.66.14) 56(84) bytes of data.
64 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=1 ttl=128 time=5.28 ms


Usage: ping [-aAbBdDfhLnOqrRUvV64] [-c count] [-i interval] [-I interface]
            [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
            [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
            [-w deadline] [-W timeout] [hop1 ...] destination


[root@rivers ~]# ping www.baidu.com -c 2 -I ens33  -s 100 
PING www.a.shifen.com (39.156.66.14) from 192.168.10.103 ens33: 100(128) bytes of data.
108 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=1 ttl=128 time=5.84 ms
108 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=2 ttl=128 time=6.57 ms


[root@rivers ~]# ping -i 3 -s 1000 -c 1000  www.baidu.com   //间隔3秒 发送1000个包,
PING www.a.shifen.com (110.242.68.3) 100(128) bytes of data.
108 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=1 ttl=128 time=11.1 ms
108 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=2 ttl=128 time=28.8 ms
……

3.arp命令

  • arp命令的英文全拼“Address Resolution Protocol” 。该命令用于操作主机的arp缓存,它可以显示arp缓存中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系。

  • 常用参数:

  • -n 以数字方式显示

  • -i 指定网络接口

  • -d 删除arp记录

显示本机arp缓存中所有记录:
[root@rivers ~]# arp
Address                  HWtype  HWaddress           Flags Mask           Iface
gateway                  ether   00:50:56:ff:3a:57     C                 ens33
192.168.10.1               ether   00:50:56:c0:00:08     C                 ens33


以数字方式显示指定主机arp缓存条目:
[root@rivers ~]# arp -n
Address                  HWtype  HWaddress           Flags Mask           Iface
192.168.10.2               ether   00:50:56:ff:3a:57      C                ens33
192.168.10.1               ether   00:50:56:c0:00:08      C                 ens33

删除接口ens33上的192.168.10.2的arp表中的项:
[root@rivers ~]#  arp -i ens33 -d 192.168.10.2

使用ens33的MAC地址回答eth0上的192.168.10.2的arp请求
[root@rivers ~]# arp -i ens33 -Ds 192.168.10.2 ens33 pub 

4.arping命令

  • arping命令作用是使用arp数据包,通过ping命令检查来测试网络。arping命令能够测试一个ip地址是否是在网络上已经被使用,并能够获取更多设备信息。功能类似于ping。

  • 由于arping命令基于ARP广播机制,

  • 所以arping命令只能测试同一网段或子网的网络主机的连通性

  • ping命令则是基于ICMP协议,是可以路由的,所以使用ping命令可以测试任意网段的主机网络连通性。

  • 常用参数:

  • -D 重复地址检测模式

  • -A 更新邻近主机的ARP缓存

  • -c 指定发送arp 请求个数

  • -l 指定arp请求报文的网络接口

  • -s 指定发送arp请求数据包的源地址

  • -U 更新邻近主机的ARP缓存

测试目标主机的存活状态:
[root@rivers ~]# arping -f 192.168.10.1
ARPING 192.168.10.1 from 192.168.10.102 ens33
Unicast reply from 192.168.10.1 [00:50:56:C0:00:08]  0.689ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

向目标主机发送3次(指定次数)ARP请求报文:
[root@rivers ~]# arping -c 3 192.168.10.1
ARPING 192.168.10.1 from 192.168.10.102 ens33
Unicast reply from 192.168.10.1 [00:50:56:C0:00:08]  0.769ms
Unicast reply from 192.168.10.1 [00:50:56:C0:00:08]  0.648ms
Unicast reply from 192.168.10.1 [00:50:56:C0:00:08]  0.675ms
Sent 3 probes (1 broadcast(s))
Received 3 response(s)

5. telnet 命令

  • telnet命令的功能是用于控制远程设备

  • 执行telnet指令开启终端机阶段作业,并登入远端主机。

  • telnet命令可以帮助你从这台路由器远程登陆到远端开启了telnet服务的设备,包括路由器、交换机、linux服务器等,并且配置当前路由器的telnet服务。

  • 常用参数

  • -d 启动排错模式

  • -l 登录用户名

  • -a 尝试自动登入远端系统

指定登录端口
[root@rivers ~]# telnet 192.168.10.2 19880
Trying 192.168.10.2...

指定登录用户名
[root@rivers ~]# telnet -l admin 192.168.10.2 

7. SSH 命令

  • ssh命令的功能是用于安全的远程连接服务器主机系统,作为openssh套件中的客户端连接工具,ssh命令可以让我们轻松的基于ssh加密协议进行远程主机访问,从而实现对远程服务器的管理工作。

  • 常用参数

  • -1/2 强制是使用ssh 协议 V1、V2 版本

  • -4/6 强制使用ipv4、ipv6地址

  • -A 开启认证代理连接转发功能

  • -a 关闭认证代理连接转发功能

  • -l 指定连接远程服务器的登录用户名

  • -p 指定远程服务器上的端口

使用指定的用户身份登录远程服务器主机系统:
[root@rivers ~]# ssh 192.168.10.2

登录远程服务器主机系统后执行一条命令:

强制使用v1版本的ssh加密协议连接远程服务器主机:

8. route 相关命令

route命令的功能是用于显示与设置路由信息,是Linux系统中常用的静态路由配置工具。要想让两台处在不同子网之间的服务器能够通信,需要有一个跨网段的路由器来连接它们,并用route命令为其设置路由信息,提供软硬件的支撑。

  • 常用参数有:
  • -A 设置地址类型(默认IPV4)
  • -n 以数字形式显示IP地址
  • -net
  • -host
  • add 增加指定的路由记录
  • del 删除指定的路由记录
  • gw 设置默认网关
  • dev 路由记录所表示的网络接口
显示当前路由
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens160
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

添加一条指定的路由信息
[root@localhost ~] route add -net 192.168.10.0 netmask 255.255.255.0 dev ens160

删除一条网络路由
[root@localhost ~]# route del -net 192.168.10.0 netmask 255.255.255.0 dev ens160

增加/删除默认网关
route add/del default gw 192.168.10.1


 获取192.168.10.2 路由
[root@rivers ~]# ip route get 192.168.10.2
192.168.10.2 dev ens33 src 192.168.10.102 
    cache 
[root@rivers ~]# 

 查看路由信息
[root@rivers ~]# ip route show
default via 192.168.10.2 dev ens33 proto static metric 100 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.102 metric 100 



设置永久路由的方法
#  在/etc/rc.local里添加


9. traceroute 命令

  • traceroute命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。

  • traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。

  • 常用参数:

  • -n 不显示主机名

  • -m 设置跳数 设置检测数据包的最大存活数值TTL的大小

  • -q 设置检测包的数量

  • -f <存活数值> 设置第一个检测数据包的存活数值TTL的大小

追踪本地数据包到www.baidu.com的传输路径
[root@rivers ~]# traceroute www.baidu.com

显示IP地址,不查主机名 :
[root@rivers ~]# traceroute www.baidu.com -n -m 1
traceroute to www.baidu.com (39.156.66.14), 1 hops max, 60 byte packets
 1  192.168.10.2  0.088 ms  0.053 ms  0.044 ms


把探测包的个数设置为值100:
[root@rivers ~]# traceroute www.baidu.com -q 100

跳数设置,设置2跳 -m
root@rivers ~]# traceroute www.baidu.com -m 2
traceroute to www.baidu.com (39.156.66.14), 2 hops max, 60 byte packets
 1  gateway (192.168.10.2)  0.109 ms  0.044 ms  0.040 ms
 2  * * *


把对外发探测包的等待响应时间设置为3秒:-w
[root@rivers ~]# traceroute www.baidu.com -q 10 -m 1 -w 3
traceroute to www.baidu.com (39.156.66.18), 1 hops max, 60 byte packets
 1  gateway (192.168.10.2)  0.094 ms  0.091 ms  0.043 ms  0.080 ms  0.040 ms  0.084 ms  0.041 ms  0.040 ms  0.051 ms  0.057 ms


10. tcpdump 命令

  • tcpdump命令的功能是用于监听网络流量,是一款数据嗅探工具,Linux系统中常用的数据抓包软件,能够记录所有经过服务器的数据包信息,需要使用管理员身份执行。

  • tcpdump和ethereal可以用来获取和分析网络通讯活动,他们都是使用libpcap库来捕获网络封包的。

  • 可以使用这些工具来探究网络相关问题。你可以发现TCP/IP重发、窗口大小的缩放、名字解析的问题、网络配置错误等。

  • 常用参数

参数介绍:
-A 以ASCII格式打印出所有分组,并将链路层的头最小化。
-c 在收到指定的数量的分组后,tcpdump就会停止。
-C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size
中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size
的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。
-d 将匹配信息包的代码以人们能够理解的汇编格式给出。
-dd 将匹配信息包的代码以c语言程序段的格式给出。
-ddd 将匹配信息包的代码以十进制的形式给出。
-D 打印出系统中所有可以用tcpdump截包的网络接口。
-e 在输出行打印出数据链路层的头部信息。
-E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。
-f 将外部的Internet地址以数字的形式打印出来。
-F 从指定的文件中读取表达式,忽略命令行中给出的表达式。
-i 指定监听的网络接口。
-l 使标准输出变为缓冲行形式。
-L 列出网络接口的已知数据链路。
-m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。
-M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。
-n 不把网络地址转换成名字。
-N 不输出主机名中的域名部分。例如,link.linux265.com 只输出link。
-t 在输出的每一行不打印时间戳。
-O 不运行分组分组匹配(packet-matching)代码优化程序。
-P 不将网络接口设置成混杂模式。
-q 快速输出。只输出较少的协议信息。
-r 从指定的文件中读取包(这些包一般通过-w选项产生)。
-S 将tcp的序列号以绝对值形式输出,而不是相对值。
-s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。
-t 不在每一行中输出时间戳。
-tt 在每一行中输出非格式化的时间戳。
-ttt 输出本行和前面一行之间的时间差。
-tttt 在每一行中输出由date处理的默认格式的时间戳。
-u 输出未解码的NFS句柄。
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv 输出详细的报文信息。
-w 直接将分组写入文件中,而不是不分析并打印出来。
-x 以16进制数形式显示每一个报文 (去掉链路层报头) . 可以显示较小的完整报文, 否则只显示snaplen个字节.
-xx 以16进制数形式显示每一个报文(包含链路层包头)。
-X 以16进制和ASCII码形式显示每个报文(去掉链路层报头)。
-XX 以16进制和ASCII吗形式显示每个报文(包含链路层报头)。
-y 设置tcpdump 捕获数据链路层协议类型
-Z 使tcpdump 放弃自己的超级权限(如果以root用户启动tcpdump, tcpdump将会有超级用户权限), 并把当前tcpdump的用户ID设置为user, 组ID设置为user首要所属组的ID
01、抓取所有网络包,并在terminal中显示抓取的结果,将包以十六进制的形式显示。
tcpdump 

02、抓取所有的网络包,并存到 result.cap 文件中。
tcpdump -w result.cap

03、抓取所有的经过eth0网卡的网络包,并存到 result.cap 文件中。
tcpdump -i eth0 -w result.cap

04、抓取源地址是192.168.1.100的包,并将结果保存到 result.cap 文件中。
tcpdump src host 192.168.1.100 -w result.cap 

05、抓取地址包含是192.168.1.100的包,并将结果保存到 result.cap 文件中。
tcpdump host 192.168.1.100 -w result.cap 

06、抓取目的地址包含是192.168.1.100的包,并将结果保存到 result.cap 文件中。
tcpdump dest host 192.168.1.100 -w result.cap 

07、抓取主机地址为 192.168.1.100 的数据包
tcpdump -i eth0 -vnn host 192.168.1.100

08、抓取包含192.168.1.0/24网段的数据包
tcpdump -i eth0 -vnn net 192.168.1.0/24

09、抓取网卡eth0上所有包含端口22的数据包
tcpdump -i eth0 -vnn port 22

10、抓取指定协议格式的数据包,协议格式可以是「udp,icmp,arp,ip」中的任何一种,例如以下命令:
tcpdump udp  -i eth0 -vnn

11、抓取经过 eth0 网卡的源 ip 是 192.168.1.100 数据包,src参数表示源。
tcpdump -i eth0 -vnn src host 192.168.1.100

12、抓取经过 eth0 网卡目的 ip 是 192.168.1.100 数据包,dst参数表示目的。
 tcpdump -i eth0 -vnn dst host 192.168.1.100

13、抓取源端口是22的数据包
tcpdump -i eth0 -vnn src port 22

14、抓取源ip是 192.168.1.100 且目的ip端口是22的数据包
tcpdump -i eth0 -vnn src host 192.168.1.100 and dst port 22

15、抓取源ip是192.168.1.100或者包含端口是22的数据包
tcpdump -i eth0 -vnn src host 192.168.1.100 or port 22

16、抓取源ip是192.168.1.100且端口不是22的数据包
tcpdump -i eth0 -vnn src host 192.168.1.100 and not port 22

17、抓取源ip是192.168.1.100且目的端口是22,或源ip是192.168.1.102且目的端口是80的数据包。
tcpdump -i eth0 -vnn ( src host 192.168.1.100 and dst port 22 ) or ( src host 192.168.1.102 and dst port 80 )

18、把抓取的数据包记录存到/tmp/result文件中,当抓取100个数据包后就退出程序。
tcpdump –i eth0 -vnn -w /tmp/result -c 100

19、从/tmp/result记录中读取tcp协议的数据包
tcpdump -i eth0  tcp  -vnn -r /tmp/result

20、想要截获所有192.168.1.100 的主机收到的和发出的所有的数据包:
tcpdump host 192.168.1.100

21、如果想要获取主机192.168.1.100除了和主机192.168.1.101之外所有主机通信的ip包,使用命令:
tcpdump ip host 192.168.1.100 and ! 192.168.1.101

22、如果想要获取主机 192.168.1.100 接收或发出的 telnet 包,使用如下命令:
tcpdump tcp port 23 host 192.168.1.100

#查看http请求的header
tcpdump -s 1024 -l -A -n host 192.168.9.56
tcpdump -s 1024 -l -A src 192.168.9.56 or dst 192.168.9.56
sudo tcpdump -A -s 1492 dst port 80

#本地网络中IP地址为192.168.0.5的主机现在与外界通信的情况
sudo tcpdump -i eth0 src host 192.168.0.5

#查看网卡eth0的http请求的tcp包
tcpdump -i eth0 port http
tcpdump -i eth0 port http or port smtp or port imap or port pop3 -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|userna me:|password:|login:|pass |user '


#查看tcp,upd,icmp非ssh的包
tcpdump -n -v tcp or udp or icmp and not port 22


#查看http请求的request 包
sudo tcpdump -i eth0 port 80 -w -


#过滤http响应的get host头信息
sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E "GET \/.*|Host\: .*"


#DNS查询请求响应包
sudo tcpdump -i en0 'udp port 53'

11. dig 命令

dig命令的全称是“domain information groper”,它是一个用来灵活查询DNS的工具,它会打印出DNS域名服务器的回应,dig命令主要用来从DNS域名服务器查询主机地址信息。

dig命令与nslookup命令功能基本相同,但是dig命令灵活性好、易用、输出清晰。

  • 常用参数
  • @:指定进行域名解析的域名服务器
  • -b:使用指定的本机ip地址向域名服务器发送域名查询请求
  • -x:执行逆向域名查询
  • -t: 指定要查询的DNS数据类型(默认为A)
  • -p:指定域名服务器所使用端口号
  • -4:使用ipv4(默认)
    -6:使用ipv6
  • -h: 显示命令帮助信息
查询对应域名的ip:
[root@rivers ~]# dig www.baidu.com

对目标ip进行反向解析查询:
[root@rivers ~]# dig -x 114.114.114.114


查询目标域名的MX记录:
[root@rivers ~]# dig -t MX www.baidu.com

12.iftop 命令

  • iftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能。
  • 必须以root身份才能运行。
  • 常用参数:
  • -i 指定要监控的网卡
  • -n 直接显示IP, 不进行DNS反解析
默认监控第一块网卡的流量:
[root@rivers ~]# iftop


监控ens33网卡的流量:
[root@rivers ~]# iftop -i ens33

直接显示IP, 不进行DNS反解析:
[root@rivers ~]# iftop -n

13. nload 命令

  • nload默认会分页展示各个网卡的实时流量信息。我们可以通过按键盘上的 ← → 或者 Enter/Tab 键在网卡之间切换。
  • 常用参数:
  • -a 全部数据的刷新时间周期,单位是秒,默认是300s
  • -i 进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s
  • -m 不显示流量图,只显示统计数据
  • -o 出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s
  • -t 显示数据的刷新时间间隔,单位是毫秒,默认500ms
  • -u 设置右边Curr、Avg、Min、Max的数据单位,默认是h自动变的.注意大小写单位不同!
Bit(比特)是存储单元;Byte(字节)是计量单位,查看网络时常用Byte

nload -u h 自动变更单位,Bit/s
[root@rivers ~]#  nload -m -H ens33

nload -u H 自动变更单位,Byte/s

nload -m 不显示流量图 

nload -m -H ens33 不显示流量图,以Byte为单位查看ens33网卡流量情况

nload -t 显示数据的刷新时间间隔,单位是毫秒,设置为1000ms

14. nmap 命令

  • nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。

  • 它的设计目标是快速地扫描大型网络,当然用它扫描单个 主机也没有问题。

  • Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。

  • Nmap还能提供关于目标机的进一步信息,包括反向域名,操作系统猜测,设备类型,和MAC地址。

  • 常用参数:

  • –traceroute 扫描主机端口并跟踪路由

  • -p 扫描指定端口和端口范围

  • -p 使用高级功能进行扫描

  • -sP 对目标主机进行ping扫描

  • -sV 探测服务版本信息

root@rivers ~]# nmap -p 4430 www.baidu.com
-bash: nmap: command not found
[root@rivers ~]# yum -y provides nmap
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
2:nmap-6.40-19.el7.x86_64 : Network exploration tool and security
                          : scanner
Repo        : base


扫描主机并跟踪路由:
[root@rivers ~]# nmap --traceroute www.baidu.com

Starting Nmap 6.40 ( http://nmap.org ) at 2022-11-16 06:18 CST
Stats: 0:00:42 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan


使用-p参数探测80、443端口:
[root@rivers ~]# nmap -p80,443 www.baidu.com

探测服务器的1-10000端口范围:
[root@rivers ~]# nmap -p1,10000 www.baidu.com


使用-A参数进行高级扫描:
[root@rivers ~]# nmap -A www.baidu.com

15.uptime 命令

  • uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。 uptime命令用法十分简单,直接输入uptime即可查看系统负载情况。

  • 常用参数:

  • -p 以漂亮的格式显示机器正常运行的时间

  • -s 系统自开始运行时间,格式为yyyy-mm-dd hh:mm:ss

  • -h 显示帮助信息

以漂亮的格式显示机器正常运行的时间
[root@rivers ~]# uptime -p   
up 2 days, 4 hours, 36 minutes

 显示帮助信息
[root@rivers ~]# uptime -h

Usage:
 uptime [options]

Options:
 -p, --pretty   show uptime in pretty format
 -h, --help     display this help and exit
 -s, --since    system up since
 -V, --version  output version information and exit

For more details see uptime(1).

系统自开始运行时间
[root@rivers ~]# uptime -s
2022-11-15 01:33:07
[root@rivers ~]# uptime -p
up 2 days, 4 hours, 36 minutes

16. netstat 命令

  • netstat命令来自于英文词组”network statistics“的缩写,其功能是用于显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等等。

  • netstat命令不仅应用于Linux系统,而且在Windows XP、Windows 7、Windows 10及Windows 11中均已默认支持,并且可用参数也相同,有经验的运维人员可以直接上手

  • 常用参数

-a 显示所有连线中的Socket
-p 显示正在使用Socket的程序识别码和程序名称
-l 仅列出在监听的服务状态
-t 显示TCP传输协议的连线状况
-u 显示UDP传输协议的连线状况
-i 网卡信息
-r 显示路由表信息
-n 直接使用IP地址,不通过域名服务器

显示系统网络状态中的所有连接信息:
root@rivers ~]# 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   

显示系统网络状态中的UDP连接信息:
[root@rivers ~]# netstat -nu
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 172.19.226.238:68       172.19.239.253:67       ESTABLISHED    
[root@rivers ~]# 


显示系统网络状态中的UDP连接端口号使用信息:
[root@rivers ~]# netstat -apu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address    Foreign Address       State    PID/Program name    
udp        0      0 linuxcool:bootpc _gateway:bootps  ESTABLISHED   1024/NetworkManager 
udp        0      0 localhost:323           0.0.0.0:*               875/chronyd      

显示网卡当前状态信息:
[root@rivers ~]# netstat -i 
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33            1500    74054      0      0 0         34905      0      0      0 BMRU
lo              65536      851      0      0 0           851      0      0      0 LRU
[root@rivers ~]# 


显示网络路由表状态信息:

[root@rivers ~]# 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
192.168.10.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33


找到某个服务所对应的连接信息

[root@rivers ~]# netstat -lantup|grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      9388/sshd           
tcp        0     36 192.168.10.102:22       192.168.10.1:62844      ESTABLISHED 12028/sshd: root@pt 
tcp6       0      0 :::22                   :::*                    LISTEN      9388/sshd           

17.nmtui 命令

  • 通过nmtui提供的GUI界面,可以编辑连接,启动连接,设置主机名

  • 常用参数

Edit a connection      编辑连接

Activate a connection  激活连接

Set system hostname    设置主机名
# 查抄安装包
[root@rivers ~]# yum provides nmtui
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
updates/7/x86_64/filelists_db  |  10 MB     00:00     
1:NetworkManager-tui-1.18.8-1.el7.x86_64 :
     ...: NetworkManager curses-based UI

# 安装nmtui软件
yum install NetworkManager-tui 

# 进入图形界面
 nmtui

Edit a connection      编辑连接
Activate a connection  激活连接
Set system hostname    设置主机名

#修改完后需要手动重启相应的服务

# 重载网卡
[root@rivers ~]# nmcli connection reload ens33   
    
# 启动
[root@rivers ~]# nmcli con up ens33
 

19.nmcli 命令

  • nmcli命令来自于英文词组“NetworkManager command-line”的缩写,其功能是用于基于命令行配置网卡参数。nmcli与nmtui命令工具配置过的参数会直接写入到网卡服务配置文件中,永久生效。

  • Red Hat Enterprise Linux 7 与 CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。

  • 常用参数

-c  监控和管理网络设备的连接
-d  监控和管理网络设备的接口 
  • nmcli 查看命令
 查看所有网络连接
[root@rivers ~]# nmcli connection show
NAME   UUID                                  TYPE      DEVICE 
ens33  c96bc909-188e-ec64-3a96-6a90982b08ad  ethernet  ens33  
[root@rivers ~]# 

查看活动的网络连接
[root@rivers ~]# nmcli connection show -active
NAME   UUID                                  TYPE      DEVICE 
ens33  c96bc909-188e-ec64-3a96-6a90982b08ad  ethernet  ens33  
[root@rivers ~]# 

查看网卡地址信息
[root@rivers ~]# nmcli device show ens33|grep "ADDRESS"
IP4.ADDRESS[1]:                         192.168.10.102/24
IP6.ADDRESS[1]:                         fe80::313d:5ec5:2360:b413/64
[root@rivers ~]# 


 查看指定网卡的详细信息
[root@rivers ~]# nmcli con show ens33
connection.id:                          ens33
connection.uuid:                        c96bc909-188e-ec64-3a96-6a90982b08
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              ens33
connection.autoconnect:                 yes

显示指定网络设备的详细信息
[root@rivers ~]# nmcli device show
GENERAL.DEVICE:                         ens33
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:1A:8B:6F
GENERAL.MTU:                            1500

  • 网络管理

    [root@rivers ~]# nmcli networking
    enabled
    [root@rivers ~]# nmcli networking help
    Usage: nmcli networking { COMMAND | help }
    
    COMMAND := { [ on | off | connectivity ] }
    
      on  
    
      off
    
      connectivity [check]
    
    [root@rivers ~]# nmcli networking on   # 启用网络
    [root@rivers ~]# nmcli networking off  # 关闭网络
    
    
  • nmcli 修改命令

# 启用网络连接
[root@rivers ~]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)



# 停用网络连接(可以被自动激活)
[root@rivers ~]#nmcli con down ens33

# 禁用网卡,防止自动被激活
[root@rivers ~]#nmcli device disconnect ens33

# 删除网络连接的配置文件
[root@rivers ~]#nmcli con delete ens33

# 重新加载网络配置文件
[root@rivers ~]# nmcli connection reload ens33
[root@rivers ~]# 
  • 新增网卡配置文件
    使用 add 命令会在 /etc/sysconfig/network-scripts中生成以为 ifcfg开头加add指定的 con-name 名称命名,此文件皆由 nmcli命令进行动态配置
    
    # 如果手动修改 ifcfg文件,重启NetworkManager是无法生效,还需要在执行 nmcli con up才行
    
    # 因此不建议手动修改配置文件,一切修改都使用nmcli命令,修改后执行 nmcli con up 立即生效
    
    
    # 动态获取IP方式的网络连接配置:
    nmcli con add con-name dynamic ifname ens36 type ethernet 
    
    #启用动态配置文件
    nmcli con up  dynamic
    
    
  • 修改配置文件

    nmcli connection modify Con-Name [+|-]setting.propertyvalue
    
    setting.property:
    
    ipv4.method (manual | auto)
    ipv4.addresse
    ipv4.gateway
    ipv4.dns1
    
    # 设置网卡自启动,实际修改的是网卡配置文件 ONBOOT=yes
    nmcli con mod CON-NAME connection.autoconnect yes
    
    # 修改IP地址是静态(manual)还是dhcp动态(auto)
    # 实际修改的是网卡配置文件BOOTPROTO,BOOTPROTO=none 表示静态;BOOTPROTO=dhcp 表示动态
    nmcli con mod CON-NAME ipv4.method manual(static) | auto
    
    # 修改IP配置及网关
    nmcli con mod CON-NAME ipv4.addresses “10.10.10.10/24 10.10.10.1”
    
    # 修改默认网关
    nmcli con mod CON-NAME ipv4.gateway 10.10.10.1
    
    # 添加第二个IP地址
    nmcli con mod CON-NAME +ipv4.addresses 10.10.10.10/16
    
    # 删除第二个IP地址
    nmcli con mod CON-NAME -ipv4.addresses 10.10.10.10/16
    
    # 添加dns1
    nmcli con mod CON-NAME ipv4.dns 114.114.114.114
    
    # 添加dns2
    nmcli con mod CON-NAME +ipv4.dns  8.8.8.8
    
    
    #修改配置文件
    nmcli con mod      			# ifcfg-* 文件
    
    # IP获取方式
    ipv4.method manual|static   # BOOTPROTO=none
    ipv4.method auto     		# BOOTPROTO=dhcp
    
    # 连接名称
    connection.id eth0     		# NAME=eth0
    
    #IP地址信息
    ipv4.addresses      
    “192.0.2.1/24      			# IPADDR0=192.0.2.1 PREFIX0=24
    192.0.2.254”      			# GATEWAY0=192.0.2.254
    
    # dns
    ipv4.dns 8.8.8.8     		# DNS0=8.8.8.8
    
    # dns搜索域
    ipv4.dns-search example.com  # DOMAIN=example.com
    
    ipv4.ignore-auto-dns true    # PEERDNS=no
    connection.autoconnect yes   # ONBOOT=yes
    connection.interface-name eth0  # DEVICE=eth0
    802-3-ethernet.mac-address... 	# HWADDR=...
    

20.ethtool命令

  • 显示某个网络适配器的驱动信息,适用于查询软件兼容性的情况

  • ethtool命令用于查询ethX网口基本设置、及设置网卡的参数

  • 常用参数

-i 显示网卡驱动的信息
-E 修改网卡只读存储器字节
-K 修改网卡 Offload 的状态
-s 修改网卡的部分配置
-t 让网卡执行自我检测

ethtool -i eth0
显示网络数据:
ethtool -S
设置适配器连接速度(Mbps)
ethtool speed <10|100|1000>

设置网口工作方式
ethtool -s eth0 autoneg off speed 100 duplex full 

总结

很多从机构刚出来的小伙伴在面试的时候被问到说出你常用的20个linux命令,通过命令的使用检验是否有实际工作经验。所以通过面试很容易发现问题。那么今天就分享几个运维、排障高效的几个linux命令。
创作不易、感谢您的支持与陪伴,点个赞、一键3连是老铁

在这里插入图片描述

  • 14
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宝山的博客

谢谢你的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值