【问题标题】:How to bind socket to a specific network interface and to any ports and any IP on that interface如何将套接字绑定到特定的网络接口以及该接口上的任何端口和任何 IP
【发布时间】:2021-11-24 20:01:51
【问题描述】:

我的 RPI 板上连接了一个硬件,运行 Linux 发行版。该硬件及其关联的主机堆栈创建了一个名为 wpan0 的网络接口并为其分配了一些 IPV6 地址(我能够从同一网络中的远程设备 ping IPV6 地址)

现在,我想启用到该接口的数据通信到分配给该接口的任何 IPV6 IP。如何创建套接字并将其绑定到此接口?另外,我想监听这个接口上的任何端口。如何做到这一点?

【问题讨论】:

    标签: sockets network-programming ipv6 communication


    【解决方案1】:

    如何创建套接字取决于您使用的语言(您没有指定),但是当您想将套接字绑定到任何接口时,IPv4 方式是侦听 IP 0.0.0.0,IPv6 等价物是 ::/0,表示全零/0 位 CIDR 掩码。

    将所有端口重定向到一个不是代码问题,并且需要使用 IPTablesPrerouting(您可以编写一些代码将其附加到您的 conf 文件中)虽然),这是一个例子: https://serverfault.com/questions/616535/iptables-destination-ip-and-port

    【讨论】:

    • 只是一些友好的建议:0.0.0.0 的 IPv6 等价物就是 ::。 IPv4 默认路由 0.0.0.0/0 的 IPv6 等效项是 ::/0。 CIDR (Classless Inter-Domain Routing) 引用只与曾经有网络类的 IPv4 相关,但 IPv6 从来没有网络类,所以 CIDR 是多余的。
    猜你喜欢
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 2016-10-23
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多