常用网络命令工具*5(Windows/Linux)
搜集一些常用的网络命令工具,以供查阅备忘,命令选项和说明写得并不齐全还请见谅。
推荐访问:
命令速览
Linux和Windows命令存在差异的书写为 Linux command [Windows command]
,没有特殊说明时,命令详解均为Linux环境下的指令,Windows下选项操作以及特性会特别标明。
ping
测试工具双端通信是否正常ip
强化网络工具ifconfig [ipconfig]
检查设备网络配置arp
地址转换协议
traceroute [tracert]
从A主机跟踪到任意B主机之间的路由netstat
显示网络状态nslookup
域名解析查询工具
1. ping
ping 命令用于检测与另一主机之间的网络连接。执行ping
指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
语法
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
常用参数
-c <次数>
设置要求回应的次数(ping -c 4 0.0.0.0
)-i <秒>
指定收发信息的间隔时间,单位秒(ping -i 3 0.0.0.0
)-t <存活数>
指定存活数值TTL的大小
Windows下特性
- Windows Ping默认发包4次,使用
-t
选项持续Ping目标主机 - ping -h直接查看中文说明(不是我偷懒)
2. ip
ip 命令是 Linux 加强版的的网络配置工具,用于代替 ifconfig 命令。所以我们不再着重介绍ifconfig的相关特性。
ip命令非常强大,建议参看Linux ip命令_菜鸟教程或者使用
man ip
深入学习ip命令用法。
ip 语法
ip [ OPTIONS ] OBJECT { COMMAND | help }
常用参数
OBJECT
为常用对象,常用取值包括:
link
:网络设备(查看、修改网卡配置)addr/address
:当前设备上IP或IPv6网络连接配置信息(ip addr
命令替代了ifconfig
的作用)addrlabel
:协议地址选择的标签配置route
:路由表条目(ip route
命令替代了arp
的作用)rule
:路由策略数据库中的规则
OPTIONS
为常用选项,常用取值包括:
-V
:显示命令的版本信息;-s
:输出更详细的信息;-4
:指定使用的网络层协议是IPv4协议;-6
:指定使用的网络层协议是IPv6协议;-0
:输出信息每条记录输出一行,即使内容较多也不换行显示;-r
:显示主机时,不使用IP地址,而使用主机的域名。help
为该命令的帮助信息。
ip 常用方法
除了ip addr
和ip route
这样高频率的查询命令外,ip指令也可用于修改设备网络配置,下面列举一些常用的配置方法。
- 启用或禁用网络接口
ip link set <interface> up
ip link set <interface> down
# <interface>为网卡名称,此命令用于开启或关闭指定网络接口
- 更改接口名称
ip link set <old_interface_name> name <new_interface_name>
- 配置IP地址
# 配置静态IP
ip addr add <ip_address>/<subnet_mask> dev <interface>
#删除IP地址
ip addr del <ip_address>/<subnet_mask> dev <interface>
- 添加默认网关
# 用网关的 IP 地址替换 <gateway_ip>,以设置默认路由。
ip route add default via <gateway_ip>
- 配置路由
# 添加静态路由:用目标网络和下一跳的 IP 地址替换 <destination_network> 和 <next_hop>。
ip route add <destination_network> via <next_hop>
#删除路由
ip route del <destination_network> via <next_hop>
ip addr
输出解读
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:8c:1f:d3 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 10.33.4.109/24 brd 10.33.4.255 scope global dynamic noprefixroute ens33
valid_lft 4813sec preferred_lft 4813sec
inet6 fe80::20c:29ff:fe8c:1fd3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
这段输出是 ip addr
命令的结果,这段输出显示了计算机上两个网络接口的信息:一个是回环接口(lo),另一个是物理网络接口(ens33),并列出了 IP 地址、MAC 地址、状态等相关信息。
-
lo (Loopback):
- 这是回环接口,通常用于本地主机通信。
- IP 地址:127.0.0.1,它是回环地址,用于本地主机通信。
- inet6:IPv6 的回环地址为
::1
。 - MTU(最大传输单元):65536。
- 状态(state):UP 表示接口启用,LOWER_UP 表示链路层也启用。
- 本地链路(link/loopback)的 MAC 地址是全零,因为回环不涉及物理链路。
-
ens33:
- 这是一个物理网络接口,通常用于连接到网络的通信。
- IP 地址:10.33.4.109,这是该接口的 IPv4 地址。
- 子网掩码:/24,表示子网掩码为 255.255.255.0。
- 广播地址:10.33.4.255,这是该子网的广播地址。
- inet6:IPv6 的本地链路地址为
fe80::20c:29ff:fe8c:1fd3/64
。 - MTU:1500。
- 状态:UP 表示接口启用,LOWER_UP 表示链路层也启用。
- MAC 地址:00:0c:29:8c:1f:d3,这是该接口的物理地址。
- altname:enp2s1,可能是接口的备用名称。
Windows ipconfig
的特性
明人不说暗话,拥有ip命令后linux下ifconfig
就没啥价值了,现在很多发行版也不再预装net-tools作为系统网络工具。但windows下ipconfig
命令的使用频率仍然非常高,所以在此简介一些选项:
/all
显示更详细的网络配置信息(相当于ip -s addr
)/?
获取系统命令帮助/flushdns
清除DNS解析程序缓存
3. traceroute [tracert]
traceroute [tracert]
命令用于追踪数据包到目标主机之间的路径信息,它通过发送 ICMP 或 UDP 数据包,以及逐跳递增的 TTL(生存时间)字段来实现这一目标。
语法
traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
常用参数
-f<存活数值>
设置第一个检测数据包的存活数值TTL的大小-i<interface>
使用指定的网络设备送出数据包-m<存活数值>
设置检测数据包的最大存活数值TTL的大小-U
使用UDP发送到特定端口进行跟踪(而不是为每个探测递增端口),默认端口是53-q<请求次数>
设置每跳的探测数据包数。默认值为 3
traceroute baidu.com
输出解读
部分近源ip已做替换处理
$ traceroute baidu.com
traceroute to baidu.com (110.242.68.66), 30 hops max, 60 byte packets
1 ip_a (host_a) 1.123 ms 1.531 ms 1.848 ms
2 ip_b (host_b) 1.197 ms 1.175 ms 1.898 ms
3 * * *
4 * * *
5 ip_c (host_c) 1.603 ms 1.578 ms 1.554 ms
6 ip_d (host_d) 9.265 ms ip_e (host_e) 16.287 ms ip_f (host_f) 10.733 ms
7 * 219.158.23.9 (219.158.23.9) 23.306 ms *
8 110.242.66.170 (110.242.66.170) 31.708 ms 110.242.66.174 (110.242.66.174) 30.076 ms 110.242.66.170 (110.242.66.170) 31.965 ms
9 221.194.45.134 (221.194.45.134) 26.214 ms 221.194.45.130 (221.194.45.130) 34.597 ms 221.194.45.134 (221.194.45.134) 32.256 ms
首先,traceroute 命令发送了 30 个最大跃点数的探测数据包,每个数据包大小为 60 字节。
从用户所在的网络(ip_a)出发,前两个跃点分别是:
- 跃点 1:ip_a,响应时间分别为 1.123 毫秒、1.531 毫秒和 1.848 毫秒。
- 跃点 2:ip_b,响应时间分别为 1.197 毫秒、1.175 毫秒和 1.898 毫秒。
- 从跃点 3 开始,数据包似乎丢失,因为响应时间一直为“*”,这意味着在这些跃点之间可能存在丢包现象。
- 跃点 6 表示经过了一个跃点,响应时间为 9.265 毫秒,然后是两个连续的跃点,分别是ip_e 和 ip_f,响应时间分别为 16.287 毫秒和 10.733 毫秒。
- 跃点 7 表示另一个跃点,响应时间为 23.306 毫秒。然后又是一段空旷的跃点,响应时间为“*”。
- 最后三个跃点分别是:
跃点 8:110.242.66.170,响应时间分别为 31.708 毫秒、30.076 毫秒和 31.965 毫秒。
跃点 9:221.194.45.134,响应时间分别为 26.214 毫秒、34.597 毫秒和 32.256 毫秒。
整个查询过程中,最远端的百度服务器(110.242.68.66)在跃点 8 和跃点 9 之间。
Windows tracert
特性
实话实说,这个我感觉Windows下的tracert
还要好用些,它的输出显示更规整,在抵达目的主机后便停止输出,而linux下tracerout
e要接着显示输出到30跳全部结束,以至于满屏幕的星号。
4. netstat
用于检查和显示计算机网络相关的状态信息。
语法
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
常用参数
-r
显示路由表信息-a
显示所有连线中的Socket-c
持续列出网络状态-t
--tcp 显示TCP传输协议的连线状况-u
--udp 显示UDP传输协议的连线状况-n
直接使用IP地址,而不通过域名服务器-p
--programs 显示正在使用Socket的程序识别码和程序名称-g
--groups 显示多重广播功能群组组员名单-s
显示网络工作信息统计表-l
--listening 显示监控中的服务器的Socket
netstat
与 grep
筛选信息举例
netstat
命令常常与管道符 (|
) 和 grep
命令一起使用,以便筛选和搜索网络信息,特别是在复杂的网络环境中或需要精确查找特定连接或端口时。以下是一些示例:
-
查找特定端口的监听状态:
netstat -tuln | grep 80
显示所有监听状态的TCP端口,然后使用grep
过滤出包含 "80" 的行,从而找到所有监听端口为 80 的连接,通常用于查找 Web 服务器端口。 -
查找特定进程的网络连接:
netstat -tanp | grep "firefox"
显示所有TCP和UDP连接,然后使用grep
过滤出包含 "firefox" 的行,以查找与 Firefox 浏览器关联的网络连接。这对于确定某个特定应用程序的网络活动非常有用。 -
查找特定IP地址的连接:
netstat -tuln | grep "192.168.1.100"
显示所有监听状态的TCP和UDP端口,然后使用grep
过滤出包含 "192.168.1.100" 的行,从而找到与特定IP地址相关的连接。 -
查找特定状态的连接:
netstat -tuln | grep "ESTABLISHED"
显示所有监听状态的TCP和UDP端口,然后使用grep
过滤出包含 "ESTABLISHED" 的行,从而找到所有处于已建立连接状态的连接。 -
查找使用特定协议的连接:
netstat -tuln | grep "UDP"
这将显示所有监听状态的TCP和UDP端口,然后使用grep
过滤出包含 "UDP" 的行,从而找到所有UDP连接。
Windows netstat
特性
-b
显示每个网络连接的关联进程的 PID 和程序名称-e
显示网络接口的统计信息,如数据包的传入和传出数量
5. nslookup
用于查询域名系统 (DNS) 的信息,包括域名解析、IP 地址查找以及反向域名解析。
语法
nslookup [-option] [name | -] [server]
直接输入nslookup
会进入交互模式,即进入nslookup的交互命令行,在交互模式和普通命令模式下使用有些许的区别。
[server] 手动指定DNS服务器。
常见参数
-type=<查询类型>
或-querytype=<查询类型>
指定查询类型,如 A(IP 地址)、MX(邮件服务器记录)、NS(域名服务器记录)等。-server=<DNS 服务器>
:指定要查询的 DNS 服务器。默认情况下,会使用本地 DNS 服务器。-timeout=<超时时间>
:指定查询的超时时间,以秒为单位。-class=<查询类别>
:指定查询的类别,通常为 IN(Internet)
交互模式下可使用set
、exit
等指令:
$ nslookup #进入交互命令行
> set type=txt #设置类型为TXT记录
> example.com #查询域名
> exit #退出交互式命令行