跳至内容
Linux/POSIX 错误错误
EADDRINUSE

EADDRINUSE — 地址已被使用

指定的网络地址和端口组合已被另一个套接字绑定。

linuxmacosunix

导致此错误的原因

另一个进程已在请求的端口上监听。在重启服务器时常见,因为前一个套接字可能处于 TIME_WAIT 状态。

如何修复

使用 SO_REUSEADDR 套接字选项允许绑定到 TIME_WAIT 状态的地址。使用 ss -tlnp 或 lsof -i :PORT 查找占用该端口的进程。

示例

# Find process using port 3000
lsof -i :3000
# Or with ss
ss -tlnp | grep 3000
官方文档

相关错误代码