在Linux系统中,查看程序占用端口可以通过以下几种方法:
netstat
netstat
是一个网络统计工具,可以显示网络连接、路由表、接口统计等。
sudo netstat -tuln | grep <端口号>
例如,查看占用80端口的程序:
sudo netstat -tuln | grep 80
输出示例:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
ss
ss
是 netstat
的替代品,性能更好,显示的信息更详细。
sudo ss -tuln | grep <端口号>
例如,查看占用80端口的程序:
sudo ss -tuln | grep 80
输出示例:
tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
lsof
lsof
可以列出当前系统打开的文件和使用这些文件的进程。
sudo lsof -i :<端口号>
例如,查看占用80端口的程序:
sudo lsof -i :80
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1234 root 8u IPv4 12345 0t0 TCP *:http (LISTEN)
原因:
解决方法:
sudo
提升权限。原因:输出信息包含大量技术细节,初学者可能难以理解。
解决方法:
lsof
直接显示进程信息。以下是一个完整的示例脚本,用于查看指定端口的占用情况并输出进程信息:
#!/bin/bash
PORT=$1
if [ -z "$PORT" ]; then
echo "Usage: $0 <port>"
exit 1
fi
echo "Checking port $PORT..."
sudo lsof -i :$PORT | awk 'NR==2 {print "Process ID:", $2, "Command:", $1}'
保存为 check_port.sh
,赋予执行权限并运行:
chmod +x check_port.sh
./check_port.sh 80
输出示例:
Checking port 80...
Process ID: 1234 Command: nginx
通过以上方法,您可以方便地查看Linux系统中程序占用的端口及其相关信息。
领取专属 10元无门槛券
手把手带您无忧上云