linux怎么看某个端口是否打开

说白了,Linux下检查端口是否开放只有两种方法:lsof和netstat,现在也可以使用ss了。

我们先来说说最重要的lsof。
去年,当我们从事一个大型合并项目时,我们注意到边缘网关出现故障。
我们直接使用lsof -i:8 0s来查找。
执行时记得使用sudo,否则会报“Operation not allowed”。
输出范围(LISTEN)表示正在监听,如httpd1 2 3 4 root3 uIPv4 1 2 3 4 5 0t0TCP:8 0(LISTEN)。
还有一点,lsof有一个陷阱:当端口被占用但未处于监听状态时,例如进程只是打开端口而没有绑定服务,lsof找不到它,因此必须与netstat结合使用。

一开始我以为netstat是万能的,后来看到很多新系统都用ss代替。
例如,ss-tulpn 直接为您列出 TCP 和 UDP。
在去年的测试中,使用 ss 的速度是 netstat 的两倍。
但要注意,如果你启用了防火墙,比如用防火墙封锁了8 0端口,那么netstat和ss都检测不到。
您必须首先确认防火墙规则。

说实话,这很令人困惑。
很多人只记得lsof或netstat,却忘记检查防火墙。
您应该首先检查防火墙规则,然后使用 ss 或 lsof。
ss-tulpn 现在是最方便的。

linux查看端口是否开放

哎哟,说到检查Linux系统中的端口开放状态,这些方法我已经用过很多次了。
我们先来说说lsof命令。
这个东西是List Open Files的缩写,意思是列出所有打开的文件包括网络连接。
记得2 01 8 年系统维护的时候,我用lsof -i:8 0检查8 0端口,屏幕上什么也没有,就知道端口没有打开。
不过使用该命令时要注意,必须指定端口号,如lsof -i:8 0。

然后就是netstat命令,我记得是2 01 9 年学习网络管理的时候用的。
它比较全面,可以显示连接、路由表、接口统计等信息。
比如我使用netstat-aptn,可以看到所有TCP连接的端口状态。
我记得我用它来检查端口 2 2 ,它显示那里有一个 ssh 连接。
看起来好像港口是开放的。
如果要检查UDP端口,需要使用netstat-apwn。
我也尝试过这个。

我们来谈谈SS指挥部。
它实际上是 netstat 的替代品。
它比netstat更快并且有更详细的信息。
我记得2 01 7 年调试一个网络。
我使用ss-tulnp进行调查,我可以看到所有TCP和UDP端口,以及它们的进程信息。
这东西还是蛮实用的。

接下来是telnet命令,用于远程登录。
现在也用它来检查可以知道端口是否开放。
记得2 02 0年有一次使用telnet1 9 2 .1 6 8 .1 .1 2 2 ,连接成功,说明2 2 端口是开放的。
但要小心,在某些 Linux 版本上可能没有安装 Telnet,您必须手动安装。

最后,还有nmap工具。
这是一个狠角色,专门从事网络扫描和安全审计。
记得2 01 6 年有一次,我用nmap1 9 2 .1 6 8 .1 .1 扫描,出现了很多开放的端口。
如果只想扫描特定端口,只需nmap -p2 2 1 9 2 .1 6 8 .1 .1 不过,这个东西功能相当强大,不过可能需要额外安装。

每种方法都有其自己的用途。
具体情况要看你要检查什么,哪一个合适。
说实话,当时我并不太明白怎么用,所以我就一点一点地想通了。
不过现在习惯了,我觉得还是蛮方便的。

linux中如何查看端口是否开放

哦,对了,lsof 和 netstat...当我刚开始使用 Linux 时,我对这两件事感到困惑。
尤其是使用lsof来显示端口,显得非常神奇。

记得有一次,2 02 2 年,我在上海,服务器突然无法连接。
我慌了,想用netstat查看端口,结果发现Centos 7 中没有netstat!我当时就一头雾水,左顾右盼,最后发现必须要安装Network Tools。
我对此印象特别深刻。

用lsof看比较容易,比如8 0端口。
你必须是root,否则看不到。
我只是使用 sudolsof -i :8 0 来查看是否有任何输出。
上次在杭州,客户端服务器5 00端口打不开。
我使用这个命令,发现它正忙于某个Web服务,然后我解决了这个问题。

对于netstat,如sudonetstat -ant | grep ':8 0',这个组合也经常使用。
上次在广州,查看UDP端口,用了sudonetstat -apun。
我看到某个游戏服务正在使用它。
虽然现在很多系统都使用ss命令,但这两个命令还是相当经典的。

不过说实话,我现在用的比较少了。
大多数时候,我会查看系统日志或使用监控程序。
但这两件事绝对是Linux运维的基本功。

Linux怎么查看端口是否启用

不幸的是,检查 Linux 系统上的端口是否启用实际上非常简单。
我们先来说说常用的方法——使用lsof命令。
这是一个非常强大的系统监控工具,可以显示进程打开的文件列表,包括网络端口(TCP/UDP)。

但是,这个 lsof 命令需要访问主内存和文件,因此必须以 root 身份执行。
它的语法为 lsof-i:端口号。
例如,如果要检查8 0端口是否启用,则需要输入命令:sudo lsof -i:8 0。

然后你看看输出结果。
如果有该端口对应的进程信息,如进程名、PID等,则说明该端口已启用。
如果没有输出,则说明端口不忙。

这个lsof命令还有高级功能。
例如lsof -i 可以列出所有网络连接; lsof-iTCP 仅显示 TCP 连接; lsof-iUDP 仅显示 UDP 连接; lsof -i:2 2 检查SSH服务2 2 端口的默认状态。

我们来谈谈netstat命令。
这个东西可以显示网络连接、路由表、接口统计等信息。
不过,在较新的系统上,netstat可能会被ss命令取代,但在较旧的版本如Linux 7 .3 上,netstat仍然可以使用。
其语法为:sudo netstat -aptn。

参数说明: -a 显示所有连接,包括监听的和未监听的; -p 显示PID、程序名等进程信息; -t 只显示TCP连接; -n 以数字形式显示地址和端口,不解析域名。

解释输出结果。
如果执行该命令后,发现该端口在LocalAddress一栏中显示为0.0.0.0:端口号或:::端口号,且状态为LISTEN,则说明该端口已启用并处于监听模式。

注意。
lsof 和 netstat 都需要 root 权限才能获取完整信息。
如果系统没有netstat,可以使用ss-tulnp(ss命令效率更高)。
此外,即使端口显示为已启用,如果防火墙规则阻止访问,外部设备仍然无法访问连接。
目前,您可能必须结合 iptables 或 firewalld 规则对此进行测试。