如果我将套接字侦听器绑定到远程 IP,我仍然可以从本地主机连接到套接字吗?

If I bind a socket listener to a remote IP, can I still connect to the socket from localhost?

通常情况下,使用中配置的 IPC 仅限于 localhost (127.0.01),但出现了用户要求 IPC 连接从远程 IP 额外工作的情况。

如果在对 bind(2) 的调用中,我使用远程 IP 地址填充相关结构,我是否仍然能够让其他本地进程连接到该端口(从本地主机)?

我不确定这是否与 How to bind a socket to multiple interfaces

相同

不要使用远程 IP 地址呼叫bind。那不会像你认为的那样。

相反,您需要绑定到 INADDR_ANY,然后丢弃任何不是来自允许的 IP 地址的传入连接。

一个更好的方法是也有一个防火墙规则 (iptables),它会阻止不是来自批准的远程 IP 列表的到您的侦听端口的传入连接。

当您 accept 连接时,检查从该调用返回的远程地址。如果不是来自 127.0.0.1 或允许的远程 IP 地址,请关闭套接字。

理想情况下,您还拥有类似 SSL 的安全验证、身份验证令牌验证或 IP 地址以外的其他东西来验证连接到您的节点的真实性。