天天看點

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

作者:數位小能手

【終極篇】再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

終極篇的意思就是最後一篇,個人能力有限,隻能折騰到這裡了~~

哈喽小夥伴們好,我是Stark-C,在前幾篇講到在使用NAS的Docker功能中,為了使容器支援IPv6網絡,我分享了兩種方案。

其中最簡單的可能就是直接在搭建容器的時候使用host網絡,前提是主控端(也就是NAS)上已經成功啟用了IPv6網絡。

弊端就是随着NAS上的應用越來越多,端口可能會産生沖突。特别是我這樣的折騰玩家,說實話很多時候完全就是為了折騰而折騰,需要的不需要的都一股腦都想安裝,到最後端口沖突出現問題自己都不知道怎麼回事(說到底自己就是又菜又愛玩的那種~)

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

但是額外增加macvlan網絡雖說也行得通,但是問題是上手對于新手有些困難不說,登入容器的WEB界面還要在記另外的一個IP+端口,也不是很友善。

是以我一直在尋求更便捷的方案,最後實在沒轍,想到直接尋求NAS的人工客服看看能不能得到答案,沒想到還真找到了又一種可行方案。

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

此次我找的人工客服是華碩那邊的,直接問的就是關于Docker開啟IPv6的問題,然後我是隔天才收到答複。雖說沒有得到具體的操作步驟,但是他直接扔出了一個教程連結。不過這個教程連結其實并不是特定NAS的使用場景,是以我們操作起來也不是上手即用,好在他的思路是沒有問題的。是以,我就出了這篇偏向于新手的教程文章。

PS:今天的教程都需要通過SSH連接配接的方式在遠端終端的操作下進行,至于SSH工具請自行解決,Putty,XShell,FinalShell等都可以,我個人使用的是FinalShell。

前提條件

今天的教程目的很簡單:就是在Docker預設的bridge網絡啟用IPv6 支援。

是以需要的條件就一個:NAS本身已經啟用正确的IPV6位址!

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

請注意一定是公網IPV6位址,而不隻是“fe80”開頭的位址。“fe80”是本地連結 IPv6 位址,也即是區域網路内路由器給你配置設定的,這個沒有用。

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

或者你還可以采用終端指令的方法來檢測。輸入以下指令:

sysctl net.ipv6.conf.all.disable_ipv6

如果傳回值為0,說明IPv6已啟用。如果傳回值為1,則說明你那邊的IPv6沒啟用,這個時候你就得使用排除法,檢查你那面的網絡情況了,比如路由器配置,防火牆什麼的~

配置IPv6支援

确定NAS已啟用IPv6支援,我們就可以直接配置了!

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

首先我們需要啟用管理者模式,因為之後的操作沒有管理者權限可能會無法打開。啟用指令為【sudo -i】,回車之後輸入NAS的登入密碼即可,輸入密碼界面沒有顯示,完成之後直接回車就可以了。

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

接着輸入指令【docker network inspect bridge】确認下我們Docker 中的bridge網絡,可以看出IPv6是未啟用狀态。

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

然後我們需要确定自己NAS所在的IPv6位址段,想要知道很簡單,直接輸入查詢IPv6路由表資訊的指令:【ip -6 route show 】即可。可以看出它列出了NAS中所有IPv6網絡路由資訊,包括目标位址、掩碼位、網關位址、優先級等。而我們需要的就是上圖箭頭所示的IPv6位址段(請記住是公網IPv6的,而不是下面的fe80開頭的)。

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

接着輸入指令【vi /etc/docker/daemon.json】進入編輯模式(NAS上其實是沒有這個檔案的,這個指令同時也可以自動建立)

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

在打開的配置界面先輸入字母【i】進入編輯模式,然後輸入以下指令:

{ "ipv6": true, "fixed-cidr-v6": "你的IPv6位址段", "experimental": true, "ip6tables": true }

請注意:上面指令中的中括号以及每段後面的逗号一定要帶上,最後一段指令後面沒有符号!

這裡對以上指令稍作解釋:

ipv6-->設定為true,啟用對ipv6的支援。 fixed-cidr-v6-->配置ipv6子網。 ip6tables-->啟用ip6tables,docker會在ip6tables中配置docker網絡相關的規則鍊。 experimental-->啟用實驗特性,ip6tables是docker的一個實驗功能,是以需要設為true。

完成之後按下鍵盤上的ESC退出按鍵,然後輸入【:wq】指令儲存即可!

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

然後我們需要重新開機NAS的Docker容器。華碩NAS直接在App Central裡面撥動一次Docker Engine開關即可!

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

重新開機Docker容器之後再次輸入指令【docker network inspect bridge】,可以看到bridge網絡下的IPv6已經變成了“true”,并且下面還多出一行我們的IPv6位址段。

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

并且我們檢視Portainer的網絡清單中的bridge網絡,後面已經配置設定到IPv6位址了。

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

我重新搭建了qbittorrent容器(搭建過程就不說了,之前分享太多次了),直接使用的預設的bridge網絡,搭建完成之後可以看到它已經配置設定到一個IPv6位址。

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

下載下傳的時候在使用者清單中已經可以正常看到IPv6位址使用者了,并且還是IPv4&IPv6雙棧的。理論上這個對qbittorrent下載下傳提速是有效的!

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

更爽的是,用它來下載下傳PT站上的資源,連上的IPv6使用者還會更多,資源也就更穩了!

再次硬杠Docker 開啟 IPv6 ,如何讓預設的bridge網絡啟用IPv6 支援

PT站内個人資訊已經成功的顯示了自己的IPv6 IP位址,Nice!

但是今天的這個方案還有一個問題我沒有得到解決,就是如果NAS重新開機之後前面的“/etc/docker/daemon.json”配置檔案會丢失,需要重新配置。希望有知道解決方案的大佬在評論區不吝賜教,謝謝~

好了,以上就是今天給大家分享的内容,我是愛分享的Stark-C,如果今天的内容對你有幫助請記得收藏,順便點點關注,我會經常給大家分享各類有意思的軟體和免費幹貨,咱們下期再見!謝謝大家~