网络常用命令
大约 5 分钟
网络常用命令
本文档整理了Linux系统中网络相关的常用命令,按照功能分类,方便学习和查阅。
一、HTTP请求与数据传输
1. curl命令
# 发送GET请求
curl http://example.com
# 发送POST请求
curl -X POST -d "参数1=值1&参数2=值2" http://example.com
# 发送POST请求(JSON格式)
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
# 发送POST请求(带请求头)
curl -X POST -H "Content-Type: application/json" -H "Referer: http://localhost" http://localhost:8080/test/file/import -d '{"param":"20210608"}'
# 下载文件
curl -O http://example.com/file.zip
# 断点续传下载
curl -C - -O http://example.com/file.zip
# 跟随重定向
curl -L http://example.com
# 显示详细请求过程
curl -v http://example.com
# 设置超时时间(秒)
curl --connect-timeout 10 http://example.com2. wget命令
# 下载文件
wget http://example.com/file.zip
# 断点续传下载
wget -c http://example.com/file.zip
# 批量下载
wget -i url_list.txt
# 限制下载速度
wget --limit-rate=200k http://example.com/file.zip
# 后台下载
wget -b http://example.com/file.zip二、网络连通性测试
1. ping命令
# 测试IP连通性
ping 192.168.1.1
# 指定发送包数量
ping -c 4 192.168.1.1
# 指定包间隔时间(秒)
ping -i 2 192.168.1.1
# 指定包大小(字节)
ping -s 1024 192.168.1.1
# 设置超时时间
ping -W 5 192.168.1.12. telnet命令
# 测试TCP端口连通性
telnet 192.168.1.1 80
# Windows下测试端口(出现全黑框表示通的)
telnet 127.0.0.1 3306
# Linux下测试端口(没报连接不上就是通的)
telnet 127.0.0.1 33063. nc命令(netcat)
# 测试TCP端口连通性
nc -zv 192.168.1.1 80
# 监听指定端口
nc -l 8080
# 发送数据到指定端口
echo "数据内容" | nc 192.168.1.1 8080
# 扫描端口范围
nc -zv 192.168.1.1 1-1000三、网络路由跟踪
1. traceroute命令
# 跟踪路由路径(Linux)
traceroute 8.8.8.8
# 指定最大跳数
traceroute -m 30 8.8.8.8
# 指定协议(UDP/TCP/ICMP)
traceroute -T 8.8.8.8
# 设置等待响应时间
traceroute -w 3 8.8.8.82. tracert命令
# 跟踪路由路径(Windows)
tracert 8.8.8.8
# 指定最大跳数
tracert -h 30 8.8.8.8四、网络状态查看
1. netstat命令
# 查看所有网络连接
netstat -a
# 查看TCP连接
netstat -t
# 查看UDP连接
netstat -u
# 查看监听端口
netstat -l
# 查看网络连接详情
netstat -an
# 查看进程PID
netstat -p
# 查看路由表
netstat -r
# 查看网络统计信息
netstat -s
# 查看特定端口占用情况
netstat -tunlp | grep :802. ss命令(替代netstat)
# 查看所有连接
ss -a
# 查看TCP连接
ss -t -a
# 查看UDP连接
ss -u -a
# 查看监听端口
ss -l
# 查看进程信息
ss -p
# 查看特定端口
ss -tulnp | grep :803. lsof命令
# 查看端口占用情况
lsof -i:端口号
# 查看特定端口占用
lsof -i:80
# 查看特定用户打开的网络连接
lsof -u 用户名 -i
# 查看TCP连接
lsof -iTCP
# 查看UDP连接
lsof -iUDP五、网络配置管理
1. 网络接口管理
# 查看网络接口信息
ifconfig
# 查看所有网络接口(包括未启用的)
ifconfig -a
# 启用网络接口
ifup eth0
# 禁用网络接口
ifdown eth0
# 配置IP地址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
# 查看网络接口状态(新版本)
ip addr show
# 启用网络接口(新版本)
ip link set eth0 up
# 禁用网络接口(新版本)
ip link set eth0 down2. 路由管理
# 查看路由表
route -n
# 添加路由
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
# 删除路由
route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
# 查看路由表(新版本)
ip route show
# 添加路由(新版本)
ip route add 192.168.2.0/24 via 192.168.1.1
# 删除路由(新版本)
ip route del 192.168.2.0/24 via 192.168.1.13. DNS配置
# 查看DNS配置
cat /etc/resolv.conf
# 查看域名解析
nslookup domain.com
# 查看域名解析详情
dig domain.com
# 反向解析IP地址
nslookup 8.8.8.8六、网络服务管理
1. 网络服务重启
# 重启网络服务(CentOS/RHEL)
systemctl restart network
# 重启网络服务(Ubuntu/Debian)
systemctl restart networking
# 或者
/etc/init.d/network restart2. 网卡配置
# CentOS网卡开机自启动配置
# 编辑网卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 配置内容示例
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=eef13cf9-886b-476f-a977-50a7299fbe21
DEVICE=eth0
ONBOOT=yes
ZONE=public
# 重启网络服务使配置生效
service network restart七、文件传输命令
1. scp命令
# 本地文件传输到远程服务器
scp 本地文件 用户名@IP地址:远程路径
# 示例
scp /home/wmx/1.mp3 root@114.168.1.81:/home/root/music/001.mp3
# 远程文件传输到本地
scp 用户名@IP地址:远程文件 本地路径
# 传输目录(使用-r参数)
scp -r 本地目录 用户名@IP地址:远程路径
# 指定端口传输
scp -P 端口号 文件 用户名@IP地址:路径
# 保持文件属性
scp -p 文件 用户名@IP地址:路径2. rsync命令
# 同步本地目录到远程
rsync -avz 本地目录/ 用户名@IP地址:远程目录/
# 同步远程目录到本地
rsync -avz 用户名@IP地址:远程目录/ 本地目录/
# 增量同步
rsync -avz --delete 源目录/ 目标目录/
# 排除特定文件
rsync -avz --exclude='*.log' 源目录/ 目标目录/
# 显示同步进度
rsync -avz --progress 源目录/ 目标目录/八、网络抓包分析
1. tcpdump命令
# 抓取指定网卡的数据包
tcpdump -i eth0
# 抓取指定数量的数据包
tcpdump -i eth0 -c 10
# 抓取指定主机的数据包
tcpdump -i eth0 host 192.168.1.1
# 抓取指定端口的数据包
tcpdump -i eth0 port 80
# 抓取指定协议的数据包
tcpdump -i eth0 tcp
# 保存抓包数据到文件
tcpdump -i eth0 -w capture.pcap
# 读取抓包文件
tcpdump -r capture.pcap九、网络性能测试
1. iperf命令
# 启动iperf服务端
iperf -s
# 启动iperf客户端
iperf -c 服务端IP地址
# 指定测试时间(秒)
iperf -c 服务端IP地址 -t 30
# 指定带宽测试
iperf -c 服务端IP地址 -b 100M
# UDP测试
iperf -c 服务端IP地址 -u -b 100M2. 其他性能测试
# 测试磁盘IO性能
dd if=/dev/zero of=test bs=1M count=100
# 测试网络带宽
wget --output-document=/dev/null http://speedtest.tele2.net/100MB.zip