本帖最后由 tyxu 于 2024-3-24 17:35 編輯 本人老白,又老又白,喜歡折騰。目前半退休狀態,終于有時間折騰啦,和大家分享一下我的近期折騰結果。如果大佬們覺得本文幼稚,請勿噴,不要打擊老同志那顆愛折騰的心。同時,熱烈歡迎大家指正交流。 本文極度適合群暉用戶,適合各種已經完成docker搭建的用戶。當然,如果您有設備可以運行虛擬機,或者直接安裝Openwrt,本文大部分步驟可以借鑒。 根據我自己的使用情況,計劃包含以下幾個部分:安裝immortalWrt、安裝配置science小貓咪、DDNS如何在FakeIP下工作、利用*V*P*N*回家學習science文化知識。 選擇openwrt的原因就不多說了,主要是比較小巧,可用的插件多,適合小規模折騰。您要是非得覺得裝個ubuntu更好,也別噴我,畢竟適合自己的才是最好。 docker hub上基于openwrt的旁路由集成鏡像很多,多數都是集成了各種插件的18.06版本,而且試用過程發現這些鏡像動輒幾百兆,很多插件還用不上,畢竟18.06有點老,有些插件更新還會出現內核兼容問題。 那么有沒有辦法使用新一些的openwrt版本,并且只安裝自己需要的插件呢?必須有! 經過一些嘗試,最后決定使用immortalWrt的 21.02.7版本搭建一個自己定制的環境,這個版本應該是上一個穩定的版本,只有大約25M。沒敢用最新的23.05.x,還是感覺有點不踏實。 關于immortalWrt,是openwrt的一個分支,具體情況可以百度 好啦,開始正題: 準備工作。。。。 我使用的是群暉DS418play,型號比較老并被定義為家用系列,在DSM7.x下是無法安裝docker的。 首先,無“open vswitch”選項,需要更改配置文件,共要改兩個文件,,,如何修改和打開,請自行百度 ![]() 其次,DS418play 無 Docker 套件,建議去官網下載DS218+的,注意DSM版本,我用的是DSM7.1系列,畢竟都是同一CPU,其它配置也差不多,,, https://nologydownload. ... &build_number=42962 Docker-x64-20.10.3-1308_DS218plus.spk ![]() 如果您用的不是這種蹩腳的群暉,上面可以跳過。 打開“open vswitch”后,群暉會在原有兩個物理網卡(eth0,eth1)的基礎上,增加兩個虛擬網卡(ovs_eth0,ovs_eht1),用于連接vswitch虛擬交換機。 使用ifconfig命令會發現,開啟vswitch后,聯機網卡已經自動切換成了ovs_eth0或ovs_eth1。 ![]() 現在,使用下載好的群暉DS218docker套件,安裝吧!安裝好docker后,基礎準備完成。 如果您不是群暉用戶,上面的全可以跳過,選擇適合您設備的應用,裝好docker就行啦! 為docker配置環境。。。 1、開啟網卡混雜模式(混雜模式-物理網卡可以被虛擬多個MAC地址) 切換root權限,否則沒有權限
2、創建虛擬vlan 其中192.168.10.0/24是我的內網地址,192.168.10.1是我的主路由器地址,ip-range 是使用的地址范圍,以上根據個人實際修改。macnet是新建的macvlan名,可以隨意取,后面會用到。
3、準備鏡像 Openwrt的鏡像選擇還是比較多的,在Docker hub以此為關鍵字可以檢索出很多,根據自己需要選用就可以,有實力的同學還可以制作自己的鏡像。 但上面說過,這些自帶插件的鏡像個頭都比較大,OP版本基本基于18.06有點老,插件更新也經常有問題(內核不兼容) 如果您執意選擇這些大佬們精心定制的版本,我推薦: piaoyizy/openwrt-x86,一個兄弟根據Lean大神制作的鏡像,功能上根據旁路網關用途做了簡化,只包括了“師夷長技以制夷” plus,“師夷長技以制夷”和Clash三個關鍵插件,以及一些基礎插件。至少2023年底還在更新。 sulinggg/openwrt:x86_64,這個很著名啦,但最后版本應該是幾年前編譯的,已經停更。 我最后還是選擇了immortalWrt21.02.7 自己定制。在docker注冊表搜索“immortalwrt/rootfs”,選擇“x86-64-openwrt-21.02.7”并拖取鏡像。里面鏡像很多,如果您的設備不是x86,可以選擇您合適的架構下載。 ![]() 如果你的群暉無法訪問注冊表,可以嘗試用 docker pull 命令試試,但成功機會依然不大。 我最初也沒辦法訪問注冊表。為了解決這個問題,用了個笨辦法。在臺式機上也安裝了docker for win,畢竟臺式機出門就方便多了。用臺式機的docker獲取鏡像,然后使用shell執行: 注意!是windows的那個DOS界面,提示符長這個樣子的! PS C:\Users\Administrator>
4、創建并運行容器 回到ssh,登入群暉,提升權限
運行命令創建容器
-d 參數是讓容器在后臺運行。 --restart always 為了避免容器意外掛掉,或者被誤殺,設置了意外退出自動重啟。 --name 給容器定義個名字,可以自由定義。 --privileged 獲取宿主機root權限(或特殊權限)。 --network macnet 指定網絡為macnet,就是我們上面創建的那個vlan。 --ip=192.168.10.19 指定默認地址。 immortalwrt/rootfs:x86-64-openwrt-21.02.7 鏡像的名稱。 /sbin/init 表示載入容器后內核啟動時主動呼叫的第一個進程,docker中必須要保持一個進程的運行,要不然整個容器啟動后就會馬上自己kill自己。 最后回車運行一下吧! ![]() 這樣的結果,就是容器已經成功創建。可以
![]() 5、更改容器網絡參數 使用SSH工具,進入容器,2e5b就是我們上面創建的容器ID縮寫
我是編輯成了這個樣子,可以參考:
|
|