解决由于内外网导致的无法访问dubbo上面的服务
2018-04-18 15:16
288 查看
内网: 172.21.16.8
外网:140.143.38.68
在服务器部署了dubbo服务和 一个提供方
启动后dubbo看到的提供方的ip是172.21.16.8:20880
这样消费服务从其他服务器访问该dubbo服务,就无法调用,由于172.21.16.8是内网。
这是由于dubbo绑定的本机ip
InetAddress.anyLocalAddress()一般就是0.0.0.0/0.0.0.0,如果我们有两块网卡,一块内网,一块外网,那么都能访问这个socket,这通常是不安全的。
InetAddress.getLocalHost().getHostAddress()取回的 结果是 hostname 这个结果,结果拿到的就是内网172.21.16.8
要解决这个问题需要在/etc/hosts 加入外网ip
这样hostname 取到的结果就是外网IP
外网:140.143.38.68
在服务器部署了dubbo服务和 一个提供方
启动后dubbo看到的提供方的ip是172.21.16.8:20880
这样消费服务从其他服务器访问该dubbo服务,就无法调用,由于172.21.16.8是内网。
这是由于dubbo绑定的本机ip
InetSocketAddress address = new InetSocketAddress(port); Channel serverChannel = bootstrap.bind(address); public InetSocketAddress(int port) { this(InetAddress.anyLocalAddress(), port); }
InetAddress.anyLocalAddress()一般就是0.0.0.0/0.0.0.0,如果我们有两块网卡,一块内网,一块外网,那么都能访问这个socket,这通常是不安全的。
InetAddress.getLocalHost().getHostAddress()取回的 结果是 hostname 这个结果,结果拿到的就是内网172.21.16.8
要解决这个问题需要在/etc/hosts 加入外网ip
140.143.38.68 test 127.0.0.1 localhost ::1 localhost localhost.localdomain
这样hostname 取到的结果就是外网IP
相关文章推荐
- 如何解决由于服务过多或异常导致ArcGIS Server 无法正常运行的问题
- 解决由于安装了arcgis9.3导致windows modules installer服务无法启动的问题
- 由于NFS服务没有启动,导致XenServer 6.5无法连接NAS存储问题的解决方法
- 使用dubbo注解@Service注册服务后使用aop或者申明式事物导致无法注册的问题解决办法
- 解决自定义AuthorizeAttribute实现授权管理,AllowAnonymous属性失效导致无法匿名访问控制器的问题
- 1069错误(由于登录失败而无法启动服务)解决方法
- 解决由于RDPDD.dll failed to load错误事件而导致无法连接远程桌面的方法
- 解决RPM安装的MySQL大小写敏感导致的Tomcat后台服务无法启动问题
- Linux inode 索引节点已满导致服务无法开启的详细解决方法
- SQL Server 2008 报错 1069错误(由于登录失败而无法启动服务)解决方法
- 关于Windows installer 服务无法访问 等一些问题解决亲体验
- 文档库创建的子文件夹的URL显示为 http://[机器名]/.... 导致无法正常访问的问题解决办法
- 由于安了旧软件改动了MDAC导致vs 无法访问 Access
- Workstation服务无法启动导致无法访问文件服务器
- ubuntu14.04 apt-get由于源的问题导致无法下载问题解决
- 解决外部机器通过VM内ubuntu IP 无法访问vm内web服务的问题
- SQL2000 由于登录失败而无法启动服务 1069错误解决方法
- 解决无法访问ajax.googleapis.com导致无法访问stackoverflow.com的问题
- 由于DC的Net Logon服务被停止,导致客户端无法加入域
- win7下 Windows Process Activation Service 服务导致的 iis无法启动的解决方法