network Roadmap

网络 / DNS / 代理专题

网络 / DNS / 代理排障专题:聚合 curl -v 抓包、DNS 解析失败、HTTP/HTTPS 代理与 socks5h、SSL 证书链、端口连通性和 HTTP 502/504 等链路问题的完整排查方法与命令组合。

网络问题先区分本机、代理、DNS、服务端和中间层五个位置,用 dig、curl -v、openssl s_client 拆开解析、TCP、TLS 和 HTTP,避免在错误位置反复改配置或关闭证书校验掩盖问题。

networkdnscurlproxysslhttp
排障 / 命令17
精选入口4
工具 / 速查4
最近更新2026-07-01

Troubleshooting Path

推荐排障路线图

提交问题 →
  1. 01

    先区分 DNS、TCP 和 HTTP 层

    用 dig/nslookup、curl -v、openssl s_client 拆开解析、连接、TLS 和响应。

  2. 02

    再确认代理和环境变量

    检查 HTTP_PROXY、HTTPS_PROXY、NO_PROXY,以及 socks5 和 socks5h 的 DNS 差异。

  3. 03

    继续验证证书和中间层

    排查证书过期、证书链、公司代理 CA、网关和反向代理超时。

  4. 04

    最后回到服务端日志

    确认服务端是否收到请求,避免只在客户端反复尝试。

Before You Change

执行前检查

  • 先保存 curl -v 输出
  • 代理排障时明确是否需要代理 DNS
  • 证书问题先查过期和链路
  • 涉及公司代理 CA 时不要直接关闭校验作为长期方案

Start Here

优先阅读

Latest Updates

最近更新

All Runbooks

全部相关内容

排障

Certbot 证书自动续期失败排查

Certbot 自动续期 Let's Encrypt 证书失败时,用 certbot renew --dry-run 复现真实错误,覆盖 80 端口 HTTP-01 验证不通、Nginx 未放行 .well-known/acme-challenge、DNS TXT 记录未生效和 certbot.timer 未触发等常见根因。

certbotletsencryptssl
排障

curl 使用代理连接超时排查

curl -x 通过 HTTP/SOCKS5 代理访问超时或 Failed to connect to proxy 时,用 curl -v 定位卡在代理还是目标站,区分 http 与 socks5/socks5h 协议、代理端 DNS 解析和 NO_PROXY 环境变量是否排除了目标域名。

curlproxytimeout
排障

DNS 解析失败排查:NXDOMAIN、SERVFAIL 和超时

域名解析出现 NXDOMAIN、SERVFAIL、Temporary failure in name resolution 或解析慢时,用 dig、dig @1.1.1.1、dig +trace、resolvectl status 交叉对比本机解析器、公共 DNS 和权威 DNS,快速定位问题出在哪一层。

dnsdigresolvectl
排障

Docker 容器网络不通排查

Docker 容器之间 ping/curl 不通、DNS 无法解析容器名或访问不了宿主机服务时,用 docker network inspect 查看网络成员,确认容器是否在同一自定义 network,Docker 内置 DNS 只在自定义网络生效,宿主机访问用 host.docker.internal。

dockernetworkbridge
排障

Git SSL certificate problem 解决方法

Git clone/pull 报 SSL certificate problem: unable to get local issuer certificate 时,用 GIT_CURL_VERBOSE=1 打印真实证书链,确认是否走了公司代理,把代理 CA 加入 http.sslCAInfo 或系统信任,避免直接关闭 sslVerify。

gitsslproxy
排障

hosts 文件修改不生效排查

修改 /etc/hosts 或 Windows hosts 文件后域名解析未生效时,用 getent hosts 或 ping 验证系统是否读取,Linux 重启 nscd/systemd-resolved、Windows 执行 ipconfig /flushdns 刷新缓存,浏览器可能启用 DoH 绕过 hosts 需要单独关闭。

hostsdnsnetwork
排障

Kubernetes Service 访问不通排查

