Linux - 文章列表
共 4 页
-
Nginx报错SSL_do_handshake() failed与SSL证书链不完整的排查方法(openssl s_client定位、fullchain合并与acme.sh自动续期)
网站证书没到期却被浏览器判定不安全、error.log刷SSL_do_handshake() failed,问题基本出在证书链、证书与私钥不配对、SAN域名不匹配或协议版本上。本文按alert number 46、45、42、40四种报错串分诊,给出openssl s_client与openssl verify的完整命令、fullchain合并顺序、证书modulus比对方法,以及acme.sh与certbot各版本续期时机差异和15天到期告警的配置。
-
Linux下systemd服务启动失败与反复重启的排查方法(status=203、217退出码、start-limit-hit与journalctl定位)
systemctl start报Job for xxx.service failed时,原因藏在status输出的status=203、217、200与journal日志里。本文给出status三块的读法、203的四个成因、start-limit-hit限速机制与reset-failed的用法、Type=与TimeoutStartSec默认90秒的关系、ProtectSystem与PrivateTmp沙箱指令导致的启动失败,以及journalctl -u为何会漏掉systemd自己记的失败行。
-
Docker容器间互访报dial tcp: lookup on 127.0.0.11:53: no such host的排查方法(Compose服务名解析、自定义网络与healthcheck就绪)
Compose拉起的服务互相访问报no such host,多半是内嵌DNS没接上。按三种报错串分诊:no such host是名字解析不到,connection refused是服务没就绪,Temporary failure是resolv.conf不对。讲清127.0.0.11解析器只在自定义网络生效的规则,给出查resolv.conf、getent测名、network inspect判归属的四步法,列出服务不同网、host网络模式、服务名与容器名混用等六个成因,并说明depends_on只等启动不等就绪、要配healthcheck的要点。
-
Linux服务器iowait偏高与磁盘IO打满的排查方法(iostat与iotop定位进程、await队列分析与脏页回写参数调整)
服务器top里wa很高但CPU空闲,多半是磁盘IO堵了。文中给出固定排查顺序:vmstat看b列确认是否有进程卡在IO上,iostat -x看r_await、w_await与aqu-sz判断堵塞程度,iotop、pidstat与/proc/PID/io定位到进程,biosnoop与blktrace下钻到文件和块层,fio打基线,最后调整vm.dirty_ratio等脏页回写参数与IO调度器。附各参数默认值。
-
Nginx报错504 Gateway Time-out的排查方法(upstream timed out定位、proxy_read_timeout与fastcgi_read_timeout配置)
504 Gateway Time-out与502的区别在于后端只是慢,不是挂了。按error.log里upstream timed out尾部的connecting、sending、reading三个词,定位该改proxy_connect_timeout、proxy_send_timeout还是proxy_read_timeout,默认值都是60s,连PHP-FPM时换成fastcgi_read_timeout。再把两个耗时变量打进日志找出慢URL,核对PHP的max_execution_time 30s与MySQL锁等待50s。
-
Linux下git合并冲突与子模块报错的排查方法(CONFLICT冲突标记、reference is not a tree与detached HEAD定位)
按CONFLICT冲突标记、Your local changes会被覆盖、fatal: reference is not a tree、MERGE_HEAD exists四类报错串分开处理:git status里both modified与deleted by us的读法、diff3与zdiff3冲突视图怎么开(zdiff3需Git 2.35.0以上,Ubuntu 22.04源里的2.34.1不支持)、rebase下--ours与--theirs语义反转、冲突标记漏删的git grep拦截、子模块update与sync、detached HEAD成因、删除子模块的完整四步。
-
Linux下Docker磁盘写满与overlay2目录暴涨的排查方法(docker system df定位、容器json日志限制与no space left on device解决)
Docker把磁盘写满时,容器退出、拉镜像报no space left on device。本篇按docker system df、df -i、du定位空间去向,讲清overlay2层结构与容器json-file日志撑爆盘的处理:truncate截断、daemon.json设max-size与max-file、prune从保守到激进的顺序,以及inode耗尽、句柄未释放和data-root迁移几种情况的处置办法。
-
Linux报错Too many open files的排查与解决方法(ulimit文件描述符上限、systemd LimitNOFILE与nginx worker_connections)
进程fd打到软限制1024时的完整排查路径:区分EMFILE与ENFILE、从/proc/PID/limits读真实上限、systemd服务加LimitNOFILE而不是改limits.conf、容器ulimit、nginx的worker_rlimit_nofile与worker_connections配套调整,以及用fd数量趋势判断是配置小还是代码在泄漏。
-
Linux服务器端口访问不通的排查方法(Connection refused、Connection timed out与No route to host的区分定位)
同样是连不上,Connection refused秒回、Connection timed out等满超时、No route to host又是另一层。按三种报错串分诊,给出ss、nc、curl、nft、tcpdump、ping -M do与iperf3的定位命令,覆盖监听地址、安全组、rp_filter与MTU几类常见原因。
-
Kubernetes Pod一直CrashLoopBackOff与ImagePullBackOff的排查方法(kubectl describe定位、探针配置与镜像拉取修复)
Pod卡在CrashLoopBackOff或ImagePullBackOff时的排查路径:kubectl describe看Events与Last State退出码,137、139、143、127各自代表什么,livenessProbe把慢启动应用杀掉时容忍时间怎么算,私有仓库的imagePullSecrets挂到ServiceAccount,节点上用crictl验证拉取,以及arm64节点拉amd64镜像导致的exec format error。