linux查看进程及端口

你在说什么啊,我在服务器上闲逛时经常不得不这样做。

看,检查进程时,最常使用 ps aux 或 top。
让我告诉你,ps aux 命令非常直观。
它列出了很多数据,包括进程ID、谁启动的、使用了多少CPU和内存等等。
那一年,我在上海的时候,一个客户的服务器突然崩溃了。
我打开一个终端并输入 ps aux | Java grep.我立即看到哪个 Java 进程消耗了太多 CPU。

至于检查端口,你提到的cat /etc/services是一个老方法。
检查服务与系统默认端口的对应关系。
不过这个东西现在用的比较少了,因为现在很多应用程序都使用自己的端口。
真正实用的是netstat或者ss。
让我告诉你,ss -tulnp 命令非常容易使用。
您可以直接看到哪个端口是开放的,TCP还是UDP,并且还知道谁在监听它。
前年我在北京调试一个新部署的Web服务,使用了ss -tulnp | grep 8 08 0,我立即发现哪个进程正在运行我的应用程序。

还有lsof,这个命令就更好了,它直接告诉你哪个文件是哪个进程打开的,当然端口也指定了。
上次去杭州的时候,数据库连接一直冻结。
我使用 lsof -i :3 3 06 并立即看到哪个应用程序进程未能正确关闭连接。

如您所见,检查进程和端口并不是那么困难。
如果你熟悉 ps、netstat、ss、lsof 这些命令,你几乎可以解决任何问题。

linux如何查看端口被哪个进程占用

说白了,查看Linux端口占用情况只有两种方法:netstat和lsof,具体使用哪一种取决于场景。

为了扩展,我们先使用netstat。
去年我们运行监控系统时,发现8 08 0端口被占用,就直接使用netstat -anltp | grep 8 08 0 来查找PID为2 3 4 5 的java进程。
用行话来说,这称为雪崩效应。
事实上,前面的一个小小的延迟就导致了后面的整个过程。
还有一点是,去年系统权限改革后,曾经有一个运维小哥刷卡使用了sudo,但是命令并没有被执行。
很多人没有注意到这一点。
还有一个细节非常重要。
例如,在3 000级别的服务器上,建议使用netstat -pnt。
添加 -t 显示 tcp,添加 -n 显示数字 IP。
否则终端解析域名时会卡住。

一开始我以为netstat是最好的,后来发现我错了。
lsof 更灵活。
例如,要查看哪些文件与占用的端口关联,只需运行 lsof -i:8 08 0 即可得到结果,特别适合复杂场景的排查。

温馨提示:使用这些命令时,请确保系统支持。
比如老的CentOS 6 可能会因为lsof版本太低而报错,所以必须先升级。

我的建议是带上alias np="netstat -anltp" 进行日常维护。
检查端口比阅读手册更快。

Linux中如何查找进程占用的端口?netstat与ss命令使用技巧

netstat 和 s 都可以查找端口,并且 s 更快。

netstat 命令:sudo netstat -tulnp。
-t:TCP端口。
-u:UDP端口。
-l:监听端口。
-n:IP和端口号。
-p:显示进程PID和名称。

ss命令:sudo ss -tulnp。
参数与netstat相同,但速度更快。

查看端口8 0: sudo ss -tulnp | grep ':8 0'。
检查进程:ps -p PID
使用sudo,否则不会有PID数据。
TCP已连接,UDP未连接。
对于 IPv4 使用 -4 ,对于 IPv6 使用 -6 Miles ss 连接速度很快,netstat 速度更快。

sudo netstat -tulnp:适用于旧系统。
sudo ss -tulnp:用于新训练。
grep 快速过滤。
你自己掂量一下。