当前位置:首页>Linux>Linux 从入门到进阶15:网络命令详解

Linux 从入门到进阶15:网络命令详解

  • 2026-09-10 10:48:09
Linux 从入门到进阶15:网络命令详解

Linux网络命令是运维、开发人员排查网络故障、配置网络参数、监控网络状态的核心工具。本文将分类详解网络信息查看、连通性测试、路由与网关、端口与进程、文件传输等高频命令模块,包含完整语法、常用参数、实操案例和场景说明。

一、网络信息查看命令

该类命令用于查看本机网卡、IP地址、MAC地址、网络连接状态等基础信息,是网络排查的第一步。

1、ip命令

ip 是Linux通用网络管理命令,功能覆盖ifconfig、route、arp等旧命令,功能全面、效率更高。

基本语法

ip [选项] 对象 [操作]
  • 选项 (Options)‌:控制输出的格式或行为(如 -4 仅显示 IPv4,-s 显示统计信息等)。

  • 对象 (Object)‌:指定要管理的网络实体,常用的有 link(网卡硬件)、addr(IP地址)、route(路由)、neigh(ARP邻居)、rule(策略路由)等。

  • 命令 (Command)‌:对对象执行的操作,如 show(查看)、add(添加)、del(删除)、set(设置状态)等。

常用对象及操作详解

1、管理网络接口

link 对象主要处理网卡的物理层和数据链路层属性,如启用/禁用网卡、修改 MAC 地址、MTU等。

‌查看所有网卡状态‌:

ip link show# 简写ip l

‌查看带统计信息的网卡状态‌(包含收发数据包、错误、丢包情况):

ip -s link show# 人性化单位显示ip -s -h link show

‌启用或禁用网卡‌:

# 启用 ens33 网卡ip link set ens33 up# 禁用 ens33 网卡ip link set ens33 down

‌修改 MAC 地址‌(需先禁用网卡):

ip link set dev ens33 downip link set dev ens33 address 00:11:22:33:44:55ip link set dev ens33 up

‌修改 MTU(最大传输单元)‌:

ip link set dev ens33 mtu 9000

2 管理 IP 地址 (ip addr)

addr 对象用于管理网络接口的 IP 地址配置,替代了 ifconfig 的大部分功能。

查看所有 IP 地址信息‌:

ip addr show# 常用简写ip a# 仅查看 IPv4ip -4 a# 仅查看 IPv6ip -6 a

‌查看特定网卡的 IP‌:

ip addr show ens33

‌添加 IP 地址‌:

# 给 ens33 添加 IP 192.168.1.10,子网掩码 /24ip addr add 192.168.1.10/24 dev ens33

‌删除 IP 地址‌:

ip addr del 192.168.1.10/24 dev ens33

‌清空网卡所有 IP‌:

ip addr flush dev ens33

3 管理路由表 (ip route)

route 对象用于查看和操作内核路由表,替代了传统的 route 命令。

 ‌查看路由表‌:

ip route show# 常用简写ip r

‌添加默认网关‌:

# 设置默认网关为 192.168.1.1,通过 ens33 接口ip route add default via 192.168.1.1 dev ens33

‌添加静态路由‌:

# 访问 10.0.0.0/8 网段时,通过网关 192.168.1.1ip route add 10.0.0.0/8 via 192.168.1.1 dev ens33

‌删除路由‌:

ip route del 10.0.0.0/8

删除默认网关

ip route del default

2.hostname 命令

hostname 是 Linux 系统中用于显示或设置系统主机名称(Hostname)的核心命令。主机名是计算机在网络中的唯一标识,类似于人的名字,用于在本地终端提示符中显示以及在网络通信中识别设备。

基本语法

hostname [选项] [新主机名]

1、不带参数‌:直接执行 hostname 将显示当前系统的主机名。

hostnamemy-server

2、设置主机名‌:后面跟上字符串即可临时修改主机名(需 root 权限)。

