一:netstat命令
网络配置信息除了IP地址以外,还有网络连接、路由信息等,关于这类信息可以使用netstat命令查看。netsatat命令可以显示网络接口状态、网络连接、路由表和套接字等信息。
格式:netstat [选项]
netstat命令的选像如下表所示:
选项 | 命令 |
-a | 显示所有的协议,包括嵌套字 |
-e | 显示更详细的信息 |
-l | 列出处于监听状态的套接字 |
-r | 显示路由表信息 |
-s | 显示每个协议的统计信息 |
-t | 显示所有的TCP协议的套接字 |
-u | 显示所有UDP协议的套接字 |
-n | 显示IP地址,不解析主机、端口和用户名等 |
-g | 显示有关组的组播信息 |
-i | 列出所有的网络接口 |
-x | 显示UNIX套接字 |
不指定任何选项直接执行netstat命令,会显示除了TCP端口的LISTEN(等待)和UNIX套接字状态以外的ESTABLISHED(连接建立)之类的状态信息。使用netstat命令显示如下图所示:
从上图的执行结果可以看出netstat命令的输出分为TCP/IP网络部分和UNIX套接字部分。其中TCP/IP网络部分部分字段说明如下表所示:
选项 | 说明 |
Proto | 套接字使用的协议,主要是TCP/UDP协议 |
Recv-Q | 不是由程序连接而产生的数据字节数 |
Send-Q | 从远程主机床来的数据字节数 |
Local Address | 本地端的IP地址和端口号等,通过名称解析将其转换为主机名和服务名显示 |
Foreign Address | 远程主机的IP地址与端口 |
State | 套接字的状态。ESTABLISHED为建立连接,LISTEN为等状态CLOSE_WAIT为等带套接字由远程关闭 |
使用netstat命令一般是检验本机各端口的网络端口的网络连接状态,它在内核中访问网络和相关程序。利用netstat命令可以了解Linux系统中的整体网络情况。
二:ping命令
它是常用的网络测试命令。它可以用于测试主机之间的连通性,执行该命令会向目标主机发送ICMP数据包。如果可以接收到响应,表示网络在物理连接上是连通的,否则可能会出现物理障碍。ICMP协议用于在数据传输过程中测试网络的连通性,ping命令将ICMP数据包发送到另一台主机,通过其他主机响应的数据包检查连接性。
格式:ping [目标] 目标主机
目标主机可以是IP地址,也可以是域名。ping命令常用的选项有两个,如下表所示:
选项 | 说明 |
-c | 指定要发送的数据包的数量 |
-i | 指定传输间距,以秒为单位,默认为1秒 |
执行ping命令检查主机通信,如下图所示。不指定任何选项的情况下ping主机的IP地址,默认情况下,数据包传输将持续到CTRL + C结束。对主机执行ping命令后,发送三个数据包,接收3个数据包,丢失0个数据包。指定-c 表示仅仅发送一个数据包,如果ping不知名的主机IP地址,会丢失100%数据包丢失。
如果在ping主机时,发现网络出现故障,显示网络100%数据包丢失,常见的几种原因分别是IP地址设置失败、默认网关设置不完整、物理网络故障或者不能进行名称解析。可以根据一些思路去寻找解决办法。
三:nmap命令
这个命令是LInux系统网络扫描和嗅探工具包,可以检查网络主机开放的端口并显示其状态,这个命令的格式如下:
nmap [选项] 主机名或IP地址
如果你想在你的Linux系统中没有安装这个软件包,CentOS和Ubuntu安装方式如下:
CentOS:yum install nmap
Ubuntu:apt install nmap
nmap命令的常见选项及其说明如下表所示
选项 | 说明 |
-sT | TCP端口扫描 |
-sU | UDP端口扫描,需要root权限 |
-p | 指定检查的端口范围 |
-O | 执行操作系统检测 |
执行nmap命令显示端口状态,如下图所示,指定IP地址表示扫描指定IP地址的端口,显示打开了25、110、135等端口。通过指定-sU和-P检查指定端口的状态,执行结果中显示50端口和112号端口的状态为closed。
nmap命令是网络安全测试中常用到的强大扫描工具,扫描器是一种可以自动检测关于主机安全漏洞的程序,它可以发送特殊的数据包来收集目标主机的各种信息。在各种扫描中,功能最强大的就是nmap了
五:arp命令
这个命令用于显示ARP缓存中的信息并进行编辑。arp通过广播的方式查询与指定IP地址对应的MAC地址,主机通过返回MAC地址解析该地址IP,并得到IP地址与MAC地址之间的映射。
格式:arp [选项]
arp的选项及其说明如下表所示:
选项 | 说明 |
-n | 以地址IP的形式显示 |
-v | 显示详细信息 |
-a | 显示指定主机名或IP地址的缓存信息,如果未指定则显示所有缓存信息 |
-d | 删除指定主机名或IP地址的缓存信息 |
-f | 从指定文件中读取文件名和MAC信息 |
-s | 添加一个缓存信息,指定IP地址和MAC地址之间的映射 |
执行arp命令显示缓存中所有的信息,指定-d选项删除指定IP缓存信息,如下图所示:
arp命令用于在RedHat、Ubuntu、CentOS、OpenSUSE等Linux发行版本中来管理系统的arp缓冲区。
六:ifconfig命令
这个命令与Windows中的ipconfig命令很相似。ifconfig命令用于配置网络或显示当前网络的接口状态,必须以root身份执行。
ifconfig [选项] [网络接口] [子命令]
Ifconfig的常用选项及其说明如下表所示:
选项 | 说明 |
-a | 显示所有的网络接口信息 |
-s | 仅显示每个接口的摘要数据 |
-v | 返回接口错误信息,用于处理故障 |
Linux中的网络接口类似于enp0s1(第一块网卡)、enp0s2(第二块网卡)和IO(回环接口)等。如果不指定网络接口,就会显示u系统中所有的网卡信息。ifconfig命令的子命令及其说明如下表所示:
子命令 | 说明 |
up | 激活网络接口 |
down | 使指定的网络接口无效 |
netmask | 为网络接口指定子网掩码 |
addr | 为网络接口指定IP地址 |
broadcast | 为指定的接口设置广播地址 |
执行ifconfig命令显示当前系统所有的网络接口信息,如下图所示。enp0s3中UP表示网卡开启,RUNNING表示处于连接状态。
使用这个命令配置的网卡信息,重启后就不存在了。如果想要长期保存配置信息,需要修改网卡的配置文件。只要设置到长期有效的配置,都需要在配置文件中设置。
七:tcpdump命令
这个命令通过将其转换存储到标准输出来监视流量,通过选项指定主机名和协议显示相关的数据。
格式:tcpdump [选项]
在Ubuntu和CentOS中的安装命令如下:
apt install tcpdump
yum install tcpdump
它的常用选项及其说明如下表所示:
选项 | 说明 |
-n | 将每个监听到的数据包中的域名转换为IP地址显示 |
-nn | 以数字形式显示地址和端口号,无须转换 |
-v | 输出详细信息 |
-e | 显示数据链路层协议的头部信息 |
-c | 收到指定数量的数据包后停止 |
-i | 监视指定的网络接口 |
-l | 使标准输出变成缓冲行形式 |
使用tcpdump命令指定主机IP地址,获取主机收到和发送的所有数据包监视网络数据流量,如下图所示: