【问题标题】:If I bind a socket listener to a remote IP, can I still connect to the socket from localhost?如果我将套接字侦听器绑定到远程 IP,我仍然可以从 localhost 连接到套接字吗?
【发布时间】:2021-11-11 19:22:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: linux sockets


    【解决方案1】:

    不要使用远程 IP 地址呼叫bind。那不会做你认为它会做的事情。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 2011-02-24
      • 1970-01-01
      • 2021-12-15
      • 2016-11-19
      • 2016-08-05
      相关资源
      最近更新 更多