修改Docker默認的網段


背景

一同事在研究他的安全大業,需要在AWS服務器上部署他的秘密武器,秘密武器通過Docker來部署;在部署前可以通過跳板機的內外網ssh登錄上這台服務器;部署后只能通過外網ssh登錄這台服務器.......;症狀就是這么個症狀,怎么下葯就得看醫術了.....
 

排查心里路程

1、部署秘密武器之前,可以內外網;部署后,只能外網,看這么個症狀就是網絡防火牆問題,於是乎~~~
     1)iptables -F
     2)setenforce 0
     3)在AWS上把此服務器的安全組入站0.0.0.0(這純粹是為了測試,正式環境千萬別~~~)
 
2、這ssh不通難道是ssh的配置文件修改了,因為改了端口,難道ssh的配置文件里有控制內外網是否可以登錄的配置?於是乎~~~
      vim /etc/ssh/sshd_config   一頓瞎改(這里就體現了對ssh的認識不足,對配置文件不熟悉,得學習)
 
3、這什么玩意兒,網絡是可以的,安全組沒問題,不知為什么腦袋里面想到了路由, route -n 先看看,哇~~噢,這么多條路由,看到這些路由的時候,其中有一條172.29.0.0(我們跳板機的網段跟這個很像),就隱隱約約覺得這里有問題(女人的直覺不只在判斷男朋友是否在外面有狗,還愛不愛上;在這里直覺也還是挺准,哈哈);於是乎~~~
     route -n
     route del -net 172.22.32.0 netmask 255.255.255.0
     route del -net 172.23.32.0 netmask 255.255.255.0
     ......
     只要是與容器有關的路由全部干掉,然后再從跳板機去內網ssh登錄,哇~~~哇~~~可以了耶,好激動好激動噢~~~~
 
4、確定了,就是那一條路由的問題,這個容器分配的網段與跳板機的網段沖突了,於是乎~~~~
     route add -net 172.22.32.0 netmask 255.255.255.0
     ......
     把剛剛刪了的路由除了那一條沖突的,又傻不拉幾的加上,接下來就是解決這個問題的時候了
 
 

當時的解決辦法

想了想,既然沖突了,那我肯定就是把這個容器的網段給改了,怎么改呢,用了一個及其愚蠢的辦法,我把這個容器停掉刪除,重新用docker-compose重啟啟動了一個,就重新分配了一個新的網段,就不沖突了。
 

根本解決辦法

在啟動容器之前就把整個docker的網絡改為與我們自己的網段不沖突的,這樣docker永遠只分配我們給他設置的
 
操作步驟: 修改docker.json,使得整個docker的網絡網段都改掉,原來是172網段,現在我要改為192
 
1)vim /etc/docker/daemon.json(這里沒有這個文件的話,自行創建)
{
    "bip":"192.168.0.1/24"
}

 

2)重啟docker 
systemctl restart docker

 

 
3)在重新看網段 
 
注:在使用docker容器最初規划的時候就要想到這一點,要規划好使用什么樣的網段;上面的這種辦法得重啟docker,重啟容器的;
 

疑問

有其他更好的辦法呢,在不停止容器不刪除容器的前提下,修改網段?(待我研究好了,再來補充)
 

總結

1:對ssh的配置文件不熟悉(這個得找個時間系統的過一遍)
2:對網絡這塊熟悉,尤其是路由這些,說實在的,到現在還是說不出路由的具體作用,只可意會的那種,只知道沒他不行(等這段時間把PMP考完了,開始看思科那幾本書,不說考證,先把那幾本書好好看看,加強網絡)
3:對Docker網絡模式不熟悉(接下來這段時間好好看Dokcer網絡部分的官方文檔)
 
下次再見~~~

 


免責聲明!

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



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