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 eth0netstat 命令用于显示与网络相关的各种信息,如网络连接、路由表、接口统计、伪装连接(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:下载所用时间。