一、ping命令 - 连通性测试
- ping 简介:
ping命令-网工神器,主要用来测试主机之间网络的连通性,基于icmp实现,linux和Windows下运行ping命令有所不同,windows 一般会发出4个请求就结束运行该命令( ping -t 和linux效果差不多);而Linux下不会自动终止,此时需要我们按CTR+C终止或者使用-c参数为ping命令指定发送的请求数目。
- 语法格式: ping【参数】【目标主机】
- 常用参数:
参数 | 含义 |
---|---|
d | 使用Socket的SO_DEBUG功能 |
-c | 指定发送报文的次数 |
-i | 指定收发信息的间隔时间 |
-I | 使用指定的网络接口送出数据包 |
-l | 设置在送出要求信息之前,先行发出的数据包 |
-n | 只输出数值 |
-p | 设置填满数据包的范本样式 |
-q | 不显示指令执行过程 |
-R | 记录路由过程 |
-s | 设置数据包的大小 |
-t | 设置存活数值TTL的大小 |
-v | 详细显示指令的执行过程 |
- 应用实例:
- 检查和百度的连通性(ping 4次,每次间隔四秒并记录路由信息)
ping -c 4 -i 4 -R www.baidu.com
- 利用ping命令获取指定网站的IP地址
ping -c 1 www.baidu.com | grep from | cut -d " " -f 4
二、netstat命令 - 显示网络状态
- netstat命令简介:
Netstat 用于显示与IP 、TCP 、UDP 和ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。 - 常用的参数:
参数 | 含义 |
---|---|
-a | 显示所有的连接 |
-r | 显示内置路由表 |
-l | 显示监听服务器套接字 |
-i | 显示网卡信息 |
-n | 不解析名称(不把端口解析成服务) |
-g | 显示组播信息 |
-t | 显示tcp传输协议的连线状况 |
-u | 显示UDP传输协议的连线状况 |
-s | 显示网络统计 |
-p | 显示正在使用Socket的程序识别码和程序名称 |
3.应用实例
- 显示本机的tcp和udp连接,监听服务端口并显示pid和程序名
netstat -lntup
-统计机器中网络连接各个状态个数
netstat -an | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]} '
-查看连接某服务端口最多的的IP地址
netstat -ant|grep "*"|awk '{print $5}'|awk -F: '{print $1}'|sort -nr|uniq -c
- 查看程序运行的端口
netstat -ap | grep nginx
- 显示核心路由
netstat -rn
三、ip命令-显示与操作路由
- ip命令简介:
ip命令 --网工神器 !!! 用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下功能强大的网络配置工具。 - 语法格式:ip【参数】
- 常用参数:
参数 | 含义 |
---|---|
-s | 输出更详细的信息 |
-f | 强制使用指定的协议族 |
-4 | 指定使用的网络层协议是IPv4协议 |
-6 | 指定使用的网络层协议是IPv6协议 |
-r | 显示主机时,不使用IP地址,而使用主机的域名 |
- 应用实例:
- 显示分配给所有网络接口的地址
ip addr
- 显示网络设备运行状态
ip link list
- 显示内核中的当前邻居表和核心路由表。
ip neigh
ip route
四、ifconfig命令-显示或设置网络设备
- ifconfig命令简介:
用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,需要修改网卡的配置文件
注意:网卡文件在 /etc/sysconfig/network-scripts ,我们将有一期详解网卡编辑
- 语法格式:
ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
- 常用参数:
参数 | 含义 |
---|---|
add<地址> | 设置网络设备IPv6的IP地址 |
del<地址> | 删除网络设备IPv6的IP地址 |
down | 关闭指定的网络设备 |
up | 启动指定的网络设备 |
IP地址 | 指定网络设备的IP地址 |
- 应用实例:
- 显示网络设备信息:
ifconfig
- 用ifconfig修改MAC地址配置IP地址:
ifconfig eth0 down
ifconfig eth0 hw ether 00:16:3e:2e:1c:84
ifconfig eth0 up
ifconfig eth0 172.17.138.121
注意:云端服务器就不要测试改etho网卡信息(如果关闭了etho 重启可以解决ssh连接不上的问题)不要问我为什么知道……
五、ss命令-显示或动套接字
- **ss命令简介:**ss命令用来显示处于活动状态的套接字信息。它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
- 语法格式:ss [参数]
- 常用参数: --太多了
参数 | 含义 |
---|---|
-n | 不解析服务名称,已数字方式显示 |
-a | 显示所有套接字 |
-l | 显示处于监听状态的套接字 |
-o | 显示计时器信息 |
-e | 显示详细的套接字信息 |
-m | 显示套接字的内存使用情况 |
-p | 显示使用套接字的进程 |
-i | 显示内部的TCP信息 |
-s | 显示套接字使用概况 |
-4 | 仅显示ipv4的套接字 |
-6 | 仅显示ipv6的套接字 |
-0 | 显示PACKET套接字 |
-t | 只显示TCP套接字 |
-u | 只显示UDP套接字 |
-d | 只显示DCCP套接字 |
-w | 只显示RAW套接字 |
-x | 只显示 Unix套接字 |
-D | 将原始TCP套接字信息转储到文件 |
- 应用实例:
- 显示TCP套接字:
ss -t -a
-显示套接字使用概况:
ss -s
六、小结
无论同一种功能有多少种实现办法,我们都要有自己最熟悉的一种,能看懂其他的实现办法,这就是我们的目的