未安装Web服务器时8080端口出现神秘“it works”响应的排查与终止方法求助
未安装Web服务器时8080端口出现神秘“it works”响应的排查与终止方法求助
兄弟,我太懂你这种摸不着头脑的感觉了——明明没装Apache这类Web服务,localhost:8080却弹出个光秃秃的“it works”,查进程还啥都找不到,简直离谱!给你整理几个Arch下实用的排查步骤,一步步来揪出这个“幽灵进程”:
先补全权限再查进程:普通用户的lsof/ss可能看不到其他用户(比如root)的进程,赶紧加sudo重试:
- 用lsof查:
sudo lsof -i :8080 - 用ss查(推荐,更高效):
sudo ss -tulpn | grep 8080,-pn参数会强制显示进程名和PID - 备选netstat:
sudo netstat -tulpn | grep 8080
- 用lsof查:
排查超级服务(inetd/systemd-inetd):有些系统会用超级服务监听端口,有请求时再唤起对应程序,这种情况下普通进程列表里看不到常驻进程:
- 先看systemd-inetd状态:
sudo systemctl status systemd-inetd,看看有没有相关日志或监听配置 - 检查配置文件:
cat /etc/inetd.conf或者遍历/etc/xinetd.d/目录下的文件,找8080相关的监听规则
- 先看systemd-inetd状态:
别忘了UDP端口:你之前可能只查了TCP,但说不定这个“it works”是UDP响应?试试:
sudo lsof -i UDP:8080sudo ss -ulpn | grep 8080
用fuser命令强制揪PID:fuser有时候能抓到lsof漏的进程,直接列出占用端口的PID:
sudo fuser -n tcp 8080,得到PID后用sudo kill <PID>终止- 要是嫌麻烦,直接加
-k参数一键杀掉:sudo fuser -k -n tcp 8080
检查防火墙转发规则:有没有可能iptables把8080端口的请求转发到了其他端口/进程?查一下:
sudo iptables -t nat -L -n,看看有没有DNAT规则涉及8080
排查systemd socket单元:systemd可以通过socket单元预先监听端口,有请求时再启动对应服务,这种情况进程列表里也看不到常驻进程:
sudo systemctl list-sockets | grep 8080,看看有没有匹配的socket单元
终极杀招:tcpdump抓包:要是以上都没用,直接抓本地回环的包,看响应的源细节:
sudo tcpdump -i lo port 8080,然后再访问localhost:8080,从抓包结果里找进程相关的线索
找到进程后,记得用systemctl disable <服务名>(如果是systemd服务)或者直接卸载对应的包,避免下次开机又自动跑起来!
备注:内容来源于stack exchange,提问作者theo
相关产品推荐
相关产品推荐

