0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Linux或类Unix系统下如何确定端口是否正在使用?

冬至子 来源:坐望云起时 作者:坐望云起时 2023-09-14 16:22 次阅读

Linux或类Unix系统下如何确定端口是否正在使用?如何验证 Linux 服务器上正在侦听哪些端口?如何使用 CLI 检查 Linux 操作系统上的端口是否正在使用?

验证哪些端口正在服务器网络接口上侦听非常重要。您需要注意开放端口以检测入侵。除了入侵之外,出于故障排除的目的,可能有必要检查端口是否已被服务器上的其他应用程序使用。

例如,您可以在同一系统上安装 Apache 和 Nginx 服务器。因此有必要知道 Apache 或 Nginx 是否正在使用 TCP 端口#80/443。本快速教程提供了使用 netstat、nmap 和 lsof 命令检查正在使用的端口并查看正在使用该端口的应用程序的步骤。

如何检查端口是否被使用

查看Linux上的监听端口和应用程序:

1.打开终端应用程序,即 shell 提示符。
2.在 Linux 上运行以下任一命令来查看开放端口:

1.jpg

3.对于最新版本的 Linux,请使用 ss 命令。例如,ss -tulw

让我们详细看看命令及其输出。

选项#1:lsof 命令

语法为: 示例输出:

1.jpg

考虑上面输出的最后一行:

sshd 85379 root 3u IPv4 0xffff80000039e000 0t0 TCP 10.86.128.138:22(监听)
  • sshd是应用程序的名称。
  • 10.86.128.138是 sshd 应用程序绑定到的 IP 地址(监听)
  • 22是正在使用的 TCP 端口 (LISTEN)
  • 85379是sshd进程的进程ID

查看 Internet 网络服务列表

/ etc/services是互联网服务的友好文本名称与其底层分配的端口号和协议类型之间的文本文件映射。使用cat命令或者more命令/ less命令查看:
$less /etc/services

选项#2:netstat 或 ss 命令

您可以使用netstat检查监听端口和应用程序,如下所示。

Linux netstat 语法

运行 netstat 命令和grep 命令来过滤掉处于 LISTEN 状态的端口: 或过滤掉特定的 TCP 端口,例如 443: 其中 netstat 命令选项为:

1.jpg

  • -t :选择所有TCP端口
  • -u :选择所有UDP端口
  • -l :显示监听服务器套接字(在列表状态下打开TCP和UDP端口)
  • -p :显示套接字的 PID/程序名称。换句话说,该选项告诉谁打开了 TCP 或 UDP 端口。例如,在我的系统上,Nginx 打开了 TCP 端口 80/443,因此我将 /usr/sbin/nginx 或其 PID。
  • -n :不解析名称(避免 dns 查找,这可以加快繁忙的 Linux/Unix 服务器上的 netstat 速度)

Linux 上的netstat 命令已弃用一段时间。因此,需要使用ss命令,如下:

1.jpg

其中,ss命令选项如下:

  • -t :在 Linux 上仅显示 TCP 套接字
  • -u :在Linux上仅显示UDP套接字
  • -l :显示监听套接字。例如,SSHD 服务器打开 TCP 端口 22。
  • -p :列出打开套接字的进程名称
  • -n :不解析服务名称,即不使用 DNS

FreeBSD/macOS (OS X) netstat 语法

语法如下: 您也可以在 macOS 或 FreeBSD 上使用 sockstat 命令来显示打开的 TCP 或 UDP 端口。例如:我的FreeBSD 服务器版本13.xx 的输出:

1.jpg

OpenBSD netstat 语法

1.jpg

选项#3:nmap 命令

语法是:

1.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux系统
    +关注

    关注

    4

    文章

    567

    浏览量

    26923
  • PID控制
    +关注

    关注

    10

    文章

    442

    浏览量

    39703
  • Shell
    +关注

    关注

    1

    文章

    358

    浏览量

    22903
  • TCP通信
    +关注

    关注

    0

    文章

    145

    浏览量

    4138
收藏 人收藏

    评论

    相关推荐

    Linux系统的特点

    Linux是一套免费使用和自由传播的Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作
    发表于 01-16 08:55

    LinuxUnix操作系统的一种变种

    LinuxUnix操作系统的一种变种, Linux编写驱动程序的原理和思想完全类似于其他的
    发表于 04-02 16:19

    Linux系统的特点

    Linux是一套免费使用和自由传播的Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作
    发表于 08-01 09:52

    LinuxUnix有哪些不同之处?

    硬件平台上;Unix操作系统跨平台性能较弱,大多需与硬件配套使用。3. 可视化界面Linux除了进行命令行操作,还有窗体管理系统Unix
    发表于 03-02 18:51

    什么是UNIX操作系统

    @TOC嵌入式方向在校目前所学到的知识**欢迎使用Markdown编辑器Linux概述linux是一套免费使用和自由传播的UNIX操作系统
    发表于 11-04 07:29

    unixlinux的区别

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统
    发表于 11-14 10:08 6061次阅读
    <b class='flag-5'>unix</b>和<b class='flag-5'>linux</b>的区别

    怎样在Linux中列出或显示开放端口

    端口是16-位号(0到65535),以帮助识别LinuxUnix)操作系统上的给定应用程序或进程。端口
    的头像 发表于 07-26 08:45 5934次阅读
    怎样在<b class='flag-5'>Linux</b>中列出或显示开放<b class='flag-5'>端口</b>

    LinuxUNIX到底有关系和区别

    UNIXLinux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期
    的头像 发表于 02-18 11:56 3201次阅读
    <b class='flag-5'>Linux</b>与<b class='flag-5'>UNIX</b>到底有关系和区别

    linuxunix有什么区别

    UNIXLinux之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX诞生于20世纪60年代末,Windows诞生于20世纪80年代中期,
    发表于 06-08 09:12 1.2w次阅读

    Linux的发展历史和LinuxUnix有怎么样的关系

    这篇文章将介绍Linux的发展历史以及Linux与著名操作系统Unix之间的关系。不会深入探讨Linux的技术问题。
    的头像 发表于 06-27 09:00 2030次阅读

    UNIXLinux有什么区别联系

     UNIXLinux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中
    发表于 07-15 16:02 574次阅读

    UnixLinux、ios和Android四大系统的发展及关系

    Unix, 简化形成了LinuxLinux则是Android的内核,而苹果则是使用unix系统作为iOS和MacOS的内核。
    的头像 发表于 08-24 16:35 3976次阅读
    <b class='flag-5'>Unix</b>、<b class='flag-5'>Linux</b>、ios和Android四大<b class='flag-5'>系统</b>的发展及关系

    Linux是否已经杀死了它的祖先Unix

    商用 Unix 的销售量已经断崖式下跌。这种急剧下降的背后一定有什么原因。Linux 是否已经杀死了它的祖先,成为了一个完全可行的替代品,就像操作系统版的《天外魔花》(Invasion
    的头像 发表于 03-10 10:52 1688次阅读

    linux查看端口被进程占用的方法 Linux与windows的区别

    Linux的全称为GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和
    的头像 发表于 08-22 14:23 2096次阅读

    UnixLinux的差异

    摘要:程序员都知道,Linux 不是 Unix,不过二者之间确实存在关系,即 Linux 系统是从 Unix 派生出来的,而
    发表于 09-04 12:42 306次阅读