核心是三步:先用netstat -ano(win)或netstat -tulnp(linux)查活跃连接及pid;再用findstr/grep过滤established或可疑端口;最后用tasklist(win)或ps/ls -l /proc/pid/exe(linux)确认进程路径是否异常。

新手用 netstat 查异常连接和恶意 PID,核心就三点:先看谁在连、再查连的是谁、最后确认是不是坏家伙。不需要背参数,记住几个实用组合就行。
一、快速列出所有活跃连接并标出进程ID
在 Windows 上运行:
netstat -ano
在 Linux 上(需 root 或 sudo):
netstat -tulnp
这两个命令能一次性看到协议、本地地址、远程地址、连接状态和对应的 PID。重点关注:
- State 列为 ESTABLISHED 的行(表示已建立的对外连接)
- Foreign Address 是陌生 IP,尤其是境外地址或非常规段(如 185.245.x.x、103.196.x.x)
- Local Address 绑定在 0.0.0.0 而非 127.0.0.1(说明服务对外暴露)
- PID 是数字,后面没显示进程名——说明权限不够,Linux 需加 sudo,Windows 需管理员身份运行
二、聚焦可疑连接,缩小排查范围
别从几百行里手动翻。用过滤快速定位:
查所有已建立的连接(Windows):
netstat -ano | findstr "ESTABLISHED"
查某个端口是否被占用(比如 4444,常见于远控木马):
netstat -tulnp | grep ":4444 "(注意冒号后有空格,避免误匹配 14444)
查某进程是否在联网(比如怀疑 chrome.exe 异常外连):
netstat -ano | findstr "chrome"(Windows)或 netstat -tulnp | grep "chrome"(Linux)
三、拿到 PID 后,确认它到底是什么程序
PID 只是个编号,必须查清对应文件才敢动手。别直接 kill。
Windows 下查进程路径(管理员权限运行):
tasklist /fi "pid eq 1234"(替换 1234 为实际 PID)
Linux 下查进程详情:
ps -p 1234 -o pid,ppid,cmd 或更直接:ls -l /proc/1234/exe
重点看路径是否可疑:
- 路径含 Temp、AppData\Local\RandomName、/tmp/xxx.sh → 高风险
- 进程名拼写异常,如 svch0st.exe、csrsss.exe(多一个字母)→ 假系统进程
- 无数字签名(Windows)、无发行包管理记录(Linux)→ 需警惕
四、确认恶意后,安全终止并防止复活
不建议上来就强制杀进程。按顺序操作:
- 先尝试正常停止:Windows 用 net stop "服务名",Linux 用 sudo systemctl stop servicename
- 确认无业务影响后,再强制结束:taskkill /F /PID 1234(Win)或 sudo kill -9 1234(Linux)
- 查开机自启项:Windows 运行 msconfig 或 shell:startup;Linux 查 systemctl list-unit-files --type=service | grep enabled
- 删掉对应服务或禁用启动项,否则重启后还会回来










