現(xiàn)象
用 docker 起了一個 MySQL 數(shù)據(jù)庫用作測試辅柴,環(huán)境起好了,遠(yuǎn)程連接時發(fā)現(xiàn)連接失敗怠噪。
MySQL container正常運行恐似,docker端口已暴露,兩臺服務(wù)器之間互相ping得通
錯誤排查
Step 1. Telnet
使用 telnet 測試遠(yuǎn)程ip及端口能否正常通信:
telnet 10.23.*.*? 3306
得到結(jié)果:
Trying 10.23.*.*? ...
telnet: connect to address 10.23.*.*: Operation timed out
telnet: Unable to connect to remote host
結(jié)論: 遠(yuǎn)程ip及端口通信失敗
Step 2. 檢查服務(wù)器本地防火墻
systemctl? status firewalld
得到結(jié)果傍念,防火墻已關(guān)閉矫夷。
若為防火墻原因,可關(guān)閉防火墻后嘗試:?systemctl? stop firewalld
Step 3. 檢查本地端口監(jiān)聽
使用netstat檢查本地端口監(jiān)聽情況
netstat -nlt? | grep 3306
得到結(jié)果:
端口已監(jiān)聽憋槐,使用IPv6
Step 4. 檢查本地Ipv6設(shè)置
檢查本地IPv6設(shè)置:
sysctl net.ipv6.conf.all.forwarding
得到結(jié)果:
net.ipv6.conf.all.forwarding = 0
修改 IPv6 設(shè)置:
sysctl net.ipv6.conf.all.forwarding=1
重啟docker服務(wù)
systemctl restart docker
Step 5. 重新測試連接
連接成功