linux如何查端口号

Linux 中,可使用 netstat -tnlp 或 `ss -t

Linux系统中,查看端口号是一个常见的操作,特别是在网络配置、服务器管理和故障排查时,以下是几种常用的方法来查看Linux系统中的端口号。

使用netstat命令

netstat是一个网络相关的命令,可以用来显示网络连接、路由表、接口统计等信息,要查看当前系统上打开的端口,可以使用以下命令:

netstat -tuln
  • -t:显示TCP端口
  • -u:显示UDP端口
  • -l:只显示监听状态的端口
  • -n:以数字形式显示地址和端口号

示例输出:

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
udp        0      0 127.0.0.1:123            0.0.0.0:*                          

使用ss命令

ssnetstat的替代工具,功能更强大,性能更好,使用以下命令可以查看端口信息:

ss -tuln

示例输出:

State      Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN     0      128                    *:22                     *:*                  
LISTEN     0      100                    *:80                     *:*                  
LISTEN     0      100                    *:443                    *:*                  

使用lsof命令

lsof(List Open Files)可以显示系统中打开的文件,包括网络文件,要查看某个进程打开的端口,可以使用以下命令:

lsof -i :PORT_NUMBER

查看端口80的详细信息:

lsof -i :80

示例输出:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2  1234 root   6u  IPv4  56789      0t0  TCP *:80 (LISTEN)

使用nmap命令

nmap是一个网络扫描工具,可以用来扫描指定主机上的开放端口,使用以下命令可以扫描本地主机的开放端口:

nmap localhost

示例输出:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-01 12:00 PDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00001s latency).
Not shown: 998 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
443/tcp   open  https
631/tcp   open  ipp

使用iptables命令

iptables是Linux内核中的防火墙工具,可以用来查看和管理网络规则,要查看当前的防火墙规则,可以使用以下命令:

iptables -L -n -v

示例输出:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         
0     0     ACCEPT   tcp  - any    any     anywhere             192.168.1.0/24       tcp dpt:22

使用systemctl命令

对于使用systemd的系统,可以查看服务的状态来获取端口信息,查看Apache服务的状态:

systemctl status apache2

示例输出:

● apache2.service The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2023-10-01 12:00:00 PDT; 1h ago
     Docs: https://httpd.apache.org/docs/2.4/
 Main PID: 1234 (apache2)
    Tasks: 5 (limit: 4915)
   Memory: 10.5M
   CGroup: /system.slice/apache2.service
           ├─1234 /usr/sbin/apache2 -k start
           ├─1235 /usr/sbin/apache2 -k start
           └─1236 /usr/sbin/apache2 -k start

使用firewalld命令

对于使用firewalld的系统,可以查看防火墙规则来获取端口信息,查看当前防火墙的开放端口:

firewall-cmd --list-all

示例输出:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client
  ports: 80/tcp 443/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

使用ifconfig命令

虽然ifconfig命令主要用于查看网络接口信息,但结合grep命令也可以查看端口信息,查看所有网络接口的IP地址:

ifconfig | grep inet

示例输出:

inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::1234:5678:9abc:def0 prefixlen 64 scopeid 0x20<link>

使用tcpdump命令

tcpdump是一个网络抓包工具,可以用来捕获和分析网络数据包,要查看某个端口的网络流量,可以使用以下命令:

tcpdump -i eth0 port 80

示例输出:

12:00:00.000000 IP 192.168.1.100.54321 > 192.168.1.1.80: Flags [S], seq 1234567890, win 29200, options {mss 1460,sackOK,timestamp 123456789 123456789}, length 0
12:00:00.123456 IP 192.168.1.1.80 > 192.168.1.100.54321: Flags [S.], seq 987654321, ack 1234567890, win 29200, options {mss 1460,sackOK,timestamp 987654321 123456789}, length 0

使用lsofgrep命令组合

结合lsofgrep命令,可以更灵活地查找特定进程或端口的信息,查找所有与Apache相关的端口:

lsof -i | grep apache2

示例输出:

apache2   1234 root   6u  IPv4  56789      0t0  TCP *:80 (LISTEN)
apache2   1234 root   7u  IPv4  56790      0t0  TCP 127.0.0.1:8080 -> 127.0.0.1:80 (ESTABLISHED)

在Linux系统中,查看端口号的方法多种多样,每种方法都有其特定的用途和优势,根据实际需求选择合适的命令,可以有效地管理和监控网络连接,以下是这些方法的简要小编总结:

命令 用途 示例
netstat 显示网络连接、路由表、接口统计等信息 netstat -tuln
ss netstat的替代工具,功能更强大 ss -tuln
lsof 显示系统中打开的文件,包括网络文件 lsof -i :80
nmap 网络扫描工具,扫描指定主机上的开放端口 nmap localhost
iptables 查看和管理网络规则 iptables -L -n -v
systemctl 查看服务的状态 systemctl status apache2
firewalld 查看防火墙规则 firewall-cmd --list-all
ifconfig 查看网络接口信息 ifconfig | grep inet
tcpdump 捕获和分析网络数据包 tcpdump -i eth0 port 80
lsof + grep 灵活查找特定进程或端口的信息 lsof -i | grep apache2

通过以上方法,您可以全面了解Linux系统中的端口使用情况,从而更好地进行网络配置和故障排查。

FAQs

Q1: 如何查看某个特定进程占用的端口?

A1: 可以使用lsof命令结合grep来查找特定进程占用的端口,要查看Apache进程占用的端口,可以使用以下命令:

lsof -i | grep apache2

Q2: netstatss命令有什么区别?

A2: ssnetstat的替代工具,功能更强大,性能更好。ss命令可以更快地显示网络连接信息,并且支持更多的选项和参数。

小伙伴们,上文介绍linux如何查端口号的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/11445.html

(0)
酷番叔酷番叔
上一篇 2025年8月16日 14:48
下一篇 2025年8月16日 14:55

相关推荐

  • Linux操作系统中如何正确启动SVN服务并确保其正常运行?

    在Linux系统中启动SVN服务需要经过安装、配置仓库、启动服务及设置开机自启等步骤,以下是详细操作流程:安装SVN服务首先需要安装Subversion(SVN)服务端软件,不同Linux发行版的安装命令不同:| 发行版 | 安装命令……

    2025年9月20日
    8300
  • Linux集群如何停止jps进程?

    在Linux集群环境中,jps(Java Virtual Machine Process Status Tool)是常用的Java进程查看工具,用于列出当前节点或远程节点的Java进程ID(PID)及主类名,当需要停止由jps查看到的Java进程时,需结合集群架构、进程管理方式及业务需求选择合适方法,避免直接强……

    2025年10月2日
    6600
  • Linux如何查看系统配置文件?常用命令与方法详解

    Linux系统中,配置文件是系统运行的核心,记录了用户账户、网络设置、服务启动、硬件参数等关键信息,掌握查看系统配置文件的方法,是管理和维护Linux系统的基础能力,本文将详细介绍Linux系统中常见配置文件的存储位置、查看方式及相关工具使用,帮助用户高效获取系统配置信息,常见系统配置文件及存储位置Linux系……

    2025年9月11日
    7900
  • Linux如何查看TCP连接状态?

    在Linux系统中,监控和管理TCP连接是网络运维和故障排查的核心技能之一,TCP作为传输层最重要的协议之一,其连接状态直接反映了网络服务的健康度、性能瓶颈以及潜在的安全风险,本文将详细介绍Linux系统中查看TCP连接的多种方法,包括传统工具netstat、现代高效工具ss、进程级查看工具lsof以及内核接口……

    2025年9月19日
    7600
  • 项目如何在linux上运行

    先安装必要依赖,配置环境变量,将项目文件放置合适位置,然后

    2025年8月18日
    8400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信