我有一个服务器,当我检查netstat -tulpn
时,它有这样的规则:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
这一切都很好,因为我们使用的 mysql 数据库只需要本地访问,但现在我也想远程连接到它。我需要我的 netstat -tulpn
读起来像这样:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
我该如何更新这个?我一直在浏览nc
,但一切似乎都只谈论第一次设置监听。每当我尝试分配新规则时,我都会收到如下消息:
(base) ct@do-not-touch:/$ sudo nc -l 0.0.0.0 3306
nc: Address already in use
如何将 127.0.0.1:3306
规则更新为 0.0.0.0:3306
?我是不是完全偏离了基地?
最佳答案
您不能*让两个进程监听同一 IP 和端口。由于 0.0.0.0 意味着监听所有 IP,因此如果该端口上的任何 IP 绑定(bind)了任何内容,则无法绑定(bind)到它。停止监听 127.0.0.1:3306 的现有进程,然后您就可以开始监听 0.0.0.0:3306。
*:从技术上讲,确实存在一个名为 SO_REUSEPORT
的标志,并且在绑定(bind)后 fork 也可以让您执行此操作,但在您的情况下两者都没有用。
关于linux - 如何使用 netcat 更改监听规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56800475/