sudo hostname new-name

示例演示

假设主机名为 web01,域名为 example.com,IP 为 192.168.1.10:

# 显示完整主机名hostnameweb01.example.com# 显示短主机名hostname -sweb01# 显示 FQDNhostname -fweb01.example.com# 显示域名hostname -dexample.com# 显示所有 IP 地址hostname -I192.168.1.10 10.0.0.5

二、网络连通测试命令

1.ping命令

ping 是 Linux 系统中最基础且最常用的网络诊断工具,主要用于测试主机之间的连通性、测量网络延迟以及检查丢包率。

基本语法

ping [选项] 目标主机

‌目标主机‌:可以是 IP 地址(如 8.8.8.8)或域名(如 www.baidu.com)。

常用参数详解

1、控制发包数量(-c)

指定发送多少个数据包后自动停止,避免无限运行。

# 发送 4 个包后停止ping -c 4 8.8.8.8

2、控制发包间隔(-i)

设置每次发送数据包之间的时间间隔(单位:秒)。默认值为 1 秒。

# 每 0.5 秒发送一个包(普通用户最小间隔通常受限制,root用户可设更小)sudo ping -i 0.5 192.168.1.1# 每 3 秒发送一个包ping -i 3 www.baidu.com

3、设置数据包大小 (-s)

指定发送的 ICMP 数据载荷大小(单位:字节)。默认通常为 56 字节(加上 8 字节 ICMP 头,总共 64 字节)。

# 发送载荷为 1000 字节的数据包(总包大小 1008 字节)ping -s 1000 192.168.1.1# 测试 MTU(最大传输单元),以太网标准 MTU 为 1500,扣除 28 字节头部,最大载荷为 1472ping -s 1472 www.baidu.com

4、设置超时时间 (-W)

设置等待每个回复的超时时间(单位:秒)。如果超过该时间未收到回复,则判定该包丢失。

# 如果 2 秒内没收到回复,就判定超时ping -W 2 10.0.0.99

5、指定网卡/源 IP (-I)

在多网卡的服务器上,指定从哪个网络接口或源 IP 发出 ping 包。

# 指定从 eth0 网卡发出ping -I eth0 192.168.1.1# 指定源 IP 为 10.0.0.5ping -I 10.0.0.5 8.8.8.8

2.raceroute 路由追踪命令

在网络故障排查中,ping 只能告诉我们“通不通”和“快不快”,但无法揭示数据包在传输过程中经历了什么。为了解决这个问题,我们需要两位更高级的“侦探”:‌Traceroute‌(路由追踪)和 ‌MTR‌(My Traceroute)。

大多数 Linux 发行版未预装 traceroute,需手动安装:

# Debian/Ubuntusudo apt install traceroute# CentOS/RHEL/Fedorasudo yum install traceroute# 或sudo dnf install traceroute

常用参数与语法

参数

说明

示例

‌(无)‌

默认使用 UDP 协议探测

traceroute www.baidu.com

-n

‌禁用 DNS 解析‌,直接显示 IP,加快输出速度

traceroute -n 8.8.8.8

-I

使用 ‌ICMP Echo‌ 协议探测(类似 ping),适合允许 Ping 的环境

traceroute -I google.com

-T

使用 ‌TCP SYN‌ 协议探测,可绕过部分防火墙限制

traceroute -T -p 443 github.com

-m

设置最大跳数(默认 30)

traceroute -m 15 example.com

-q

设置每跳发送的探测包数量(默认 3)

traceroute -q 5 8.8.8.8

-w

设置等待响应的超时时间(秒)

traceroute -w 2 192.168.1.1

-p

指定目标端口(配合 -T 或 UDP 使用)

traceroute -T -p 80 www.example.com

