小编DWi*_*hes的帖子

如何在不设置 SO_REUSEPORT 的情况下使 nc 监听端口

我想让一个nc命令监听 TCP 端口,所以我这样做了:

nc -lv 8888
Run Code Online (Sandbox Code Playgroud)

然后在另一个控制台中,我检查尝试侦听同一端口的另一个程序是否会收到某种Address already in use类型的错误,因此我再次发出相同的命令:

nc -lv 8888
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是第二个命令也成功了。研究两个程序如何在同一个 TCP 端口上侦听,我发现如果使用选项打开侦听套接字SO_REUSEPORT,这是可能的,所以我 nc正在使用它。

如何禁止nc其他程序使用其同一端口?我希望它侦听端口 8888 并确保这是唯一侦听该端口的程序。

到目前为止,我已经能够通过这样的介绍来完成我想做的socat事情nc

socat TCP-LISTEN:8888,fork TCP:localhost:4444
nc -lv 4444
Run Code Online (Sandbox Code Playgroud)

因为socat不允许任何其他程序侦听同一端口。

但仅用 就可以实现这一点吗nc

port tcpip netcat socat

6
推荐指数
1
解决办法
8180
查看次数

标签 统计

netcat ×1

port ×1

socat ×1

tcpip ×1