如何將其余容器掛在openwrt容器下,實(shí)現(xiàn)openwrt代理容器
上一期我們介紹了如何利用容器部署openwrt,之后我又在思考,我的其他容器是否可以像設(shè)備一樣把openwrt的容器作為網(wǎng)關(guān),利用openwrt對其進(jìn)行流量的代理和控制,這幾天也折騰了一下。

首先我們需要知道,上一期使用的macvlan網(wǎng)絡(luò)模式,可以看作模擬出了一塊網(wǎng)卡,這塊網(wǎng)卡是存在于我們設(shè)定的網(wǎng)段之中,他是擁有虛擬的MAC地址,通過路由就可以直接訪問,不需要像默認(rèn)的bridge網(wǎng)絡(luò)模式,需要bridge充當(dāng)二級路由的角色。
首先我們看一下上一期設(shè)定的macvlan的network信息。

我們想要讓其他容器把openwrt作為網(wǎng)關(guān)需要滿足一個(gè)條件,那就是這個(gè)容器需要能夠和openwrt通信。最簡單的方法就是將容器的ip設(shè)置為和openwrt在同一網(wǎng)段,一開始我在想承載openwrt的macvlan設(shè)定的網(wǎng)關(guān)為主路由,那么我下邊的容器是否還能再設(shè)定自己的網(wǎng)關(guān)呢,問了問最近很火的chatgpt,下面是他給出的答案。

這提示了我一個(gè)思路,就是在新建的容器內(nèi)利用route指令設(shè)置網(wǎng)關(guān)
1、先啟動(dòng)一個(gè)測試容器
注意,這里的network要選擇openwrt的那個(gè)macvlan,否則容器ip不能和openwrt在同一網(wǎng)段
2、啟動(dòng)容器
3、檢查路由信息
如果提示沒有這個(gè)command,則需要安裝以下net-tools,請大家自行搜索如何安裝

第一次使用route應(yīng)該除了最下邊那個(gè)路由,還存在著其他路由
我們這里刪除掉默認(rèn)路由/網(wǎng)關(guān)
添加openwrt的ip作為默認(rèn)路由
4、測試網(wǎng)絡(luò)
這里可能存在ping不通的情況,因?yàn)槟鉶penwrt里設(shè)置了魔法,那個(gè)魔法會(huì)劫持你的dns,所以這些可能是ping不通的,但是你的請求都可以正常使用,所以不能影響到我們使用

我們利用請求測試網(wǎng)絡(luò)

大功告成!
下面你可以自由發(fā)揮了,比如說封裝一個(gè)chatgpt接口,提供給其他服務(wù)啊,等等等等。。。


給個(gè)點(diǎn)贊投幣吧,這對我真的很重要?。?!