現象
用 docker 起了一個 MySQL 資料庫用作測試,環境起好了,遠端連接配接時發現連接配接失敗。
MySQL container正常運作,docker端口已暴露,兩台伺服器之間互相ping得通
錯誤排查
Step 1. Telnet
使用 telnet 測試遠端ip及端口能否正常通信:telnet 10.23.*.* 3306
得到結果:Trying 10.23.*.* ...
telnet: connect to address 10.23.*.*: Operation timed out
telnet: Unable to connect to remote host
結論: 遠端ip及端口通信失敗
Step 2. 檢查伺服器本地防火牆systemctl status firewalld
得到結果,防火牆已關閉。
若為防火牆原因,可關閉防火牆後嘗試: systemctl stop firewalld
Step 3. 檢查本地端口監聽
使用netstat檢查本地端口監聽情況netstat -nlt | grep 3306
得到結果:
端口已監聽,使用IPv6
Step 4. 檢查本地Ipv6設定
檢查本地IPv6設定:sysctl net.ipv6.conf.all.forwarding
得到結果:net.ipv6.conf.all.forwarding = 0
修改 IPv6 設定:sysctl net.ipv6.conf.all.forwarding=1
重新開機docker服務systemctl restart docker
Step 5. 重新測試連接配接
連接配接成功