You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TCP IPv6服务端使用in6addr_any时同设备客户端无法连接如何解决

解决步骤

  1. 确认代码修改正确
    替换时完全注释或删除原代码2的inet_pton(AF_INET6, addrIp, &serv_addr->sin6_addr);行,再取消代码1serv_addr->sin6_addr = in6addr_any;的注释,避免两行同时生效导致in6addr_any的赋值被覆盖。
  2. 添加IPV6_V6ONLY socket选项
    在socket创建成功后、bind调用前,添加如下代码强制socket仅处理IPv6请求,解决操作系统默认双栈适配导致的监听异常:
int v6only = 1;
if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &v6only, sizeof(v6only)) < 0) {
    close(fd);
    return -1;
}
  1. 验证客户端连接配置
    服务端绑定in6addr_any后会监听本机所有IPv6地址的7770端口,客户端无需修改连接目标,继续使用原fc00::2a4:1ff:fe15:7031地址连接即可。
  2. 排查系统拦截规则
    服务端启动后执行ss -tulpn | grep 7770,确认输出存在:::7770的监听记录,同时检查本地防火墙是否放开了7770端口的IPv6入站权限。

内容的提问来源于stack exchange,提问作者guoyanzhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:42:03