那天服务器访问异常,想着linux查看开放了哪些端口,看看是不是有陌生端口在跑东西。ssh连上去,光标在黑框里闪,脑子一下子卡壳,敲出来的命令自己都觉得别扭,回车之后半天没动静。

本来以为几秒就出结果,屏幕一直停在那里,没有报错,也没有输出任何端口信息。手悬在键盘上,不知道要不要直接关掉这个会话,又怕强行断开会不会影响上面跑着的服务。

旁边同事路过瞟了一眼,随口说了一句,我这个写法少了参数。没仔细听他说的是啥,心里乱糟糟的,只想着赶紧拿到端口列表。

换了一行重新敲,这次倒是有输出了,但是内容密密麻麻一大串,好多是本地回环的端口,混在里面,翻来翻去,分不清哪些是对外监听的。盯着那些数字看,越看越乱,好多行的状态标识长得差不多,来回滚动终端,眼睛都发酸。

就是在这里犯了个傻,以为只要显示出来的端口,都是对外放开的。一个个把端口号记在记事本上,打算挨个去核对防火墙规则,折腾了好半天,才发现有一大部分只是程序内部在用,外网根本碰不到。

又试了另一条,输出简洁不少,只抓监听状态的。跑起来速度很快,一下子就刷出来一小段,当时松了口气,以为这下就齐了。盯着列表扫了一遍,熟悉的几个业务端口都在,还有一个没印象的端口号。

盯着那个陌生端口,迟疑了很久。不知道是什么程序开的,也不敢直接去处理,怕随手一动把正常业务搞崩。来回翻进程信息,对应PID去找程序,翻了好一会才对上,原来是之前临时装的一个小工具,启动之后忘了关掉。

关掉那个工具之后,再跑一次,那条端口就不在列表里了。

整个过程耗了挺久,大部分时间都耗在分不清输出内容上,一会看到一堆连接记录,一会只有监听端口,来回切换命令,感受差别挺大。不同方式出来的东西,侧重点完全不一样,有的侧重连接,有的只看本机监听,不提前留意这点,很容易被一堆信息裹住。

后来才反应过来,我当时只关心对外监听的端口,却没先想清楚自己到底要看哪一类信息,拿到输出就一股脑全部当成开放端口对待,白白多花很多功夫。

这只是我当时自己的操作感受,不同机器环境、系统版本跑出来的效果会不一样,别人操作的时候不一定会碰到和我一样的情况。

关掉ssh窗口的时候,记事本上还留着一堆划掉的端口数字。