Linux 命令之网络通讯概述
Linux 命令之网络通讯概述
🎯 学习目标
- 理解 Linux 系统中用于网络通信与调试的核心命令及其作用
- 掌握常用网络命令的基本用法,如
ping、ifconfig、ip、netstat、ss、telnet、nc、curl、wget等 - 能在实际场景中使用这些命令进行网络诊断、连接测试、数据传输和性能分析
- 了解不同 Linux 发行版(Ubuntu、CentOS、Euler)在网络工具上的差异及替代方案
🔑 核心重点
| 命令 | 功能 | 常用参数/用途 |
|---|---|---|
ping |
测试网络连通性 | -c 指定次数,-i 设置间隔 |
ifconfig / ip |
查看/配置网络接口 | ip addr show 显示 IP,ip link set up/down 控制网卡状态 |
netstat / ss |
查看网络连接状态 | -tuln 显示监听端口,-p 显示进程信息 |
telnet / nc |
测试 TCP 连接 | telnet host port,nc -zv host port |
curl / wget |
下载文件或发送 HTTP 请求 | curl -I 查看头信息,wget -r 镜像网站 |
traceroute / mtr |
跟踪路由路径 | 分析网络延迟问题 |
arp / arping |
查看 ARP 表项 | 检查局域网设备可达性 |
nslookup / dig |
DNS 查询 | 解析域名、排查 DNS 问题 |
🧠 详细讲解
📌 一、网络通信命令概览
Linux 提供了丰富的命令行工具来支持网络管理、故障排查和数据交互。这些命令可以分为以下几类:
| 类型 | 命令示例 |
|---|---|
| 网络状态查看 | ifconfig, ip, arp, route, netstat, ss |
| 网络连接测试 | ping, telnet, nc, curl, wget |
| DNS 与域名解析 | nslookup, dig |
| 路由追踪与分析 | traceroute, mtr |
| 防火墙与安全控制 | iptables, ufw, firewalld(高级主题) |
📌 二、网络接口与地址管理
✅ ifconfig vs ip
# 查看所有网络接口信息(旧方式)
ifconfig
# 新方式(推荐使用)
ip addr show
📌 差异说明:
| 特性 | ifconfig |
ip |
|---|---|---|
| 是否过时 | 是(仍广泛使用) | 否(现代系统首选) |
| 支持 IPv6 | 有限 | 完整 |
| 更多功能 | 无 | 可设置路由、VLAN、策略等 |
🔧 示例:启用/禁用网卡
sudo ip link set eth0 down
sudo ip link set eth0 up
📌 三、网络连接状态查看
✅ netstat 和 ss
# 查看当前监听的 TCP 端口
netstat -tuln
ss -tuln
📌 差异说明:
| 特性 | netstat |
ss |
|---|---|---|
| 性能 | 较慢 | 更快 |
| 默认是否安装 | Ubuntu 已移除 | 所有发行版都支持 |
| 输出格式 | 传统 | 更简洁 |
🔧 示例:查看与某个端口建立的连接
ss -antp | grep :80
📌 四、网络连通性测试
✅ ping:基础连通性测试
ping -c 5 www.baidu.com
📌 注意事项:
- 若被防火墙屏蔽,可能无响应
- 适合测试本地到远程主机的连通性
✅ telnet / nc:测试 TCP 连接
# 尝试连接 Web 服务
telnet www.example.com 80
# 使用 nc 更轻量
nc -zv www.example.com 80
📌 适用场景:
- 检查服务是否启动
- 验证防火墙是否放行端口
📌 五、HTTP 数据交互
✅ curl:强大的 HTTP 客户端
# 获取网页内容
curl https://example.com
# 查看响应头
curl -I https://example.com
# 发送 POST 请求
curl -X POST -d "name=John" http://api.example.com/user
📌 优势:
- 支持多种协议(HTTP, FTP, SMTP 等)
- 支持认证、代理、上传下载等操作
✅ wget:专注下载任务
# 下载单个文件
wget https://example.com/file.txt
# 镜像整个网站
wget -r https://example.com
📌 适用场景:
- 自动化脚本下载资源
- 备份静态网页内容
📌 六、DNS 查询与解析
✅ nslookup / dig
# 简单查询
nslookup example.com
# 更详细的 DNS 记录查询
dig A example.com
dig MX example.com
📌 适用场景:
- 排查 DNS 解析失败问题
- 检查域名是否正确绑定
📌 七、路由追踪与网络延迟分析
✅ traceroute / mtr
# 查看路由路径
traceroute www.example.com
# 实时动态显示网络路径
mtr www.example.com
📌 适用场景:
- 分析网络丢包、延迟问题
- 判断是本地还是中间节点导致不通
📌 八、ARP 表与局域网通信
✅ arp / arping
# 查看本地 ARP 缓存
arp -a
# 向指定 MAC 地址发送 ARP 请求
arping 192.168.1.1
📌 适用场景:
- 检查局域网设备是否在线
- 防止 ARP 欺骗攻击
📌 九、不同 Linux 发行版行为差异
| 命令 | Ubuntu | CentOS | EulerOS | Alpine |
|---|---|---|---|---|
ifconfig |
需安装 net-tools |
默认安装 | 默认安装 | 需安装 |
netstat |
需安装 net-tools |
默认安装 | 默认安装 | 需安装 |
ip |
默认安装 | 默认安装 | 默认安装 | 默认安装 |
ss |
默认安装 | 默认安装 | 默认安装 | 默认安装 |
nc |
netcat 或 nmap-ncat |
默认安装 | 默认安装 | 需安装 |
mtr |
需安装 mtr-tiny |
需安装 | 需安装 | 需安装 |
🔧 安装建议:
# Ubuntu/Debian
sudo apt install net-tools netcat mtr-tiny
# CentOS/EulerOS
sudo yum install net-tools nmap-ncat mtr
# Alpine
apk add net-tools netcat-openbsd mtr
📌 十、实战项目案例
📂 项目背景:部署一个 Web 应用后发现无法访问
✅ 解决思路与命令组合:
-
检查本机 IP 地址
ip addr show -
确认服务是否监听端口
ss -tulnp | grep :80 -
测试本地能否访问
curl -I localhost -
测试外部能否访问该端口
telnet your-server-ip 80 -
检查防火墙规则
sudo iptables -L -n | grep :80 # 或 sudo ufw status -
从客户端测试网络路径
traceroute your-server-ip mtr your-server-ip
📌 通过这一系列命令,你可以快速定位问题是出在应用本身、服务器配置、防火墙还是网络链路。
📚 总结
通过本章学习,你应该已经掌握:
- Linux 中常用的网络通讯命令及其功能
- 如何使用命令组合完成网络连通性检测、服务状态验证、数据交互等任务
- 不同 Linux 发行版下网络工具的安装方式与行为差异
- 在实际运维、开发、调试过程中如何高效使用这些命令解决问题
💡 提醒:熟练掌握这些网络命令,是成为一名合格 Linux 运维工程师或开发者的关键技能之一。它们不仅帮助你快速排查问题,还能作为自动化脚本的一部分,实现更智能的系统管理。
如果你还想深入了解某条命令(如 curl 的高级用法、tcpdump 抓包分析等),请继续提问 👇

浙公网安备 33010602011771号