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)
酷番叔酷番叔
上一篇 10小时前
下一篇 9小时前

相关推荐

  • Linux文件读取为空?秒级解决!

    文件本身为空确认文件大小使用 ls -l 或 stat 命令检查文件字节数:ls -l 文件名 # 查看文件大小(字节数)stat 文件名 # 详细文件信息若输出显示 size: 0,表明文件为空(如新创建未写入的文件),解决方案重新写入内容: echo "内容" > 文件名 # 覆盖……

    2025年6月16日
    2800
  • linux下如何重启网络连接网络连接不上

    Linux 中,可先尝试用 sudo systemctl restart NetworkManager 重启网络服务,若不行再检查网络配置

    1天前
    200
  • 电脑无法启动?bootx64.efi丢失该选哪个?

    基本原理Linux通过以下机制识别U盘:设备文件:插入U盘后,系统自动创建设备文件(如/dev/sdb),分区标识:启动U盘通常包含特殊分区标志(如EFI系统分区)或特定文件(如/efi/boot/bootx64.efi),文件系统:启动盘常用FAT32(用于UEFI)或ISO9660(光盘镜像格式),命令行识……

    2025年6月21日
    2400
  • 如何快速查看电脑磁盘分区?

    扩展逻辑卷组(VG)是Linux LVM存储管理中的核心操作,用于动态增加存储池容量,以下是严谨的操作流程及注意事项:核心概念物理卷(PV): 基础存储单元(如 /dev/sdb1, /dev/nvme0n1p2)卷组(VG): 由多个PV组成的存储池扩展本质: 将新PV添加到现有VG中操作前必备检查# 2……

    2025年7月31日
    1200
  • 怎样查询Linux内核信息?专业方法速览

    Linux系统中查询内核信息对系统管理、性能优化及故障排查至关重要,推荐使用uname命令、/proc/version文件等官方文档和社区验证的方法获取准确版本与配置数据。

    2025年6月19日
    2400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信