ping
命令用于测试网络连接的连通性和响应时间。它通过向目标主机发送 ICMP 回显请求(echo request)数据包,并等待回显应答(echo reply),来确定目标主机是否可达以及网络的延迟情况。ping
命令在网络故障排除和诊断中非常有用。
ping [选项] 目标主机
常用选项
ping
命令在发送完成后等待的秒数。使用示例
ping google.com
PING google.com (172.217.17.142) 56(84) bytes of data.
64 bytes from sfo03s17-in-f14.1e100.net (172.217.17.142): icmp_seq=1 ttl=54 time=14.8 ms
64 bytes from sfo03s17-in-f14.1e100.net (172.217.17.142): icmp_seq=2 ttl=54 time=14.7 ms
64 bytes from sfo03s17-in-f14.1e100.net (172.217.17.142): icmp_seq=3 ttl=54 time=14.7 ms
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 14.707/14.767/14.814/0.156 ms
解释
ping
命令正在测试到 google.com
的连接。google.com
的 IP 地址是 172.217.17.142
。sfo03s17-in-f14.1e100.net
,IP 地址为 172.217.17.142
。ping
测试的统计信息部分。rtt:往返时间(Round-Trip Time)。 min:最短往返时间为 14.707 毫秒。 avg:平均往返时间为 14.767 毫秒。 max:最长往返时间为 14.814 毫秒。 mdev:往返时间的均方根偏差(mean deviation)为 0.156 毫秒,表示往返时间的波动范围。
ifconfig
命令用于配置和显示网络接口的参数。它可以用于查看网络接口的当前配置、启用或禁用网络接口、配置 IP 地址、子网掩码等。虽然 ifconfig
仍然在很多系统中使用,但在一些现代 Linux 发行版中,它已被 ip
命令取代。
ifconfig [接口] [选项]
常用选项
eth0
、wlan0
)。示例
ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:68:8C:9D
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe68:8c9d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:251482 errors:0 dropped:0 overruns:0 frame:0
TX packets:187514 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:295234209 (295.2 MB) TX bytes:25118490 (25.1 MB)
Interrupt:19 Base address:0x2024
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2200 errors:0 dropped:0 overruns:0 frame:0
TX packets:2200 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:188800 (188.8 KB) TX bytes:188800 (188.8 KB)
解释
eth0
接口
00:0C:29:68:8C:9D
。
192.168.1.10
。
192.168.1.255
。
255.255.255.0
。
1500
字节。
1
。
251482
。
0
。0
。0
。0
。187514
。
0
。0
。0
。0
。0
。
1000
。
295234209
字节(约 295.2 MB
)。
25118490
字节(约 25.1 MB
)。
19
。
0x2024
。
lo
接口(本地回环接口)
127.0.0.1
(回环地址)。
255.0.0.0
。
65536
字节。
1
。
2200
。
0
。0
。0
。0
。2200
。
0
。0
。0
。0
。0
。
1
。
188800
字节(约 188.8 KB
)。
188800
字节(约 188.8 KB
)。
总结
ip
命令是 ifconfig
命令的现代替代品,用于显示和操作 Linux 网络接口。它提供了比 ifconfig
更强大的功能,并且在很多现代 Linux 发行版中推荐使用。ip
命令是 iproute2
软件包的一部分。
ip [选项] 对象 命令
link
、addr
、route
等。show
、add
、del
等。ip link show//查看网络接口
//输出
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:68:8c:9d brd ff:ff:ff:ff:ff:ff
1: lo:这是本地回环接口(lo)。
<LOOPBACK,UP,LOWER_UP>:接口的状态标志,表示它是一个回环接口并且已启用。
mtu 65536:最大传输单元(MTU)为 65536 字节。
link/loopback:表示这是一个回环链路,MAC 地址为 00:00:00:00:00:00。
2: eth0:这是以太网接口(eth0)。
<BROADCAST,MULTICAST,UP,LOWER_UP>:接口的状态标志,表示它支持广播、多播并且已启用。
mtu 1500:最大传输单元(MTU)为 1500 字节。
link/ether:表示这是一个以太网链路,MAC 地址为 00:0c:29:68:8c:9d。
//启用/禁用网络接口
ip link set dev eth0 up
ip link set dev eth0 down
//查看和配置 IP 地址
ip addr show
ip addr add 192.168.1.10/24 dev eth0
ip addr del 192.168.1.10/24 dev eth0
//查看和配置路由
ip route show
ip route add default via 192.168.1.1
ip route del default via 192.168.1.1
//查看和配置邻居表(ARP 表)
ip neigh show
ip neigh add 192.168.1.20 lladdr 00:11:22:33:44:55 dev eth0
ip neigh del 192.168.1.20 dev eth0
netstat
命令用于显示与网络相关的各种信息,如网络连接、路由表、接口统计、伪装连接(masquerade connections)等。它是一个强大的网络诊断和调试工具。
netstat [选项]
常用选项
//显示所有连接和监听端口
netstat -a
//输出
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/apache2
tcp 0 0 192.168.1.10:22 192.168.1.100:50234 ESTABLISHED 5678/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* -
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 12345 6789/systemd /run/systemd/private
//解释
Active Internet connections (servers and established):显示活动的互联网连接(包括服务器和已建立的连接)。
Proto:协议类型(如 TCP 或 UDP)。
Recv-Q:接收队列长度。
Send-Q:发送队列长度。
Local Address:本地地址和端口号。
Foreign Address:远程地址和端口号。
State:连接状态(如 LISTEN、ESTABLISHED)。
PID/Program name:使用该连接的进程 ID 和程序名称(如果使用了 -p 选项)。
Active UNIX domain sockets (servers and established):显示活动的 UNIX 域套接字(包括服务器和已建立的连接)。
Proto:协议类型(如 UNIX)。
RefCnt:引用计数。
Flags:标志(如 ACC 表示套接字正在接受连接)。
Type:套接字类型(如 STREAM)。
State:连接状态(如 LISTENING)。
I-Node:I-Node 编号。
PID/Program name:使用该连接的进程 ID 和程序名称。
Path:套接字路径。
curl
是一个命令行工具,用于从或向服务器传输数据。它支持多种协议,包括 HTTP、HTTPS、FTP、SFTP 等。curl
是网络开发和调试的一个强大工具,适用于下载文件、测试 API 等多种任务。
curl [选项] [URL]
常用选项
//获取网页内容
curl http://example.com
//输出
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
...
</head>
<body>
<div>
<h1>Example Domain</h1>
...
</div>
</body>
</html>
//解释 此命令将 URL http://example.com 的 HTML 内容打印到终端。
//发送 POST 请求
curl -X POST -d "param1=value1¶m2=value2" http://example.com/resource
//输出
{
"status": "success",
"param1": "value1",
"param2": "value2"
}
//解释
此命令向指定 URL 发送一个 POST 请求,包含参数 param1 和 param2,并打印服务器响应的 JSON 数据。
wget
是一个用于从 Web 下载文件的命令行工具。它支持 HTTP、HTTPS 和 FTP 协议,并且可以在网络中断时继续下载。wget
是一个功能强大且灵活的下载工具,适用于脚本化和批量下载任务。
wget [选项] [URL]
常用选项
//下载文件
wget http://example.com/file.zip
//输出示例:
--2024-05-30 08:30:00-- http://example.com/file.zip
Resolving example.com (example.com)... 93.184.216.34
Connecting to example.com (example.com)|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1234567 (1.2M) [application/zip]
Saving to: ‘file.zip’
file.zip 100%[===================>] 1.18M 1.02MB/s in 1.2s
2024-05-30 08:30:02 (1.02 MB/s) - ‘file.zip’ saved [1234567/1234567]
//解释
Resolving example.com:解析域名 example.com。
Connecting to example.com:连接到 example.com 的 IP 地址。
HTTP request sent, awaiting response... 200 OK:发送 HTTP 请求并收到 200 OK 响应。
Length:文件长度和类型。
Saving to:将文件保存为 file.zip。
Progress:下载进度。
Speed:下载速度。
Time:下载所用时间。