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命令

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

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

使用lsof和grep命令组合

结合lsof和grep命令,可以更灵活地查找特定进程或端口的信息,查找所有与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: netstat和ss命令有什么区别?

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

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

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

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

相关推荐

  • linux系统如何退出全屏显示

    Linux 系统中,通常按 F11 键可退出全屏显示,部分应用也

    2025年8月18日
    26900
  • Linux如何删除变量名?

    在Linux系统中,变量是shell脚本和命令行操作中存储数据的标识符,根据作用域和特性可分为本地变量、环境变量、只读变量、数组变量等,删除变量通常使用unset命令,但不同类型变量的删除方法和注意事项存在差异,本文将详细说明各类变量的删除操作及场景应用,本地变量的删除本地变量(普通变量)仅在当前shell进程……

    2025年9月17日
    21200
  • 多系统U盘如何制作Linux启动盘?

    制作多系统U盘(尤其是包含多个Linux发行版)的核心在于通过引导工具实现ISO镜像的动态加载,避免反复格式化U盘,同时支持UEFI和Legacy BIOS双启动模式,以下是详细步骤及注意事项,需准备容量≥16GB的U盘、各系统ISO镜像文件(如Ubuntu、Fedora、Arch Linux等)及专用工具,准……

    2025年9月9日
    38100
  • Linux环境下如何详细编译Java程序?步骤与方法有哪些?

    在Linux环境下进行Java程序的编译是Java开发的基础技能,掌握这一过程有助于理解Java代码从源文件到可执行程序的转化原理,本文将详细介绍Linux环境下编译Java程序的完整流程,包括JDK安装、环境变量配置、代码编写、编译命令使用、构建工具应用等内容,帮助读者系统掌握Java编译的核心操作,JDK的……

    2025年8月28日
    24500
  • linux下如何配置域名解析

    Linux下配置域名解析可通过修改/etc/resolv.conf文件,添加如`nameserver 8.

    2025年8月17日
    22100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信