命令典型输出如下:

 1  192.168.1.1 (192.168.1.1)  0.151 ms  0.094 ms  0.146 ms 2  221.201.88.1 (221.201.88.1)  5.867 ms  7.588 ms  5.178 ms 3  * * * 4  218.25.158.149 (218.25.158.149)  6.546 ms  6.230 ms  8.297 ms

‌列 1‌:跳数(Hop)。

‌列 2‌:路由器的主机名和 IP 地址。

‌列 3-5‌:三次探测的往返时间(RTT,单位毫秒)。

‌* * *‌:表示该跳路由器未响应(可能是防火墙丢弃了 ICMP/UDP 包,或网络拥塞导致超时)。 

3.dig域名解析命令

dig(Domain Information Groper)是 Linux 和 Unix 系统中最强大、最灵活的 DNS 查询工具。它由 BIND 软件包提供,被网络工程师和系统管理员视为 DNS 故障排查的“瑞士军刀”。

基本语法

dig [@server] [domain] [type] [options]
  • @server‌:指定要查询的 DNS 服务器 IP 或域名。如果不指定,则使用系统默认的 DNS(/etc/resolv.conf 中的 nameserver)。

  • ‌domain‌:要查询的域名。

  • ‌type‌:要查询的记录类型(如 A, MX, NS, AAAA, CNAME, TXT, SOA 等)。默认为 A 记录。

  • ‌options‌:以 + 开头的各种控制选项。

输出解读

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 <<>> www.baidu.com;; global options: +cmd +comment +stats;; QUESTION SECTION:;www.baidu.com.                     IN       A;; ANSWER SECTION:www.baidu.com.              1200       IN       CNAME       www.a.shifen.com.www.a.shifen.com.       1200       IN       A       180.101.49.11www.a.shifen.com.       1200       IN       A       180.101.49.12;; AUTHORITY SECTION:shifen.com.              86400       IN       NS       ns1.shifen.com.shifen.com.              86400       IN       NS       ns2.shifen.com.;; ADDITIONAL SECTION:ns1.shifen.com.              86400       IN       A       220.181.57.216;; Query time: 25 msec;; SERVER: 8.8.8.8#53(8.8.8.8);; WHEN: Thu Aug 06 19:54:50 CST 2026;; MSG SIZE  rcvd: 105

各部分含义:

1、‌Header (头部信息)‌:

第一行显示 dig 版本和查询命令。

global options:显示当前生效的全局选项。

2、‌QUESTION SECTION (问题部分)‌:

确认你向 DNS 服务器发送了什么请求。

www.baidu.com. IN A:询问 www.baidu.com 的 IPv4 地址(A 记录)。

3、‌ANSWER SECTION (答案部分)‌:‌核心区域

包含 DNS 服务器返回的具体记录。

www.baidu.com. 1200 IN CNAME www.a.shifen.com.:表示 www.baidu.com 是一个别名,指向 www.a.shifen.com,TTL(缓存时间)为 1200 秒。

www.a.shifen.com. 1200 IN A 180.101.49.11:最终解析出的 IP 地址。

4、‌AUTHORITY SECTION (权威部分)‌:

列出负责该域名的权威 DNS 服务器(NS 记录)。如果答案部分没有直接给出 IP,这里会告诉你可以去问哪些服务器。

5、‌ADDITIONAL SECTION (附加部分)‌:

提供额外有帮助的信息,通常是权威服务器的 IP 地址( glue record),以便客户端可以直接联系它们,无需再次查询。

6、‌Stats (统计信息)‌:

Query time:查询耗时(毫秒)。

SERVER:实际响应请求的 DNS 服务器 IP 和端口。

WHEN:查询时间。

MSG SIZE:接收到的数据包大小。

 三、路由与网关管理命令

1.ip route 命令

ip route 是 Linux 系统中用于查看、添加、删除和修改内核路由表的核心命令。旨在替代传统的 route 和 ifconfig 命令,提供更强大、更灵活的网络管理功能。通过该命令,管理员可以精确控制数据包的转发路径,配置静态路由、默认网关以及策略路由。

