EasyConnect分配的虚拟内网ip在本机上不能访问

本文讲述了作者在微服务项目中遇到的问题,即本地开发时A、B模块间通信失败,通过排查发现EasyConnect内网IP导致的路由问题。文章介绍了使用pf进行IP重写的方法,并分享了更简便的在MacOS上通过alias解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

最近参与了一个微服务相关的项目,nacos注册中心在学校内网的服务器上,因此为了在本地调试的时候将服务注册上去,配置了spring.cloud.inetutils.preferred-networks为内网ip的前缀。
然而开发过程中遇到了一个问题,在本地启动两个模块后,A模块的请求无法到达B模块,显示连接超时。经过排列组合后发现,A、B都在服务器上,A或B中有一个在服务器上,都可以正常调用。只有A和B两个模块都在本地时不能正常调用。
最终排查发现通过EasyConnect分配的内网ip不能访问到本机。
因为平时不在学校里,需要连接服务器时会使用EasyConnect进入内网进行开发。EasyConnect登录后会获取到一个内网ip。正常情况下通过本机的ip,如127.0.0.1, 192.168.1.100, 30.10.70.150 等等都可以访问到本机的服务,然而在本机访问EasyConnect给本机分配的内网ip就会没有路由,这就造成了,服务器通过我的内网ip可以访问到本地的服务,本机通过内网ip反而访问不到服务的问题。

解决方法

虽然花了很长时间也没搞明白其中的原理,但是想解决问题还是有办法的。

  1. ip重写
    在macOS上通过pf将一个ip的访问redirect到另一个上。但是这个方法我看了看很麻烦,没有继续尝试。
  2. 给loopback interface增加一个alias
    将虚拟内网ip直接添加到环回接口上,就可以通过这个ip访问到本机了。
    sudo ifconfig lo0 alias 10.10.10.10
    
    如果需要清除
    sudo ifconfig lo0 -alias 10.10.10.10
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值