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打包R程序总失败?

    准备工作安装必要工具sudo apt-get install r-base-dev build-essential pandoc # Debian/Ubuntusudo yum install R-devel texlive # CentOS/RHEL确保安装最新版R(≥4.0.0)及开发工具,推荐安装devt……

    2025年7月25日
    4900
  • 电脑断网?可能是网卡被禁用了!

    在Linux系统中,禁用网卡是网络管理中的常见操作,常用于系统维护、安全加固或故障排查,以下是几种专业、可靠且经过验证的方法,适用于不同发行版(如Ubuntu、CentOS、Debian等),操作前请确保具备root权限(使用sudo),并谨慎执行,避免意外断开网络连接,安全防护:隔离存在风险的网络接口,资源优……

    2025年7月23日
    6900
  • 为什么电脑竟禁止开机激活?

    使用 ip 命令(推荐现代方法)ip 命令是 ifconfig 的替代工具,支持所有主流发行版(Ubuntu/CentOS/Debian等),操作步骤:查看网卡名称:ip link show输出示例:enp0s3: <BROADCAST,MULTICAST,UP>…(网卡名如 enp0s3),禁……

    2025年8月5日
    5500
  • 如何安全卸载Ubuntu双系统?

    卸载前的关键准备备份数据将Ubuntu分区内的重要文件备份至外部存储或云盘,使用工具:rsync(命令行)或图形化工具(如Deja Dup),准备应急工具创建Windows系统修复U盘(用于引导修复),下载Boot Repair Disk(备用引导修复工具),删除Ubuntu分区(以Windows+Ubuntu……

    2025年6月18日
    7400
  • Oracle数据库卡顿如何优化?

    *命令行登录:使用 SQLPlus***SQLPlus** 是Oracle官方命令行工具,适合服务器环境或远程连接,步骤 1:配置环境变量# 加载Oracle环境变量(根据实际安装路径调整)source /u01/app/oracle/product/19.0.0/dbhome_1/bin/oracle_env……

    2025年7月21日
    5900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信