Linux系统中常用的网络命令及其基本用法

 更新时间:2026年07月31日 08:56:45   作者:Mortalbreeze  
还在为Linux网络配置发愁,本文带你掌握ipaddr、ping、netstat等核心命令,轻松查看本机IP地址、MAC地址和网络接口状态,无论测试127.0.0.1回环接口还是用nc搭建TCP服务,这里都有详细说明,助你快速排查网络问题,需要的朋友可以参考下

ip addr

基本用法
ip addr
简写
ip a

作用:查看本机所有网络接口(网卡)的 IP 地址、MAC 地址、状态等信息。

ip a
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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:16:3e:3f:84:21 brd ff:ff:ff:ff:ff:ff
    inet 172.24.45.36/18 brd 172.24.63.255 scope global dynamic eth0
       valid_lft 1889049998sec preferred_lft 1889049998sec

lo 和 eth0 表示两个网络接口。

lo :回环接口,也叫 loopback。它的 IP 地址:127.0.0.1 (该 IP 地址被称为本地环回地址

特点:数据不经过网卡

示例:
你的机器:

客户端程序
    |
127.0.0.1
    |
服务端程序

数据直接在内核内部转发

在网络开发中,通常先用 127.0.0.1 IP 地址进行网络通信的测试。

eth0:真实网卡。

IP 地址

inet 172.24.45.36 表示我的机器在局域网中的 IP 地址。

MAC 地址

link/ether 00:16:3e:3f:84:21 表示网卡的物理地址。

补充

ifconfig(老命令) 作用与 ip a 一致

只看 IPv4:
ip -4 addr

只看某个网卡
ip a show eth0

ping

最常用:
ping www.baidu.com

作用:测试目标主机网络是否连通。

ping www.baidu.com
PING www.a.shifen.com (220.181.111.232) 56(84) bytes of data.
64 bytes from 220.181.111.232 (220.181.111.232): icmp_seq=1 ttl=51 time=3.57 ms
64 bytes from 220.181.111.232 (220.181.111.232): icmp_seq=2 ttl=51 time=3.57 ms
64 bytes from 220.181.111.232 (220.181.111.232): icmp_seq=3 ttl=51 time=3.58 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 3.570/3.576/3.584/0.005 ms

time:表示往返时间,即 请求出去 + 响应回来 的时间

Linux 默认 ping 命令是一直发送请求,需要 Ctrl + C 终止。

ping -c 可以指定发送次数

示例:
ping -c 3 www.baidu.com
PING www.a.shifen.com (220.181.111.1) 56(84) bytes of data.
64 bytes from 220.181.111.1 (220.181.111.1): icmp_seq=1 ttl=52 time=3.21 ms
64 bytes from 220.181.111.1 (220.181.111.1): icmp_seq=2 ttl=52 time=3.20 ms
64 bytes from 220.181.111.1 (220.181.111.1): icmp_seq=3 ttl=52 time=3.18 ms

--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 3.182/3.199/3.214/0.066 ms

netstat

基本用法
netstat [选项]

最常用:
netstat -aunp
netstat -atnp
netstat -alnp

功能:查看网络状态

选项:

n: 能显示数字的全部转化为数字

l: 仅列出在 listen 状态的服务

p: 显示建立相关连接的程序名和PID

t: 仅显示 tcp 相关的服务

u: 仅显示 udp 相关的服务

a: 显示本主机所有的服务

netstat -ltnp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      14258/./server      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:45243         0.0.0.0:*               LISTEN      13991/node          
tcp6       0      0 :::3306                 :::*                    LISTEN      - 
netstat -aunp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -                   
udp        0      0 127.0.0.1:323           0.0.0.0:*                           -                   
udp        0      0 0.0.0.0:8080            0.0.0.0:*                           14784/./server      
udp6       0      0 ::1:323                 :::*                                -

补充

watch 命令
功能:定时重复执行一个命令,并实施刷新显示结果

示例:
每隔 1 s执行一次 netstat -ltnp
watch -n 1 netstat -ltnp

从右上角时间的变化,可以看出 watch 会实施刷新显示结果

pidof

功能:通过程序名称,查看进程 PID。在网络中,通常用来服务器的进程 PID 。

ps axj | head -1 && ps axj | grep tcp_server
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
14694 14981 14981 14694 pts/5    14981 S+    1001   0:00 ./tcp_server 8080

pidof tcp_server
14981

补充

杀死服务器的进程
pidof tcp_server | xargs kill -9

telnet

基本用法
telnet IP 端口

功能:telnet 相当于一个最简单的 TCP 客户端,主要用于测试 TCP 服务是否能连接。

Centos 安装:

sudo yum install -y telnet

Ubuntu 安装:

apt yum install -y telnet
连接成功的示例:
telnet 127.0.0.1 8080
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

连接失败的示例:
telnet 127.0.0.1 8080
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet 127.0.0.1 8080
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
^]
telnet> quit

退出 telnet 的操作

Ctrl + ] -> 进入 telnet> 
输入 quit  

nc

理解:nc 是一个万能网络工具,可以充当 TCP/UDP 客户端,也可以充当 TCP/UDP 服务器。

作用:

测试 TCP 连接

测试 UDP 通信

临时启动服务器

临时启动客户端

发送和接收数据

基本用法:
nc [参数] IP 端口
用法:TCP 客户端
示例:Echo TCP 服务器
连接成功并发送消息,服务端并回复消息
nc 127.0.0.1 8080
hello
server say# hello
world
server say# world

连接失败
nc 127.0.0.1 8080
Ncat: Connection refused.
用法: TCP 服务器
示例:让 nc 监听一个 TCP 端口
nc -l 8080
其中 "-l" 表示 listen 监听

服务器
nc -l 8080
hello
pwd

客户端
nc 127.0.0.1 8080
hello
pwd

此时,客户端可以向服务端发消息,服务端也可以向客户端发消息,简单实现了 TCP 双向通信
UDP 测试

启动 UDP 服务:
nc -u -l 8888       
// 这里的 -l 不是监听,它的意思是让 nc 进入等待接收模式 socket() + bind() +  recvfrom() 等待数据

另一个终端: 
nc -u 127.0.0.1 8888

此时客户端可以向服务器发消息,服务器也可以向客户端发消息,实现了 UDP 双向通信

以上就是Linux系统中常用的网络命令及其基本用法的详细内容,更多关于Linux常用的网络命令及用法的资料请关注脚本之家其它相关文章!

相关文章

最新评论