基本语法

ip route [操作] [目标网段] [参数]
  • ‌操作‌:show (查看), add (添加), del (删除), change (修改), replace (替换).

  • 目标网段‌:可以是单个 IP、CIDR 格式的子网(如 192.168.1.0/24)或 default(默认路由)。

  • 关键参数‌:

via <网关IP>:指定下一跳网关地址。

dev <接口名>:指定出站网络接口(如 eth0, ens33)。

src <源IP>:指定发送数据包时使用的源 IP 地址。

metric <值>:设置路由度量值,影响路由选择。

table <表ID/名称>:指定操作哪张路由表(用于策略路由)。

常用操作详解

1、查看路由表

ip route show# 或简写为ip r

输出示例:

default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.100 metric 100 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 10.0.0.0/8 via 192.168.1.254 dev eth0 

2、查询特定目标的确切路径

此命令非常实用,它会模拟内核的路由查找过程,告诉你如果发送数据包到目标 IP,系统会选择哪条路由、哪个接口和哪个源 IP。

ip route get 8.8.8.8

输出示例:

8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.100 uid 1000     cache 

四、端口与网络进程命令

1.netstat 命令

netstat是 Linux 和 Windows 系统中用于监控 TCP/IP 网络状态的核心命令行工具。它能够显示活动的网络连接、路由表、接口统计信息以及协议统计数据。

基本语法

netstat [选项] [参数]
  • ‌选项‌:以 - 开头的单字母或组合字母,用于控制输出内容(如协议类型、显示格式等)。

  • ‌参数‌:部分系统支持额外参数,如刷新间隔时间。

核心参数:

-a (all):显示所有连接和监听端口。

-n (numeric):以数字形式显示地址和端口,不进行 DNS 解析(提高速度)。

-t (tcp):仅显示 TCP 连接。

-u (udp):仅显示 UDP 连接。

-l (listening):仅显示处于监听(LISTEN)状态的套接字。

-p (program):显示建立连接的进程 ID (PID) 和程序名称(需要 root/sudo 权限)。

-r (route):显示内核路由表。

-s (statistics):显示网络统计信息(如丢包、错误数)。

-i (interfaces):显示网络接口列表。

-c (continuous):持续输出网络状态(类似 top 命令,需配合时间间隔使用,如 netstat -c 5 每5秒刷新)。

无论在哪种系统下,netstat 的核心输出通常包含以下列:

‌Proto‌:协议类型(tcp, udp, tcp6, udp6)。

‌Local Address‌:本地 IP 地址和端口号。

0.0.0.0:80 或 *:80 表示监听所有接口。

127.0.0.1:3306 表示仅监听本地回环。

‌Foreign Address‌:远程 IP 地址和端口号。

0.0.0.0:* 或 *:* 表示未连接特定远程主机(监听状态)。

‌State‌:连接状态(仅 TCP 有效)。

  • LISTEN:正在监听请求。

  • ESTABLISHED:连接已建立,正在通信。

  • TIME_WAIT:连接已关闭,等待足够时间确保远程接收确认。

  • CLOSE_WAIT:远程已关闭,等待本地应用程序关闭连接。

  • SYN_SENT / SYN_RECV:连接建立过程中的状态。

‌PID/Program name‌ (Linux -p / Windows -o/-b):占用该连接的进程 ID 和名称。

2.lsof 端口进程排查

lsof是 Linux系统中用于列出当前系统打开文件的强大工具。在 Unix设计哲学中,“一切皆文件”,因此网络连接、硬件设备、管道、目录等都被视为文件。lsof 能揭示进程与这些“文件”之间的关联,是排查‌端口占用‌、‌文件被锁‌、‌磁盘空间未释放‌等问题的核心利器。

基本语法

