不同系统查看软件占用端口的方式

 2025-08-12 01:41:25    2152  

Windows

使用命令提示符(CMD)

打开命令提示符:

按 Win + R 键打开“运行”对话框,输入 cmd 并按回车。为了执行某些命令,您可能需要以管理员身份运行命令提示符。可以通过右键点击“开始”按钮并选择“命令提示符(管理员)”或“Windows PowerShell(管理员)”。

执行 netstat 命令:

输入以下命令并按回车键:

netstat -ano

解释输出:

Proto: 协议类型(TCP 或 UDP)Local Address: 本地地址和端口(格式为 IP:端口号)。如果显示为 0.0.0.0:端口号 或 *:端口号,则表示该端口在所有可用的IP地址上监听。Foreign Address: 远程地址和端口(对于监听状态,这通常显示为 0.0.0.0:0 或 *:端口号)State: 连接状态(例如 LISTENING, ESTABLISHED 等)PID: 进程ID

查找特定端口:

如果你知道要查找的端口号,可以在命令后添加 | findstr :<端口号> 来过滤输出。例如,查找端口8080的使用情况:

netstat -ano | findstr :8080

确定进程名称:

一旦你有了PID,你可以通过任务管理器来查找对应的进程名称。或者直接在命令行中使用 tasklist 命令加上 /FI "PID eq " 参数,如:

tasklist /FI "PID eq 1234"

使用资源监视器:

打开资源监视器(可以通过任务管理器的性能标签下的链接打开),在网络选项卡下查看网络活动。资源监视器不仅显示了当前的网络连接,还提供了与这些连接相关的进程和服务的信息。

使用PowerShell:

PowerShell提供了更强大的命令,比如 Get-NetTCPConnection 和 Get-Process。可以组合使用这两个命令来获取更详细的输出。例如:

Get-NetTCPConnection | Where-Object State -eq Listen | Select-Object LocalPort, OwningProcess | ForEach-Object { $_; Get-Process -Id $_.OwningProcess }

高级技巧

使用防火墙规则:

您可以利用Windows Defender Firewall创建入站和出站规则来限制特定端口的访问。通过控制面板或Windows设置中的防火墙和网络保护选项配置规则。

日志文件分析:

某些应用程序会在日志文件中记录它们使用的端口信息。您可以检查应用程序的日志文件以了解其行为。

服务管理:

使用 sc query 命令查询服务状态,结合 sc config 修改服务启动参数。例如,更改服务启动类型或路径。macOS

使用终端

打开终端:

打开Finder,前往“应用程序 > 实用工具”,然后双击打开“终端”。

使用 lsof:

可以使用以下命令来查看监听的端口及相应的程序:

sudo lsof -i -P | grep LISTEN

若要查找特定端口,可以将上述命令与 grep 结合使用,如:

sudo lsof -i :8080

解释输出

输出包含多个字段,其中重要的是:

COMMAND: 启动服务的命令名PID: 进程IDUSER: 运行该进程的用户FD: 文件描述符(通常是 IPv4 或 IPv6)TYPE: 文件类型(SOCK代表套接字)DEVICE: 设备号SIZE/OFF: 文件大小或偏移量NODE: 节点号NAME: 网络地址(格式为 IP:端口号)高级技巧

使用 pfctl 配置防火墙:

macOS自带了一个名为 pf 的包过滤防火墙,可以通过 pfctl 命令进行配置。例如,加载自定义规则集:

sudo pfctl -f /etc/pf.conf

系统偏好设置中的安全性与隐私:

在“系统偏好设置 > 安全性与隐私 > 防火墙”中,您可以开启或关闭防火墙,并配置允许的应用程序和服务。

日志文件分析:

macOS的日志系统已经迁移到统一的日志系统(Unified Logging System),可以通过 log 命令查看日志。例如,查看特定应用程序的日志:

log show --predicate 'process == "YourApp"' --info

Linux

使用终端

打开终端:

根据您的桌面环境,可以通过快捷键或菜单打开终端。

使用 ss, netstat 或 lsof:

对于 ss,可以使用以下命令来查看监听的端口及相应的程序:

sudo ss -tulnpe

对于 netstat,可以使用类似下面的命令:

sudo netstat -tulnpe

对于 lsof,可以使用以下命令:

sudo lsof -i -P -n | grep LISTEN

查找特定端口:

可以结合 grep 使用这些命令来查找特定端口的信息,例如:

sudo ss -tnlp | grep ':8080'

使用 systemctl 查看服务状态:

如果你知道占用端口的服务名称,可以使用 systemctl 查看服务状态,并且启用/禁用它。例如:

sudo systemctl status

高级技巧

防火墙配置:

Linux有不同的防火墙解决方案,如 iptables 或 firewalld。例如,使用 iptables 添加一条规则来阻止对特定端口的访问:

sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

使用 firewalld 添加永久规则:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

sudo firewall-cmd --reload

日志文件分析:

许多Linux发行版使用 rsyslog 或 journalctl 来收集系统日志。例如,使用 journalctl 查看特定服务的日志:

sudo journalctl -u

cgroup 和 namespace:

对于容器化环境(如 Docker),可以使用 cgroups 和 namespaces 来隔离资源和网络。您可以使用 docker ps 和 docker stats 命令来监控正在运行的容器及其资源使用情况。注意事项

权限问题:

大多数涉及网络接口和进程信息的命令都需要root权限。因此,在执行上述命令时,您可能需要在命令前加上 sudo(对于Linux和macOS),或者以管理员身份运行命令提示符/PowerShell(对于Windows)。

安全考虑:

在停止关键系统服务或修改防火墙规则之前,请确保了解所做的更改可能带来的影响,并备份现有配置。

解析非标准端口:

有些应用程序可能会使用非标准端口。在这种情况下,除了常见的 netstat 和 lsof 命令外,还可以尝试使用 tcpdump 或 Wireshark 这样的网络抓包工具来捕获流量,从而帮助识别未知端口上的通信。


add是什么意思
黑色sinopay双币银联卡 黑色sinopay如何使用