springboot基于Java web的电影院选票系统
2025/12/30 14:06:20
物理层/链路层: ethtool, mii-tool, ip link 网络层: ping, traceroute, mtr, ip route 传输层: netstat, ss, nc, telnet, iperf3 应用层: curl, wget, dig, nslookup 全流量分析: tcpdump, wireshark, tshark 综合诊断: nethogs, iftop, nload, bmon核心场景: 快速检查主机是否可达、网络延迟和丢包率
# 基本用法ping-c48.8.8.8# 发送4个包后停止ping-i0.5google.com# 设置发包间隔0.5秒ping-s1472192.168.1.1# 设置数据包大小(测试MTU)# 进阶诊断ping-f192.168.1.1# 洪水ping(需root权限)ping-R8.8.8.8# 记录路由(Route Recording)ping-Q64-c10target.com# 设置TOS为低延迟(0x40)# 持续监控并记录ping-i60-O target.com|teeping_monitor.log核心场景: 诊断网络路径、识别故障节点
# traceroute基本用法traceroute-n google.com# 不解析主机名(更快)traceroute-T -p443target.com# TCP模式追踪(模拟HTTPS)traceroute-I target.com# ICMP模式traceroute-w2target.com# 设置等待时间2秒# mtr(更强大的持续追踪)mtr-n -r -c100google.com>mtr_report.txt# 生成报告mtr--tcp --port=80target.com# TCP模式mtr-i0.5-r -c508.8.8.8# 每0.5秒发包,共50次核心场景: 查看socket连接、端口监听、连接状态统计
# 基本查看ss -tunap# 显示所有TCP/UDP连接和进程ss -tlpn# 只显示监听端口ss -s# 统计信息(总连接数、状态分布)# 高级过滤ss -t src192.168.1.100# 源IP过滤ss -t dst :443# 目标端口过滤ss -t state established# 只显示已建立连接ss -t state time-wait# 查看TIME-WAIT状态连接ss -o state fin-wait-1'( sport = :80 )'# 复杂条件查询# 连接数统计(按状态)ss -tan|awk'{print $1}'|sort|uniq-c# 常用命令netstat-tulnp# 查看监听端口netstat-tan# 查看所有TCP连接netstat-s# 显示协议统计信息netstat-i# 显示网络接口统计netstat-rn# 显示路由表核心场景: 实时抓包分析、故障排查、安全审计
# 基础抓包tcpdump -i eth0# 监听指定接口tcpdump -i any# 监听所有接口tcpdump -c100-w dump.pcap# 抓100个包保存到文件# 高级过滤表达式tcpdump -i eth0'port 80'# 特定端口tcpdump -i eth0'src 192.168.1.1 and dst port 443'# 源IP和目标端口tcpdump -i eth0'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0'# 抓SYN/FIN包tcpdump -i eth0'icmp[icmptype] != icmp-echo'# 非ping的ICMP包# HTTP分析tcpdump -i eth0 -A'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'# 性能优化tcpdump -i eth0 -B4096-s96port53# 增大缓冲区,限制包大小# 类似tcpdump但更强大tshark -i eth0 -f"tcp port 80"-Y"http.request"# 过滤HTTP请求tshark -r capture.pcap -T fields -e ip.src -e http.host# 提取字段tshark -z io,phs# 协议分层统计核心场景: 测量TCP/UDP带宽性能、抖动、丢包
# 服务器端iperf3 -s -p5201# 启动服务器# 客户端测试iperf3 -c server_ip -t30# TCP测试30秒iperf3 -c server_ip -u -b 100M# UDP测试100Mbpsiperf3 -c server_ip -R# 反向测试(服务器发到客户端)iperf3 -c server_ip -P4# 4个并行连接iperf3 -c server_ip --bidir# 双向同时测试# 高级选项iperf3 -c server_ip -w 2M# 设置TCP窗口2MBiperf3 -c server_ip -Z# 使用Zero-copy模式核心场景: 端口扫描、端口监听、数据传输测试
# 端口扫描nc-zv192.168.1.120-30# 扫描端口范围nc-zv example.com8044322# 扫描多个端口# 建立连接测试echo"GET /"|ncexample.com80# 发送HTTP请求nc-l -p9999# 监听端口# 文件传输nc-l -p8888>received_file# 接收端nc192.168.1.1008888<send_file# 发送端# 代理和隧道mkfifo/tmp/fifonc-l -p8080</tmp/fifo|nctarget.com80>/tmp/fifo# 基本查询diggoogle.com# A记录查询diggoogle.com A +short# 简洁输出dig@8.8.8.8 google.com MX# 指定DNS服务器查MX记录# 高级诊断diggoogle.com +trace# 跟踪DNS解析路径diggoogle.com +stats# 显示统计信息dig+nssearch google.com# 查找权威服务器digaxfr @ns1.example.com example.com# 区域传输测试(需授权)nslookupgoogle.comnslookup-type=MX google.comnslookup-debug google.com8.8.8.8# 调试模式iftop -i eth0# 监控指定接口iftop -nN -i eth0# 不解析主机名和端口名iftop -F192.168.1.0/24 -i eth0# 只监控指定网段iftop -f"port 80 or port 443"# 过滤特定端口nethogs eth0# 监控eth0接口nethogs -d2# 刷新间隔2秒nethogs -t# 追踪模式bmon -p eth0# 监控特定接口bmon -o format:fmt='$(element:name) $(attr:rxrate:bytes)'# 接口管理iplinkshow# 显示所有接口ipaddr show eth0# 显示接口IP配置ipaddradd192.168.1.100/24 dev eth0# 添加IP地址# 路由管理iproute show# 显示路由表iprouteadddefault via192.168.1.1# 添加默认路由iproute get8.8.8.8# 查询到特定IP的路由# 邻居表(ARP)ipneigh show# 显示ARP表ethtooleth0# 查看网卡基本信息ethtool-i eth0# 查看驱动信息ethtool-S eth0# 查看详细统计信息ethtool-k eth0# 查看Offload设置ethtool-s eth0 speed1000duplex full# 设置速率和双工模式ethtool-t eth0# 在线测试网卡# 1. 本地服务检查ss -tlnp|grep:80# 检查端口是否监听systemctl status nginx# 检查服务状态# 2. 本地防火墙检查iptables -L -n# 检查iptables规则firewall-cmd --list-all# firewalld检查# 3. 网络连通性检查ping-c3target_iptraceroute-n target_ip# 4. 端口可达性检查nc-zv target_ip80timeout2telnet target_ip80# 5. DNS解析检查digtarget_domain +shortnslookuptarget_domain# 6. 抓包分析tcpdump -i eth0 -n"host target_ip and port 80"-w /tmp/debug.pcap# 1. 带宽测试iperf3 -c server_ip -t20-P4# 2. 延迟分析mtr-n -c100target.com# 3. 连接数分析ss -snetstat-s|grep-i retrans# 4. 队列监控ip-slinkshow eth0 tc -s qdisc show dev eth0# 5. 系统参数检查sysctl net.ipv4.tcp_available_congestion_controlcat/proc/net/sockstat# 实时监控连接状态变化watch-n1"ss -tan | awk '{print \$1}' | sort | uniq -c"# 监控特定进程的网络流量pid=$(pgrep nginx);nethogs -p$pid# 自动化的网络诊断报告{echo"=== Network Diagnostics Report ==="dateecho-e"\n1. Interface Status:"ipaddr showecho-e"\n2. Routing Table:"iproute showecho-e"\n3. Connection Summary:"ss -secho-e"\n4. Listening Ports:"ss -tulnp}>network_report_$(date+%Y%m%d_%H%M%S).txt# 模拟网络延迟(需要tc命令)tc qdiscadddev eth0 root netem delay 100ms# 添加100ms延迟tc qdisc del dev eth0 root# 删除规则# 模拟丢包tc qdiscadddev eth0 root netem loss5%# 5%丢包率# 模拟带宽限制tc qdiscadddev eth0 root tbf rate 1mbit burst 32kbit latency 400ms| 问题类型 | 首选工具 | 备选工具 | 关键命令示例 |
|---|---|---|---|
| 主机是否可达 | ping | fping | ping -c 4 target |
| 路径跟踪 | mtr | traceroute | mtr -n target |
| 端口监听 | ss | netstat | ss -tlnp |
| 连接状态 | ss | netstat | ss -tan state established |
| 抓包分析 | tcpdump | tshark | tcpdump -i any port 80 |
| 带宽测试 | iperf3 | iperf | iperf3 -c server |
| 端口测试 | nc | telnet | nc -zv host port |
| DNS解析 | dig | nslookup | dig +short domain |
| 实时流量 | iftop | nload | iftop -i eth0 |
| 进程流量 | nethogs | iftop | nethogs eth0 |
| 网卡信息 | ethtool | ip link | ethtool eth0 |
| 路由信息 | ip route | route | ip route show |
| 防火墙 | iptables | nft | iptables -L -n |
这套工具组合覆盖了从物理层到应用层的完整网络诊断需求,熟练掌握后能高效定位和解决绝大多数网络问题。