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插U盘真能自动识别吗?

    自动挂载(适用于主流桌面环境)物理连接将U盘插入USB接口(USB 2.0/3.0均可)系统通常会在5秒内完成以下动作:内核检测设备并加载驱动(usb-storage模块)桌面环境(GNOME/KDE等)自动挂载U盘到/media/用户名/磁盘标签目录在文件管理器侧边栏显示可访问的U盘图标访问数据通过文件管理器……

    2025年7月26日
    8500
  • 如何在使用IBus时添加输入法?

    在Linux系统中添加输入法需要根据您使用的桌面环境和发行版选择合适的方法,以下是详细的操作指南,涵盖主流发行版(Ubuntu/Debian、Fedora、Arch)和输入法框架(IBus、Fcitx),确保您能高效完成配置:选择输入法框架Linux常用两种输入法框架:IBus(推荐给GNOME用户)Fcitx……

    2025年7月26日
    10300
  • 如何实现外网安全登录Linux服务器?

    要通过外网登录Linux服务器,需完成服务器端配置、网络环境设置及客户端连接操作,同时需注重安全性,以下是详细步骤和注意事项:登录前的必要准备服务器具备公网IP或内网穿透能力若服务器直接连接互联网,需有固定公网IP(可通过curl ifconfig.me查看);若服务器在内网(如家庭、企业局域网),需通过路由器……

    2025年10月9日
    9700
  • Linux虚拟机如何修改IP地址?

    修改前的准备查看当前网络配置终端执行:ip addr show # 查看网卡名称(如ens33、eth0)ifconfig # 若未安装,运行`sudo apt install net-tools`(Debian/Ubuntu)记录关键信息目标IP地址、子网掩码(如255.255.0或/24)、网关(如168……

    2025年7月23日
    8300
  • 如何将Linux系统语言修改为英文?详细步骤与操作指南?

    在Linux系统中,将系统语言修改为英文是常见的操作,尤其适合需要使用英文软件、避免乱码或习惯英文界面的用户,不同Linux发行版的操作步骤略有差异,但主要分为图形界面修改和命令行修改两种方式,以下将针对主流发行版(如Ubuntu/Debian、CentOS/RHEL、Fedora)进行详细说明,图形界面修改……

    2025年10月4日
    5300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信