Python可快速建测试端口:推荐用python3 -m http.server 9999启动HTTP服务,或用socket写脚本监听TCP端口,绑定0.0.0.0支持外网访问,并用ss/lsof/nc验证监听状态。

用 Python 快速建一个测试端口,核心就是启动一个简单的 TCP 服务监听指定端口,不依赖额外框架,几行代码就能跑起来。关键不是“检查”端口是否被占用,而是“主动开启并占住它”,方便你验证防火墙、网络连通性或客户端连接逻辑。
一行命令快速起服务(推荐)
Linux 自带的 python -m http.server 最适合临时测试:
- 监听 8000 端口:
python3 -m http.server 8000 - 监听其他端口(如 9999):
python3 -m http.server 9999 - 绑定到所有网卡(默认只绑 127.0.0.1):
python3 -m http.server 9999 --bind 0.0.0.0:9999
启动后,本机或局域网其他机器访问 http://<em>你的IP</em>:9999 就能看到目录列表,说明端口已成功打开并可被外部访问。
自定义 TCP 监听脚本(更灵活)
如果不需要 HTTP 协议,只想纯粹“占住端口”并看到连接日志,用 socket 写个最小化服务:
立即学习“Python免费学习笔记(深入)”;
快速生成专业的 Python 脚本和应用代码。一键创建完整项目结构,支持CLI、API、爬虫、Bot、Django等多种项目类型,包含完整的项目结构、配置文件、依赖管理、测试、README和文档。
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('0.0.0.0', 9999))
s.listen(1)
print("Listening on :9999...")
conn, addr = s.accept()
print(f"Connected from {addr}")
conn.close()
s.close()
保存为 test_port.py,运行 python3 test_port.py。此时端口 9999 处于监听状态;用 telnet your_ip 9999 或 nc -zv your_ip 9999 就能验证是否通。
验证端口是否真在监听
别只信 Python 脚本没报错——用系统命令交叉确认:
- 查看端口状态:
ss -tlnp | grep ':9999'(推荐,比 netstat 更快) - 检查进程归属:
lsof -i :9999(需安装 lsof) - 从另一台机器测试连通:
nc -zv 192.168.x.x 9999
注意:Python 启动的服务默认只监听 127.0.0.1,若要外网访问,bind 地址必须写 '0.0.0.0' 或具体 IP,且确保系统防火墙放行该端口(如 sudo firewall-cmd --add-port=9999/tcp --permanent)。
进阶:后台运行 + 自动清理
临时测试时不想占终端?加个 & 后台运行,再配合 trap 确保退出时释放端口:
#!/bin/bash
python3 -c "
import socket, time
s = socket.socket()
s.bind(('0.0.0.0', 9999))
s.listen(1)
print('Port 9999 ready. Press Ctrl+C to stop.')
try:
while True: time.sleep(3600)
except KeyboardInterrupt:
s.close()
" &
echo $! > /tmp/test_port.pid
停止时执行 kill $(cat /tmp/test_port.pid) 即可干净释放端口。


















