问题描述
查看本地 ip 信息:

有多个网卡,其中 172.10.31.80 为 VPN 创建的虚拟网卡,服务端可以连接此 IP,但 NACOS 上注册的是无线网卡的 IP 192.168.0.47。
分析问题
问题出在当本机有多个 IP 时(虚拟网卡),微服务启动时使用了错误的 IP 注册到 NACOS 上,因此 Gateway 使用了该错误 IP 请求本地微服务,因此无法连接。
解决问题
可以通过配置让微服务使用指定的 IP 注册到 NACOS:
spring.cloud.nacos.discovery.ip=192.168.1.100
但缺点是如果该 IP 是动态分配的,每次都需要修改此配置。
如果服务器所在的网段比较特殊,比如这里的 172.10.xx,可以配置网段过滤,使用特殊网段的 IP 注册到 NACOS:
spring.cloud.inetutils.preferred-networks=172.10
当然,如果不方便直接修改配置文件,也可以在 IDE 的启动配置上添加:

这样配置后,只要本机动态生成的 IP 在该网段,就会正确使用该 IP 注册到 NACOS。
The End.

文章评论