关于nacos注册的服务的ip异常导致网关路由失败的问题

发布于:2025-04-14 ⋅ 阅读:(20) ⋅ 点赞:(0)


关于nacos注册的服务的ip异常导致网关路由失败的问题

       一次使用nacos作为注册中的时候,发现nacos订阅列表里的服务的ip很奇怪,类似于0.0.1.1这种虚拟网卡的ip,对网关路由失败,服务间的调用不可达。

       原因是这里服务器可能有多个网卡,他默认的获取的网卡的ip有问题,可能不是我们要的网段或者是虚拟网卡。

相关处理方案为

修改bootstrap.yaml文件,我使用的版本在nacos的配置列表里修改无法生效;

方案一:手动指定服务注册的 IP 地址

在 bootstrap.yaml或 application.properties 文件中,显式指定服务注册到 Nacos 的 IP 地址。

spring:
  cloud:
    nacos:
      discovery:
        ip: 192.168.x.x  # 替换为你实际的 IP 地址

方法二:设置优先使用的网络段

在 bootstrap.yaml或 application.properties 文件中

spring:
  cloud:
    inetutils:
      preferred-networks: 192.168  # 替换为你实际的网络前缀

方法三:指定网络接口

在 bootstrap.yaml或 application.properties 文件中
如果你知道服务应该使用哪个网络接口(如 en0 或 Wi-Fi),可以直接指定网络接口名称。

spring:
  cloud:
    nacos:
      discovery:
        network-interface: en0  # 替换为你的实际网卡名称

方法四:忽略特定的网卡

在 bootstrap.yaml或 application.properties 文件中
如果你的系统中有虚拟网卡或其他不需要的网卡,可以通过配置忽略它们。
此配置会忽略匹配正则表达式的网卡,避免它们被选中。

spring:
  cloud:
    inetutils:
      ignored-interfaces:
        - docker0       # 忽略 Docker 虚拟网卡
        - vboxnet.*     # 忽略 VirtualBox 虚拟网卡

备注

如果以上方法无效,建议开启调试日志,查看 Nacos 客户端是如何选择 IP 地址的。

在 application.yml 中添加以下配置:

logging:
  level:
    com.alibaba.nacos: DEBUG
    org.springframework.cloud: DEBUG

网站公告

今日签到

点亮在社区的每一天
去签到