首页 > 解决方案 > 为什么grpc把所有的ipv4地址都转换成ipv6来启动一个tcp服务器

问题描述

根据原生GRPC实现,这里:https ://github.com/grpc/grpc/blob/master/src/core/lib/iomgr/tcp_server_custom.cc#L381 在这里打开socket之前所有ipv4地址都改成ipv6 : https ://github.com/grpc/grpc/blob/master/src/core/lib/iomgr/tcp_uv.cc#L191

至少在 CentOS 上,这会导致 grpc 服务器无法开始监听。

谁能澄清一下为什么要进行这种转换,为什么不直接将所有 ipv4 和 ipv6 地址转发到套接字并让它们由其原始地址管理?现在我正在考虑将这个转换注释掉,因为我需要在没有 ipv6 的环境中使用这个服务器,但我不确定我是否会通过这样做来破坏任何东西......也许对我们的事实存在一些隐藏的依赖总是监听 ipv6 地址?

标签: servergrpcipv6

解决方案


推荐阅读