如何使用 netcat 更改监听规则?
How do I change a listening rule with 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 的内容,则无法绑定到它。停止监听 127.0.0.1:3306 的现有进程,然后你就可以开始监听 0.0.0.0:3306.
*:从技术上讲,一个名为 SO_REUSEPORT
的标志确实存在,绑定后分叉也可以让您这样做,但在您的情况下都没有用。
好吧,如果你以后 运行 进入这个,你已经终止了正在使用任何端口的进程,但首先你必须知道那个端口。
sudo lsof -t -i:3306
然后kill
随便id。
当我检查 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 的内容,则无法绑定到它。停止监听 127.0.0.1:3306 的现有进程,然后你就可以开始监听 0.0.0.0:3306.
*:从技术上讲,一个名为 SO_REUSEPORT
的标志确实存在,绑定后分叉也可以让您这样做,但在您的情况下都没有用。
好吧,如果你以后 运行 进入这个,你已经终止了正在使用任何端口的进程,但首先你必须知道那个端口。
sudo lsof -t -i:3306
然后kill
随便id。