linux下怎么查看端口是否被占用

等等,我昨晚在宿舍电脑上安装了一个新游戏,玩起来卡住了。
我打开终端并输入 netstat -tlnp 以查看哪个端口导致了问题。
我盯着屏幕上那些乱七八糟的字符吧? 8 0端口没有出现,8 000端口也没有出现。
为什么8 001 端口被占用?我记得没有开通任何其他服务。
再次输入 lsof -i :8 001 就会出现一个 nginx 进程。
哦,原来是我安装的特定开发环境自带的web服务器自动启动了。
这件事让我想起,有时候系统里还有不少看不见的“客人”。
比如上次在公司服务器上,有同事抱怨某个API接口打不开。
我检查了一下,发现另一个项目留下的临时端口没有关闭,正在占用资源。
就像你家里来了一位不速之客。
除非你注意,否则你甚至可能不会注意到它。
Linux系统虽然强大,但还是需要时不时的去爱护。
否则,“隐形客人”过多,“正主”就可能被排挤。

Linux如何查看本机监听的端口

哦,让我给你解释一下Linux中的端口扫描是怎么回事。

想想,上次有朋友问我为什么服务器突然无法连接网站了。
我刚刚使用命令发现8 0端口没有监听。
这种事情很常见,所以你需要知道如何检查它。

最古老和最基本的是netstat。
我的电脑仍然是旧系统,netstat -tuln 工作正常。
如您所见,-t 是 TCP,-u 是 UDP,-l 仅用于监视和监听,-n 是数字形式,不解析名称。
这非常重要,可以为您节省大量时间,避免陷入困境。
运行此命令时,显示的表中的 LocalAddress 列(例如 0.0.0.0:8 0)表示该设备的所有网卡上都打开端口 8 0 以供外部访问。
该命令主要适用于Linux系统,在较旧的机器上运行没有任何问题。

但是现在,我强烈推荐ss。
ss -tuln,参数和netstat类似,但是输出速度很快!尤其是当你的服务器连接很多的时候,netstat会长时间卡住,一闪就出现ss。
主要建议在新系统中使用ss,性能要好很多。

仅仅知道要监听哪些端口是不够的,对吧?您还需要知道哪个进程打开了它。
这时候就需要-p参数了。
例如,如果你想知道哪个进程打开了8 0端口,你应该使用sudo,因为检查进程信息通常需要root权限。
命令是 sudo ss -tulnp 或 sudo netstat -tulnp。
如果您查看“进程”(或类似的列名称),它会告诉您它代表什么服务,例如 nginx 及其 PID。
如果发现服务宕机或者出现问题,只需关闭-9 PID即可停止,非常方便。

如果你想查找特定端口,例如端口 8 0 或端口 4 4 3 ,只需使用 grep 即可。
您可以运行 ss -tuln | grep :8 0 或 netstat -tuln |葡萄:4 4 3 这样您就可以快速找到您想要查看的端口,而无需查看每个端口。
我经常用它来检查网站服务是否有开放的端口,或者如果我怀疑端口冲突,我可以通过运行 grep 立即看到它。

总的来说:
ss 新鲜、快速,值得推荐。
netstat是一个老命令,兼容性很好。
它可以在较旧的系统上使用,或者当您懒得安装新工具时使用。
如果想知道是哪个进程占用了端口,必须使用sudo并加上-p。
使用 grep 检查特定端口和过滤器。

库姆记下这些命令并稍后解决问题。
例如,如果服务突然停止响应,请先运行 ss -tulnp 查看哪个进程正在监听哪个端口,是否已断开连接,或者是否已关闭。
您将立即获得方向。
然而,你必须掌握这项技能。

Linux怎么检查程序和监听的端口

上周,有客户问我,如何在Linux系统中查看程序正在监听哪些端口? 我向他介绍了几种方法。

首先,您可以使用 lsof 命令。
该工具是Linux中查看进程打开的文件的工具,但它不仅可以查看文件,还可以检查端口监听状态。
用法是 sudo lsof -i -P -n | grep 听。
例如,如果有一个名为 sshd 的进程,它监听端口 2 2 ,则会显示 sshd 8 5 3 7 9 root 3 u IPv4 0xffff8 000003 9 e0000 t0 TCP 1 0.8 6 .1 2 8 .1 3 8 :2 2 (LISTEN)。

然后是旧的 netstat 命令。
该产品可以显示网络连接、路由表和接口统计信息。
查看监听端口的命令是netstat -tulnp | grep 听。
例如tcp 0.0.0.0:2 2 0.0.0.0: LISTEN 8 5 3 7 9 /sshd,这一行表示TCP协议的2 2 端口正在监听。

如果想更高级,可以使用nmap命令。
本产品是一款网络扫描工具,可以检测主机和端口开放情况。
要检查本地侦听端口,请输入 sudo nmap -sT localhost。
要扫描特定 IP,例如 1 9 2 .1 6 8 .2 .1 3 ,请将 localhost 替换为目标 IP。

无论如何,这取决于你。
这些命令可以帮助您解决端口监控的问题。
我也在想,如果你有更具体的需求,比如只关心特定的程序,你可能需要调整命令参数。