解决无法访问服务器IPV6地址的问题
解决无法访问服务器IPV6地址的问题场景:使用Redis、Mongo的可视化工具,通过服务器公网IP进行连接。每次请求都连接超时。架构:服务器:CentOS 7Redis、Mongo 创建在Docker容器中;解决连接不上问题:查看服务器的端口:执行:netstat -ntlp可以看出 这两个端口 都是绑定在ipv6地址上面看看应用程序是否只能bind在i...
·
解决无法访问服务器IPV6地址的问题
场景:
- 使用Redis、Mongo的可视化工具,通过服务器公网IP进行连接。每次请求都连接超时。
架构:
- 服务器:CentOS 7
- Redis、Mongo 创建在Docker容器中;
解决连接不上问题:
查看服务器的端口:
-
执行:netstat -ntlp
可以看出 这两个端口 都是绑定在ipv6地址上面
看看应用程序是否只能bind在ipv6上面:
-
执行命令:sysctl net.ipv6.bindv6only
net.ipv6.bindv6only = 0
=0 ,可以看出并不是程序仅能bind ipv6上
看看ipv4是否能够转发:
-
执行命令:sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
=0,可以看出ipv4不能够进行转发
在阿里云后台上,安全组织列表,出、入方向都是ipv4地址段访问;
找到了问题,将ipv4转发包进行配置就可以了。
解决方案:
1.修改:vim /etc/sysctl.conf 文件
2.将net.ipv4.ip_forward=1添加到sysctl.conf文件中
3.然后重启网络:
- 执行命令:systemctl restart network
4.这样再次执行:sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
通过外网IP连接可视化工具都可以了。
总结:
访问云主机的时候是通过IPV4访问的,但是我的主机没有开启IPV4的IP包转发,导致我的Redis、Mongo因为bind在一个IPV6的地址上,所以接收不到任何IP包;
开启IPV4转发就OK了,有些服务器默认是不开启的,需要自行配置;
更多推荐
已为社区贡献1条内容
所有评论(0)