lsof [选项] [文件名/目录名/网络地址]
  • 无参数‌:默认列出所有进程打开的所有文件(输出量极大,通常需配合管道或筛选条件使用)。

  • ‌指定文件/目录‌:列出正在使用该文件或目录的进程。

  • ‌选项‌:用于筛选特定协议、用户、进程ID等。

常用参数详解

参数

含义

示例

-i

‌网络相关‌:列出所有网络连接(TCP/UDP)。

lsof -i

-i :

指定端口号。

lsof -i :80

-i @

指定远程主机。

lsof -i @192.168.1.5

-i

指定协议(tcp/udp)。

lsof -i tcp

-p

指定进程 ID。

lsof -p 1234

-u

指定用户名。

lsof -u root

-c

指定命令名称前缀。

lsof -c nginx

+D 

递归搜索目录下被打开的文件。

lsof +D /var/log

-t

‌精简模式‌:只输出 PID,便于脚本处理。

lsof -t -i :80

-n

‌不解析域名‌:加快显示速度,避免 DNS 延迟。

lsof -n -i

-P

‌不解析端口名‌:显示数字端口而非服务名(如 80 而非 http)。

lsof -P -i

输出结果解读

执行 lsof -i :80 的典型输出:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEnginx     1234 root   6u  IPv4  12345      0t0  TCP *:http (LISTEN)nginx     1235 www    6u  IPv4  12346      0t0  TCP 192.168.1.100:80->10.0.0.5:54321 (ESTABLISHED)

各列含义:

‌COMMAND‌:进程的命令名称。

‌PID‌:进程 ID。

‌USER‌:进程所有者。

‌FD‌:‌文件描述符‌。

cwd:当前工作目录。

rtd:根目录。

txt:程序代码段。

mem:内存映射文件。

0u, 1u, 2u:标准输入、输出、错误。

6u:普通文件描述符,u 表示读写模式(r读, w写)。

‌TYPE‌:文件类型。

nIPv4/IPv6:网络套接字。

nDIR:目录。

nREG:常规文件。

nCHR:字符设备。

nFIFO:命名管道。

‌DEVICE‌:设备号。

‌SIZE/OFF‌:文件大小或偏移量。

‌NODE‌:inode 节点号。

‌NAME‌:文件名、网络地址或状态。

  • 对于网络连接,格式为 本地IP:端口->远程IP:端口 (状态)。

  • 状态包括 LISTEN, ESTABLISHED, TIME_WAIT 等。

五、文件传输与远程连接命令

1.wget命令

wget是 Linux系统中最常用的非交互式网络下载工具。它支持 HTTP、HTTPS 和 FTP 协议,能够在网络不稳定时自动重试和断点续传,甚至可以在用户退出终端后继续在后台运行。由于其无需图形界面即可工作的特性,wget 是服务器环境、脚本自动化和远程管理中的首选下载工具。

基本语法

wget [选项] [URL]
  • ‌URL‌:要下载的文件的完整地址。

  • ‌选项‌:控制下载行为的各种参数。

‌最简单的用法:

wget https://example.com/file.zip

执行上述命令后,文件将下载到当前目录,文件名与 URL 中的文件名一致。

常用参数详解

1、文件保存与控制

参数

含义

示例/说明

-O <文件名>

‌指定输出文件名‌

wget -O mydata.zip https://example.com/data.zip无论 URL 中的文件名是什么,保存为 mydata.zip。注意是大写字母 O。

-P <目录>

‌指定保存目录‌

wget -P /tmp/downloads https://example.com/file.txt文件将保存在 /tmp/downloads/ 目录下。

-nc

‌不覆盖已存在文件‌

--no-clobber如果本地已有同名文件,则跳过下载,避免覆盖重要数据。

-c

‌断点续传‌

--continue如果下载中断,再次运行该命令将从上次中断的位置继续下载,而非重新开始。

 2、网络与重试控制

参数

含义

示例/说明

-t <次数>

‌设置重试次数‌

