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