Docker默認(rèn)網(wǎng)段的正確修改步驟
背景
一同事在研究他的安全大業(yè),需要在AWS服務(wù)器上部署他的秘密武器,秘密武器通過Docker來部署;在部署前可以通過跳板機(jī)的內(nèi)外網(wǎng)ssh登錄上這臺(tái)服務(wù)器;部署后只能通過外網(wǎng)ssh登錄這臺(tái)服務(wù)器.......;癥狀就是這么個(gè)癥狀,怎么下藥就得看醫(yī)術(shù)了.....
排查心里路程
1、部署秘密武器之前,可以內(nèi)外網(wǎng);部署后,只能外網(wǎng),看這么個(gè)癥狀就是網(wǎng)絡(luò)防火墻問題,于是乎~~~
1)iptables -F
2)setenforce 0
3)在AWS上把此服務(wù)器的安全組入站0.0.0.0(這純粹是為了測(cè)試,正式環(huán)境千萬別~~~)
2、這ssh不通難道是ssh的配置文件修改了,因?yàn)楦牧硕丝?,難道ssh的配置文件里有控制內(nèi)外網(wǎng)是否可以登錄的配置?于是乎~~~
vim /etc/ssh/sshd_config 一頓瞎改(這里就體現(xiàn)了對(duì)ssh的認(rèn)識(shí)不足,對(duì)配置文件不熟悉,得學(xué)習(xí))
3、這什么玩意兒,網(wǎng)絡(luò)是可以的,安全組沒問題,不知為什么腦袋里面想到了路由,route -n 先看看,哇~~噢,這么多條路由,看到這些路由的時(shí)候,其中有一條172.29.0.0(我們跳板機(jī)的網(wǎng)段跟這個(gè)很像),就隱隱約約覺得這里有問題(女人的直覺不只在判斷男朋友是否在外面有狗,還愛不愛上;在這里直覺也還是挺準(zhǔn),哈哈);于是乎~~~
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 ......
只要是與容器有關(guān)的路由全部干掉,然后再從跳板機(jī)去內(nèi)網(wǎng)ssh登錄,哇~~~哇~~~可以了耶,好激動(dòng)好激動(dòng)噢~~~~
4、確定了,就是那一條路由的問題,這個(gè)容器分配的網(wǎng)段與跳板機(jī)的網(wǎng)段沖突了,于是乎~~~~
route add -net 172.22.32.0 netmask 255.255.255.0 ......
把剛剛刪了的路由除了那一條沖突的,又傻不拉幾的加上,接下來就是解決這個(gè)問題的時(shí)候了
當(dāng)時(shí)的解決辦法
想了想,既然沖突了,那我肯定就是把這個(gè)容器的網(wǎng)段給改了,怎么改呢,用了一個(gè)及其愚蠢的辦法,我把這個(gè)容器停掉刪除,重新用docker-compose重啟啟動(dòng)了一個(gè),就重新分配了一個(gè)新的網(wǎng)段,就不沖突了。
根本解決辦法
在啟動(dòng)容器之前就把整個(gè)docker的網(wǎng)絡(luò)改為與我們自己的網(wǎng)段不沖突的,這樣docker永遠(yuǎn)只分配我們給他設(shè)置的
操作步驟:修改docker.json,使得整個(gè)docker的網(wǎng)絡(luò)網(wǎng)段都改掉,原來是172網(wǎng)段,現(xiàn)在我要改為192
1)vim /etc/docker/daemon.json(這里沒有這個(gè)文件的話,自行創(chuàng)建)
{ "bip":"192.168.0.1/24" }
2)重啟docker
systemctl restart docker
3)在重新看網(wǎng)段
注:在使用docker容器最初規(guī)劃的時(shí)候就要想到這一點(diǎn),要規(guī)劃好使用什么樣的網(wǎng)段;上面的這種辦法得重啟docker,重啟容器的;
疑問
還沒有其他更好的辦法呢,在不停止容器不刪除容器的前提下,修改網(wǎng)段?(待我研究好了,再來補(bǔ)充)
總結(jié)
1:對(duì)ssh的配置文件不熟悉(這個(gè)得找個(gè)時(shí)間系統(tǒng)的過一遍)
2:對(duì)網(wǎng)絡(luò)這塊熟悉,尤其是路由這些,說實(shí)在的,到現(xiàn)在還是說不出路由的具體作用,只可意會(huì)的那種,只知道沒他不行(等這段時(shí)間把PMP考完了,開始看思科那幾本書,不說考證,先把那幾本書好好看看,加強(qiáng)網(wǎng)絡(luò))
3:對(duì)Docker網(wǎng)絡(luò)模式不熟悉(接下來這段時(shí)間好好看Dokcer網(wǎng)絡(luò)部分的官方文檔)
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
docker registry 鏡像同步的實(shí)現(xiàn)思路
這篇文章主要介紹了docker registry 鏡像同步的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Windows Docker部署Jenkins的實(shí)現(xiàn)步驟
Jenkins是一款開源的持續(xù)集成工具,廣泛用于項(xiàng)目開發(fā),能提供自動(dòng)構(gòu)建測(cè)試部署等功能,本文主要介紹了Windows Docker部署Jenkins的實(shí)現(xiàn)步驟,感興趣的可以了解一下2024-03-03阿里云esc服務(wù)器Docker部署單節(jié)點(diǎn)Mysql的講解
今天小編就為大家分享一篇關(guān)于阿里云esc服務(wù)器Docker部署單節(jié)點(diǎn)Mysql的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03使用Docker運(yùn)行Microsoft SQL Server 2017的方法
本篇文章主要介紹了使用Docker運(yùn)行Microsoft SQL Server 2017的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11教你如何將應(yīng)用從docker-compose遷移到k8s中
這篇文章主要介紹了如何將應(yīng)用從docker-compose遷移到k8s中,本文給大家分享一個(gè)專門的遷移工具,可方便地通過docker-compose.yaml自動(dòng)生成k8s的yaml部署文件,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07基于Docker搭建Redis一主兩從三哨兵的實(shí)現(xiàn)
這篇文章主要介紹了基于Docker搭建Redis一主兩從三哨兵的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09docker安裝influxdb的詳細(xì)教程(性能測(cè)試)
這篇文章主要介紹了docker安裝influxdb的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07