wget -t 5 https://example.com/file默认重试 20 次。设为 0 表示无限重试,直到成功。

-T <秒>

‌设置超时时间‌

wget -T 10 https://example.com/file连接或读取超时时间为 10 秒。

-w <秒>

‌等待间隔‌

wget -w 5 https://example.com/file每次重试之间等待 5 秒,避免对服务器造成过大压力。

--limit-rate=<速度>

‌限速下载‌

wget --limit-rate=1m https://example.com/bigfile限制下载速度为 1MB/s,节省带宽。

 3、后台与静默模式

参数

含义

示例/说明

-b

‌后台运行‌

wget -b https://example.com/largefile.iso下载进程转入后台,日志默认写入当前目录的wget-log 文件。

-q

‌静默模式‌

wget -q https://example.com/file不输出任何信息,适合脚本中只关心退出码的场景。

-nv

‌非详细模式‌

wget -nv https://example.com/file比默认模式输出更少,但仍显示关键错误信息。

案例 1:下载大文件并支持断点续传

如果网络不稳定,下载一个大文件时中断了,只需再次运行相同的命令(加上 -c):

wget -c https://releases.ubuntu.com/24.04/ubuntu-24.04-desktop-amd64.iso

案例 2:后台下载大型数据集

下载一个巨大的数据集,不想让 SSH 会话阻塞:

wget -b https://example.com/dataset.tar.gz# 查看进度tail -f wget-log

2.curl命令

curl是一个功能强大的命令行数据传输工具,支持 HTTP、HTTPS、FTP、SFTP、SMTP、POP3 等多种网络协议。与专注于文件下载的 wget 不同,curl 更侧重于‌数据交互‌和‌协议调试‌,是开发人员测试 API、运维人员排查网络问题以及自动化脚本中不可或缺的工具。

基本语法

curl [选项] [URL]
  • URL‌:目标资源的地址。

  • 选项‌:控制请求方法、数据内容、头部信息、输出行为等。

‌最简单的用法:

curl https://example.com

默认发起 GET 请求,并将响应内容直接输出到标准输出(终端屏幕)。

常用参数详解

1、请求方法与数据传递

参数

含义

示例/说明

-X <METHOD>

‌指定 HTTP 方法‌

curl -X POST https://api.example.com/login默认为 GET,可指定 POST, PUT, DELETE, PATCH 等。

-d <data>

‌发送 POST 数据‌

curl -X POST -d "username=admin&password=123" https://api.example.com/login默认 Content-Type 为 application/x-www-form-urlencoded。

--data-binary

‌发送二进制数据‌

用于发送非文本数据,防止 curl 去除换行符等处理。

-F <field>=<value>

‌模拟表单上传‌

curl -F "file=@photo.jpg" https://upload.example.com自动设置 Content-Type 为 multipart/form-data,@ 符号表示读取本地文件。

-G

‌强制 GET 请求‌

如果使用了-d 但想将其作为 URL 参数发送,可配合 -G使用。

2、头部设置与用户代理

参数

含义

示例/说明

-H <header>

‌自定义请求头‌

curl -H "Content-Type: application/json" -H "Authorization: Bearer token" https://api.example.com可多次使用以添加多个头部。

-A <agent>

‌设置 User-Agent‌

curl -A "Mozilla/5.0" https://example.com伪装成浏览器,避免被服务器拒绝访问。

-e <referer>

‌设置 Referer‌

curl -e "https://google.com" https://example.com模拟来源页面。

案例 1:测试 RESTful API (POST JSON)

curl -X POST https://api.example.com/users \     -H "Content-Type: application/json" \     -d '{"name": "Alice", "email": "alice@example.com"}' \     -v

-v 帮助查看服务器返回的状态码和头部信息,便于调试。

案例 2:下载文件并支持断点续传

curl -C - -O https://releases.ubuntu.com/24.04/ubuntu-24.04.iso

最新文章

随机文章