1. Ping
Ping命令一般被用来查看目标IP地址和本机之间是否连通。具体做法是发送一个ICMP数据报给目标IP地址,目标IP地址如果接受到了本机发出的数据报,就会发出响应,如果我们能接受到响应,则代表本机和目标地址之间可以顺利通信,例如我们ping一下百度的IP地址(baidu.com)。
Ping命令会持续不断地给目标IP发送ICMP数据报,如果目标主机接收到的了这个数据报,则会发出响应,代表自己接受到了这个数据报。上面的截图中的每一行代表了一个从ICMP响应的信息,包括ICMP响应序号,生存时间和响应时间。
最下面的是统计信息,它告诉我们,一共有13个数据报被传递,全被接收,没有数据报丢失。
2. Telnet
Telnet命令是telnet协议在Linux下的接口,它的作用是远程登录。telnet首先在本机和目标计算机之间建立可靠的字节流,这样,当我们在本机上敲下命令以后,这些命令被送到远程计算机,在远程计算机下执行,最终将结果送回在本机上显示。例如,我们通过telnet远程登录斯坦福大学,向其发送一个HTTP请求,斯坦福大学把HTTP响应返回了回来。
3. netstat
netstat是Linux下基本的网络调试工具,它的主要作用包括:
- 列出所有建立了连接的段扩,不管是TCP还是UDP
- 显示路由表信息
- 列出各个协议的统计信息
- 监听所有的套接字接口
4. ifconfig
ifconfig用来显示或者配置网络信息。
左边这一列代表网卡的名称,如ens38代表以太网网卡,lo代表环回地址,右边的则显示的是网卡的详细信息,flags是网卡的标志集合,如UP代表网卡启动,BROADCAST代表启动广播。下面的行代表网卡的具体信息,如inet表示网卡的IP地址,broadcast代表广播地址,netmask代表子网掩码。最后4行代表这块网卡接收发送数据报的情况。
ifconfig不只能显示网卡信息,还可以修改网卡信息,例如通过该命令可以关闭/开启网卡,修改网卡的地址等。
5.route
route命令主要用来查看和修改路由表,路由表中主要记录目标IP地址,网关,子网掩码等信息,通过route命令可以实现route命令的增删改查。
6.arp
arp命令和route命令类似,但是它操控的是系统中的arp缓存表,arp缓存表可能有一个或者多个,这取决于计算机有多少个网卡。
7.traceroute
traceroute命令和Ping从原理上有一点相似,都是用的ICMP协议。traceroute用来记录本机发出的数据包到达目标IP之前,经过的路由情况。具体的实现原理是通过TTL字段的设置,TTL字段用来记录数据报在被丢弃之前,能过经过的结点数,每经过一个结点,就将TTL减1,当TTL值为0时,路由器会丢弃这个数据报,并返回错误报文。traceroute从本机向目标机器不断发送数据报,将这些数据报的TTL值设置为1~N,这样在本机和目标主机的路由上,每个结点都会发送一个错误报文回来,根据这些错误报文就可以确定具体的路由,以及响应时间等其他信息。
8.host
host是DNS查询命令,可以通过主机名来查询IP地址,或者反过来,根据IP地址来查询主机名。
9.tcpdump
tcpdump用来对网卡上抓获的包进行分析,可以进行抓包,筛选包,逻辑判断等一系列操作。如果不指定的话,它总是获取第一张网卡上流经的包。包的信息包括时间,协议名称,源地址,目标地址,双方端口等。
因为tcpdump命令能抓取相当多的信息,所以还需要和参数配合,才能提取最有用的信息。