linux - 如何使用 netcat 更改监听规则?

标签 linux networking netcat

我有一个服务器,当我检查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/

相关文章:

c - 从 c 程序中确定 TASK_SIZE

c - aio_write 的错误

bash - Pop3 服务器中的 LIST 命令

macos - 如何在 Mac OS X 上读取和发送 UDP 数据包?

regex - Sed 不使用正则表达式

ruby-on-rails - ruby rails "target of repeat operator is not specified"

networking - 如何使用静默安装从 rhq-server 安装 rhq-agent?

sockets - TCP 事务花费的时间越来越长

networking - 如何将ipv6地址挂载到linux

linux - 通过 netcat/socat 连续发送文件