Kubernetes Service 通过 ClusterIP/NodePort 访问不通时,先 kubectl get endpoints 看是否为空——空则是 selector 与 Pod labels 不匹配,有值再核对 targetPort、Pod readiness 和 NetworkPolicy,最后用 busybox nslookup 验证集群 DNS 是否解析 svc.cluster.local。

kubernetesservicedns
排障

Linux 查看 TCP 连接数与状态

Linux 服务器需要统计 TCP 连接总数、状态分布或排查 TIME_WAIT/CLOSE_WAIT 堆积时,用 ss -s 看总览,ss -tan 按状态分组统计,netstat 和 /proc/net/tcp 交叉验证,ss 从 netlink 读取比 netstat 更快也更全。

linuxtcpnetwork
排障

HTTPS 混合内容(Mixed Content)排查

HTTPS 页面加载 http:// 资源被浏览器提示 Mixed Content blocked 时,用 F12 Console 定位被阻止的 script/stylesheet/image,区分 active/passive 混合内容并逐个改成 https 或相对协议,也可在 Nginx 加 CSP upgrade-insecure-requests 兜底。

nginxhttpsmixed-content
排障

Nginx HTTPS 证书过期与链不完整排查

浏览器提示 NET::ERR_CERT_DATE_INVALID、curl 返回 SSL certificate problem: certificate has expired 时,用 openssl s_client -connect 查线上实际证书 dates,再对比服务器文件、确认 ssl_certificate 指向 fullchain.pem 且 certbot 续期后 reload 了 Nginx。

nginxsslhttps
排障

Nginx 反向代理 WebSocket 配置与排障

Nginx 反向代理 WebSocket 出现 1006 异常关闭、连接建立后很快断开或收不到消息时,必须设置 proxy_http_version 1.1、透传 Upgrade 与 Connection: upgrade 头,并调大 proxy_read_timeout 让长连接不被 60s idle 超时断开,握手成功会返回 101。

nginxwebsocketproxy
命令

curl 调试 HTTP 请求常用命令

整理 curl -v、-I、--resolve、--connect-timeout、代理和请求耗时分析命令。

curlhttpdebug
命令

dig 和 nslookup 查询 DNS 命令

使用 dig 和 nslookup 查询 DNS 的常用命令,dig +short 快速拿到 A/CNAME 记录、dig @1.1.1.1 指定公共 DNS 对比结果、dig example.com MX/TXT 查特定类型、dig +trace 从根域名追踪权威 DNS,脚本排障优先用 dig。

dignslookupdns
命令

Git 配置和取消代理命令

Git 配置和取消 HTTP/HTTPS/SOCKS5 代理的常用命令,git config --show-origin --get-regexp proxy 找出代理配置来自 system/global/local 哪一级,http.proxy 只影响 HTTP 仓库,SSH 仓库需要单独配置 ssh ProxyCommand 或 IdentityFile。

gitproxyconfig
命令

openssl 检查 HTTPS 证书命令

openssl s_client 检查线上 HTTPS 证书的常用命令,openssl s_client -connect example.com:443 -servername 触发 SNI 拿到真实证书,用 openssl x509 -noout -dates -issuer -subject 提取有效期与颁发者,-showcerts 查看完整证书链。

opensslsslhttps
命令

搜索引擎常用排障命令

Elasticsearch、Logstash、Kibana 排障命令速查,ES 用 _cluster/health、_cat/shards、_cluster/allocation/explain 查集群与分片,_cat/allocation 看磁盘水位,_cat/thread_pool/search 判断慢查询瓶颈,Logstash 用 _node/stats/pipelines 看 event 流转。

searchelasticsearchlogstash
命令

tcpdump 抓包命令

Linux tcpdump 抓包排查网络问题的常用命令,tcpdump -i eth0 -nn 不解析主机名和端口名减少延迟,port 80/host 过滤按端口或 IP 抓包,-w capture.pcap 保存文件后用 Wireshark 分析,权限不够用 sudo 或 setcap cap_net_raw。

tcpdumpnetwork抓包