Linux 网络工具命令
本文档介绍 Linux 系统中常用的网络工具命令。
1. 网络连接工具
1.1 curl
# 下载文件
curl http://example.com/file.iso --silent # 静默下载
curl http://example.com/file.iso -o filename.iso # 指定输出文件名
curl http://example.com/file.iso -O # 使用远程文件名
curl http://example.com/file.iso --progress # 显示进度条
# HTTP 请求
curl -X POST http://api.example.com/data # POST 请求
curl -H "Content-Type: application/json" \ # 设置请求头
-d '{"key":"value"}' \
http://api.example.com/data
1.2 wget
# 下载文件
wget http://example.com/file.zip # 基本下载
wget -c http://example.com/file.zip # 断点续传
wget -b http://example.com/file.zip # 后台下载
wget -i urls.txt # 从文件中读取 URL 下载
1.3 telnet
# 连接远程主机
telnet hostname 80 # 连接指定主机和端口
telnet 192.168.1.100 22 # 测试 SSH 端口连通性
2. IP 和路由工具
2.1 ip 命令
# 网络接口操作
ip link show # 显示网络接口信息
ip link set eth0 up # 启用网卡
ip link set eth0 down # 禁用网卡
# IP 地址操作
ip addr show # 显示 IP 地址信息
ip addr add 192.168.1.100/24 dev eth0 # 添加 IP 地址
ip addr del 192.168.1.100/24 dev eth0 # 删除 IP 地址
# 路由操作
ip route show # 显示路由表
ip route add default via 192.168.1.1 # 添加默认网关
ip route del default # 删除默认路由
2.2 ifconfig(传统命令)
# 网络接口配置
ifconfig # 显示所有网络接口
ifconfig eth0 # 显示特定接口信息
ifconfig eth0 192.168.1.100 # 设置 IP 地址
ifconfig eth0 up # 启用接口
ifconfig eth0 down # 禁用接口
2.3 route(传统命令)
# 路由表操作
route -n # 显示路由表
route add default gw 192.168.1.1 # 添加默认网关
route del default # 删除默认路由
route add -net 192.168.2.0/24 gw 192.168.1.1 # 添加静态路由
3. DNS 工具
3.1 host
# DNS 查询
host example.com # 基本 DNS 查询
host -t MX example.com # 查询邮件服务器
host -t NS example.com # 查询域名服务器
3.2 nslookup
# DNS 查询和调试
nslookup example.com # 交互式 DNS 查询
nslookup -type=mx example.com # 查询邮件记录
nslookup -type=ns example.com # 查询域名服务器
nslookup example.com 8.8.8.8 # 使用指定 DNS 服务器查询
3.3 dig
# 详细 DNS 查询
dig example.com # 完整的 DNS 查询信息
dig +short example.com # 简短格式显示结果
dig @8.8.8.8 example.com # 使用指定 DNS 服务器
dig -x 8.8.8.8 # 反向 DNS 查询
4. 网络诊断工具
4.1 ping
# 网络连通性测试
ping example.com # 持续 ping
ping -c 4 example.com # 发送指定次数
ping -i 2 example.com # 设置间隔时间
ping -s 1000 example.com # 设置数据包大小
4.2 traceroute
# 路由跟踪
traceroute example.com # 跟踪路由路径
traceroute -n example.com # 不解析主机名
traceroute -m 30 example.com # 设置最大跳数
4.3 netcat (nc)
# 网络连接测试和数据传输
nc -v -z -w2 192.168.1.100 22 # 端口扫描
nc -l 1234 # 监听端口
nc 192.168.1.100 1234 # 连接到远程主机
nc -l 1234 > received_file # 接收文件
nc 192.168.1.100 1234 < file_to_send # 发送文件
5. 网络监控工具
5.1 netstat
# 网络连接状态
netstat -tulpn # 显示所有监听端口
netstat -an # 显示所有连接
netstat -r # 显示路由表
netstat -i # 显示网络接口统计
5.2 ss(Socket Statistics)
# 套接字统计
ss -tulpn # 显示所有监听端口
ss -s # 显示统计摘要
ss -t state established # 显示已 建立的连接
5.3 iptraf
# 网络流量监控(需要安装)
iptraf-ng # 启动交互式界面
iptraf-ng -i eth0 # 监控特定接口
6. 防火墙工具
6.1 firewall-cmd (firewalld)
# 防火墙管理(CentOS 7+)
firewall-cmd --state # 查看防火墙状态
firewall-cmd --list-all # 查看所有规则
firewall-cmd --add-port=80/tcp --permanent # 开放端口
firewall-cmd --remove-port=80/tcp --permanent # 关闭端口
firewall-cmd --reload # 重载规则
6.2 iptables
# 传统防火墙管理
iptables -L # 列出所有规则
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许访问 80 端口
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT # 允许特定网段访问
iptables -P INPUT DROP # 设置默认策略
注意事项
- 某些命令需要 root 权限
- 修改网络配置前先备份当前配置
- 远程操作时要特别小心,避免断开连接
- 防火墙规则修改要谨慎,避免锁定系统
- 使用 ping 等工具时注意目标主机可能禁止 ICMP
常用软件包安装
# CentOS/RHEL
yum install net-tools # 安装 ifconfig、netstat 等工具
yum install bind-utils # 安装 dig、host、nslookup
yum install traceroute
yum install nmap-ncat # 安装 netcat
# Ubuntu/Debian
apt-get install net-tools
apt-get install dnsutils
apt-get install traceroute
apt-get install netcat