0.前言
由于开发过程中经常遇到某些端口被占用,导致运行程序的时候还得很麻烦的修改程序的配置文件,为了节省这不必要的 麻烦还是直接把占用端口的程序找出来然后终止掉为好。在使用ubuntu中运行django项目的时候系统就总是显示8000端口被占用,而在github中大部分有关django的项目运行时默认使用与8000端口,这在多次测试项目的过程中都浪费了些许时间。后来经过测试才发现是snapd 这个程序占用了8000端口。
1.netstat
使用 netstat 命令
# 使用 netstat 命令
netstat -tulpn | grep 80
netstat -tulpn | grep 80
命令用于列出所有正在监听 80 端口的进程。
netstat
命令用于显示网络连接、网络接口和路由表信息。-t
选项用于仅显示 TCP 连接。-u
选项用于仅显示 UDP 连接。-l
选项用于仅显示正在监听的连接。-p
选项用于显示进程 ID 和进程名称。-n
选项用于以数字形式显示地址和端口号。grep 80
命令用于过滤输出,只显示包含字符串 "80" 的行。
因此,netstat -tulpn | grep 80
命令将显示所有正在监听 80 端口的 TCP 和 UDP 连接,并显示这些连接对应的进程 ID 和进程名称。
80 端口通常用于 HTTP 服务,因此该命令通常用于查找正在运行的 Web 服务器。
例如,如果在终端中运行 netstat -tulpn | grep 80
命令,可能会看到以下输出:
2.ss
# 使用 ss 命令
ss -tulpn | grep 6379
命令将显示所有正在监听 6379 端口的 TCP 和 UDP 连接,并显示这些连接对应的进程 ID 和进程名称。
6379 端口通常用于 Redis 服务,因此该命令通常用于查找正在运行的 Redis 服务器。
例如,如果在终端中运行 ss -tulpn | grep 6379
命令,可能会看到以下输出:
这表示有一个进程(进程 ID 为 415532)正在监听 6379 端口,该进程的名称是 redis-server
。这意味着有一台 Redis 服务器正在运行,并且正在监听来自 6379 端口的连接。
3.lsof
# 使用 lsof 命令
sudo lsof -i :6379
sudo lsof -i :6379
命令用于列出所有正在监听 6379 端口的进程。
sudo
命令用于以超级用户身份运行lsof
命令。lsof
命令用于显示打开的文件列表。-i
选项用于仅显示网络连接。:6379
指定要查找的端口号。
因此,sudo lsof -i :6379
命令将显示所有正在监听 6379 端口的进程及其打开的文件。
例如,如果在终端中运行 sudo lsof -i :6379
命令,可能会看到以下输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 1234 redis 4u IPv4 0xe4bb6cdf7cc0 0t0 TCP *:6379 (LISTEN)
这表示有一个进程(进程 ID 为 1234,用户名为 redis
)正在监听 6379 端口,该进程的名称是 redis-server
。
如果未找到任何结果,则表示没有进程正在监听 6379 端口。这可能意味着 Redis 服务器未运行,或者正在监听其他端口。
您还可以使用以下命令来检查 Redis 服务器是否正在运行:
redis-cli ping
如果 Redis 服务器正在运行,该命令将输出 "PONG"。