最近公司服務器網絡出現(xiàn)了問題耀态,現(xiàn)象就是有臺主機不能訪問某個網段的機器,無法ping通暂雹。原因是在啟動docker容器的時候突然斷開連接首装,然后就連接不上了。服務器網段是100.10.x.x杭跪,被訪問機器是172.17.x.x仙逻。
后來琢磨可能是docker網橋導致主機路由表異常,定位了一下涧尿,果然如此系奉,那么解決方法就很簡單了。大概解釋一下姑廉,docker安裝以后會在主機上創(chuàng)建一個虛擬網卡-docker0缺亮,而我們啟動的容器host網絡以外,其他的都是通過docker0這個虛擬網卡經過物理網卡與外部通信的桥言。這個虛擬網卡本身會有一個網段萌踱,一般是172.17.x.x,所以問題就明確了号阿,因為docker0占用了這個網段并鸵,導致主機無法訪問真是的網段機器。只要把docker0綁定的網段修改一下倦西,就可以了能真。解決步驟如下:
查看路由信息
查看主機路由信息
route -n
可以看到docker0占用的網段
也可以直接查看docker0占用的網段
ifconfig docker0
修改docker0默認網段
1. 停止docker服務
systemctl stop docker
2. 刪除原有網橋
ip link del docker0 down
3. 修改docker網段
vim /etc/docker/daemon.json
{
"bip":"192.168.100.1/24"
}
4. 重啟docker服務
systemctl restart docker
5. 通過ifconfig 查看docker網段是否已經變更
ifconfig docker0
參考文檔
https://cloud.tencent.com/developer/article/1852577
https://blog.csdn.net/penetrate/article/details/82458166
https://blog.csdn.net/q95548854/article/details/121097186
本文由mdnice多平臺發(fā)布