ubuntu18.04安裝docker后,無法訪問公司內網的原因及解決方案


問題描述 

最近周一上班時,突然連不上公司內網,想到周末搗鼓過docker,判斷很有可能是安裝了docker引起的。我的系統是 ubuntu18.04, docker的版本如下:

通過 sudo ifconfig發現多了一個docker0的網卡,使用sudo ifconfig docker0 down 暫時關閉docker0的虛擬網卡后,果然又能訪問內網了。但這個docker0為什么會影響我連公司網呢?

  查閱了docker的官方文檔及SO上的問答,我找到了原因。

  當 Docker server 啟動時,會在主機上創建一個名為 docker0 的虛擬網橋,如上圖所示,通過宿主機上veth*的虛擬網卡和容器eth0網卡相連,由此實現容器和外部的網絡通信。容器的ip和mac由宿主機生成,而默認docker0 默認的容器ip為172.17.0.1/16 ,問題就在這里。我們公司的DNS地址巧好也在 172.17.*.*這個網段,而被誤認為是容器內部ip,從而通過docker0嘗試訪問容器,自然是訪問不到的。

解決方案的話就是要區別容器ip和DNS地址,可以通過在 /etc/docker/daemon.json中添加如下配置

{
"bip": "172.31.0.1/16"
}

 然后重啟就ok了!

 

參考:https://superuser.com/questions/1336567/installing-docker-ce-in-ubuntu-18-04-breaks-internet-connectivity-of-host

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM