看看應用程序是否只能bind在ipv6上面:
-
執行命令:sysctl net.ipv6.bindv6only
net.ipv6.bindv6only = 0
- 1
=0 ,可以看出並不是程序僅能bind ipv6上
看看ipv4是否能夠轉發:
-
執行命令:sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
- 1
=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
- 1
通過外網IP連接可視化工具都可以了。
總結:
訪問雲主機的時候是通過IPV4訪問的,但是我的主機沒有開啟IPV4的IP包轉發,導致我的Redis、Mongo因為bind在一個IPV6的地址上,所以接收不到任何IP包;
開啟IPV4轉發就OK了,有些服務器默認是不開啟的,需要自行配置;