linux怎么查看开放了哪些端口

嘿,我们来谈谈检查Linux系统中开放的端口。
这件事早已成为我每天都会遇到的事情。

当我第一次接触Linux系统时,老实说我很难识别开放的端口。
回头看主要有两种方法,一种简单,一种专业。

首先我们来说一个简单的事情,就是如何使用netstat命令。
这个东西是Linux系统自带的。
无需额外安装。
这可以通过在命令行上键入几个字母来完成。
我记得有一次,在使用此命令排除服务器上的服务问题时,我发现特定端口未打开。
您需要做的就是在终端中输入 netstat -anp 来查看所有活动连接和侦听端口。
如果您想更具体,例如仅查看特定端口,您可以使用 grep 进行过滤,例如例如。
netstat -anp | 网络统计grep LISTEN 这样可以快速找到监听端口。

我们来说说专业的,即nmap。
这是一个网络扫描工具,可以快速检测本地或远程主机上开放的端口。
第一次接触nmap是在公司网络安全培训课程上。
当时我们用nmap扫描内部网络,发现有几个端口开放但配置不正确,这是相当危险的。
安装 nmap 非常简单。
您可以通过 RPM 包管理器安装它,也可以自己编译源代码。
我使用的是RPM包,我记得它是nmap-4 .1 1 -1 .1 .x8 6 _6 4 .rpm。
它也很容易使用。
例如,如果你想扫描这台计算机上的所有端口,只需输入nmap 1 2 7 .0.0.1 ,结果将显示所有开放的端口及其状态。

有趣的是,这两种工具都是可扩展的并且更易于使用。
例如,可以使用lsof命令来检查特定端口是否正在使用,使用telnet和nc命令来测试端口是否打开。

尽管如此,防火墙有时还是很烦人。
您可以阻止端口,这样即使您的服务正在侦听,也不会被外界检测到。
我记得有一次使用 nmap 扫描服务器,发现端口是开放的,但就是无法连接。
后来我发现是防火墙的问题。

说白了,根据自己的需求,可以使用Netstat快速查看本地端口,也可以安装Nmap进行全面扫描。
如果要检测远程端口,使用NC或Telnet工具帮助验证也是不错的选择。
这两个工具简单实用。
我经常使用它们来测试端口状态。

linux如何查询端口

哦,对了,Linux端口检查,这个需要讨论一下。

以前,我可能认为netstat就足够了,对吧?非常经典的一个工具。
只需在命令行中输入 netstat -tuln 即可。
这个-t是TCP,-u是UDP,-l是监听,-n是数字。
不解析服务名称,省事。
查看输出,包括协议、本地地址、连接的外部IP、其状态以及PID和进程名称。
非常直观,对吧?
然后,可能后面接触的多了,发现lsof也可以用来检查。
这是通过文件描述符检查的。
如果您输入 lsof -i,它将为您列出所有网络连接。
如果您想查看特定端口,例如端口 8 0,只需添加 :8 0, lsof -i:8 0。
它产生什么?有进程ID、用户、命令是什么、协议、本地地址、外部地址和状态。
这对于检查哪些进程正在占用端口非常有用。

后来发现ss命令据说是netstat的现代版本,效率很高。
用法与netstat、ss -tuln类似。
输出可以更简洁一些,非常适合快速浏览。

此外,参与渗透测试或网络扫描的人也经常使用 nmap。
这是一个专业的工具。
如果你想知道某个特定IP地址(例如1 9 2 .1 6 8 .1 .1 )的哪些端口是打开的,哪些是关闭的,可以直接使用nmap。
例如,nmap -p 1 -1 000 1 9 2 .1 6 8 .1 .1 扫描端口 1 到 1 000。
输出有打开、关闭、过滤和服务信息。

哦,对了,还有一个办法,就是看/proc文件系统。
Linux 内核将这些信息放入虚拟文件系统中。
如果你想查看 TCP 端口,只需 cat /proc/net/tcp。
UDP 是 cat /proc/net/udp。
该输出为十六进制,包括本地地址、远程地址和端口。
你必须自己改变它。
例如,如果您看到 0x5 0,您就知道它是十进制的 8 0。

所以你看,方法有很多。

通常,您可以只使用 ss -tuln 或 lsof -i。
ss 可能更快,并且 lsof 非常方便检查进程关联性。
如果你正在进行安全审计,或者想查看远程主机的端口状态,那么必须安装nmap,它会更高效。
/proc 文件系统可以在开发和调试时使用,但一般人可能不会经常使用它进行日常维护,并且数据是本机的。

总之,要看情况。
对于日常维护,ss 或 lsof 可能就可以。
对于安全审计来说,nmap 非常适合。
就是这样。