在Linux系统中,查看运行中的端口可以通过多种命令来实现,以下是一些常用的方法:
netstat
命令netstat
是一个网络统计工具,可以显示网络连接、路由表、接口统计等。
netstat -tuln
-t
显示TCP端口。-u
显示UDP端口。-l
仅显示监听套接字。-n
显示数字形式的地址和端口号。ss
命令ss
是 netstat
的替代品,执行速度更快,效率更高。
ss -tuln
lsof
命令lsof
列出当前系统打开的文件,包括网络端口。
sudo lsof -i -P -n | grep LISTEN
-i
选择显示网络文件。-P
不将端口号转换为服务名。-n
不将IP地址转换为主机名。如果尝试启动服务时提示端口已被占用,可以使用以下命令查找占用端口的进程并结束它:
sudo lsof -i :<端口号>
sudo kill -9 <PID>
如果服务无法通过特定端口访问,检查防火墙设置是否允许该端口的流量。
sudo iptables -L -n
或者使用 firewalld
:
sudo firewall-cmd --list-all
确保所需的端口已添加到允许列表中。
以下是一个简单的Python脚本,用于检查特定端口是否开放:
import socket
def check_port(ip, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((ip, port))
sock.close()
return result == 0
if __name__ == "__main__":
ip = "127.0.0.1"
port = 80
if check_port(ip, port):
print(f"Port {port} is open on {ip}")
else:
print(f"Port {port} is closed on {ip}")
通过上述方法,可以有效地查看和管理Linux系统中的端口状态。
领取专属 10元无门槛券
手把手带您无忧上云