撿垃圾 篇六:軟路由入門攻略——是否需要一個軟路由?

作者:拉德布魯赫信徒

1 引言

開這篇文章其實真的構思了很久,有沒有必要去寫這麼個東西。其實軟路由這個東西在某種程度上感覺被神化了,給人的感覺就是無所不能無所不會,但凡有了軟路由就能享受到光速一般的網路,能夠實現生活中的一切需求。

最後還是決定找幾個切入點,從實際需求、韌體選擇、系統安裝以及旁路由設定幾個點來具體討論討論軟路由。

2 實際需求分析

路由器這個東西,簡單點來說就是一個網路的分發中轉站,將運營商的網路,透過路由器來進行包裝之後,能夠以無線和有線的方式提供給家庭使用。而路由其根據場景劃分,可以分為有線路由和無線路由,以是否能夠提供wifi作為區分的標誌。而依據功能多樣性劃分,又可以分為硬路由和軟路由,依據筆者的拙見,叫硬體路由和軟體路由其實更加合適,所謂硬體路由依據字面含義可以知道就是提供一個轉換網路功能的硬體,而軟體路由在硬路由基礎上提供了豐富的功能。但是需要釐清的一點是,硬路由其實並沒有大家一貫概念裡的無能,其包含的多種晶片而並非中央處理晶片可以實現較好的訊號覆蓋、WiFi的流量分配等功能,況且很多原廠出來的路由,尤其是某品牌上萬塊的路由器也是可以透過梅林韌體、openwrt等功能實現軟路由的很多功能的,但是由於硬體限制——廠家在產品設計之處根據成品的考慮並不會給記憶體、硬碟(等同概念)給與足夠的容量,因此所實現的功能還是十分有限的。而軟路由在能夠提供豐富功能的情形下,由於缺乏很多功能性的處理器,導致一般軟路由都是以有線路由的形式存在的,必須依託一個無線AP才能實現一個完整的家用路由的功能。

用正常思維也可以知道,一個以熱情為動力的創作者所實現的路由功能,根本意義就是如同基因複製一般,總是希望能夠覆蓋更多的硬體,而不是兼顧所有的功能。為了穩定性以及適配過程的順利進行,通常不會考慮到wifi功能的適配。這一點,在網路上搜索無線軟路由就可以得知,文章數量明顯少於有線軟路由的文章,甚至可以說,能找到的文章寥寥無幾。而硬路由這種東西完全就是一群團隊拿著工資按照kpi搗鼓出來的東西,在市場的競爭壓力下,做出來的東西在基礎路由功能上(主要指wifi)毋庸置疑的強於軟路由的。

上手張大媽也有2000多天了,很早以前就開始關注過軟路由這個話題。一開始,軟路由這個概念總是伴隨著舊機器如何廢物利用而慢慢推廣開來的,再往後往往因為資本的推波助瀾,出現了本不該屬於其的熱度。軟路由本身其實還是一個比較小眾的市場,但是現在但凡出現個低功耗的主機板,總會有值友在下面評論要是有兩個網口就好了,可以做成軟路由。與之相對的,軟路由的價格也是越來越高,按照硬體規律早應該淘汰的J1900等處理器的主機板現在卻依舊維持著高價,甚至出現了拿I9去製作軟路由的狂熱者。很多值友搗鼓這個東西,也只是單純的享受一個搗鼓的樂趣,而搗鼓之後很大程度上不得去面臨重回海鮮市場或者吃灰的命運。

路由器效能的提升,很大程度上就是伴隨著使用感受的提升。自打上一波降費提速之後,眾多傳統的百兆路由器慢慢地被市場淘汰。在當時,能夠換上一個千兆路由,匹配上已經提速到100M、200M以上的寬頻,能夠獲得就是一個質的提升,能夠明顯感受到刷影片不卡了,下載更快了。這就是一個硬體匹配度的問題,就像從2G到3G大家能夠獲得一個質上面的提升,而後面從3G到4G,4G到5G,給大家日常體驗上的提升就沒有這麼立竿見影了(這裡並非鼓吹4G、5G無用論,其意義更多體現並非是在民用上罷了)。同樣,在路由器邁入千兆之後,給大家體驗上的提升就沒有那麼明顯能夠被我們所察覺,畢竟現在主流的寬頻上限也才到達千兆不久,而千兆寬頻的普及率也沒有想象中那麼高,這就涉及到一個邊際效用遞減的經濟學常識了。

根據上述推論,可以得知,在家用寬頻普遍限制在100M-500M的區間上,軟路由本不該有其存在的價值,畢竟市面上主流的硬路由與主流的軟路由,單單在價格上就存在很大的差距了。那麼軟路由存在的價值在哪裡呢?

依據筆者根據站內軟路由文章的統計,主流軟路由系統,是一個二分的狀態,一個是ikuai,另一個則是openwrt。至於ikuai,其優勢就是多撥以及穩定性上,而openwrt就是體現在一個豐富外掛構成的可玩性上,可以實現魔法或者廣告遮蔽,除此之外還可以實現很多很多如搭建簡易網盤等功能。

從ikuai的功能去逆推使用人群,可以得出傾向於使用ikuai的,主要是一群對於想要穩定性或者是讓有限頻寬加倍的多撥。但是需要考慮的一點是,這種東西能夠被普通人知道運營商自然也是可以知道的,所以在損害他們利益的情況下,大多數地區都將多撥予以封禁。而所追求的穩定性,國內路由廠商在多次洗牌之後,之前流行一時的主打新概念路由的極路由、newifi等,很多都被拍死在沙灘上了,而其所主導的一些理念,在洗牌之後,也逐漸嵌入到存活下來的路由廠商的產品中。早些年記得tp的路由器,還真的得要一個懂行的人上門去配置,現在隨便一個小白按照說明書也能很容易的去配置一個路由器。而穩定性,更是一個毋庸置疑的問題了,如果一個品牌的路由器連最起碼的穩定使用都做不到,那麼早都被市場所淘汰了。

而openwrt,從本質上還是一個linux系統。其上面的外掛,更多的還是用移植這個詞而不是開發這個詞,大家應該能夠體會到其中的含義了。很多功能深究下來其實就是linux上面很早就能實現的功能,之所以移植而不是開發,只是讓這些功能能夠以圖形化的介面進行顯示,能夠更加容易的為人所用罷了,但是在移植的過程中,拋開不能完成移植的部分,能夠移植的那一部分在功能上或多或少的也會有一點缺失,這就是很多程度上為何大家總是意猶未盡,總覺得這個功能要不就是沒有,要麼就是總是缺了點那麼功能。在openwrt的發展中,慢慢地也會針對上述需求改進自己,如目前大多韌體都強調自己支援docker。那麼,換句話說,如果單純的追求這些功能,為何不單獨部署一個伺服器去實現功能,與路由器各司其職,避免一旦軟路由出現問題就一榮俱榮一損俱損的情形呢?當然,也是得考慮到很多友友們覺得linux伺服器上手成本過高,只是想簡單的去使用外掛的一個情形。

綜上,筆者認為軟路由在上述缺點都存在,其存在的價值,除了能夠便利的使用一些外掛去實現想要的功能外,更重要的方面還是在於提供一個高速的內網環境。縱觀市場上的那些大廠出品的路由器,即便是標稱2。5G介面的路由器,通常也只是提供了一個2。5G的WAN口,其餘的介面基本全部都是千兆網口,這意味這上限也就是在100M左右的內網速度,對於需要內網存在nas等裝置的使用者來說,是遠不能滿足需求的。而現在主流的軟路由基本都是標配4個2。5G網口,標稱250M左右的速度足以滿足nas的需求。而更進一步,如果是全固態組成的nas,那麼萬兆口也是有其存在的價值的,而這就不是市面上出售的產品能夠覆蓋的了。這類使用者通常都會選擇自行組建萬兆口的軟路由,但是一般來說這一部分是小眾中的小眾了。

綜合而言,對於一般使用者來說,僅僅為了實現一些外掛所有的功能而去單獨組一個軟路由是不切實際的。所鼓吹的軟路由萬能論大機率就是一個消費主義陷阱。在多撥被大範圍封禁的情形下,如果是為了外掛而去購買軟路由,某種意義上倒不如直接買一個支援op或者梅林的路由,亦或者直接弄一個簡易的伺服器來的實在。畢竟,就算是撿垃圾,雙網口的主機板價格通常遠高於單網口的主機板。

3 韌體選擇

依據架構的不同,通常分為arm和x86兩類,arm基本覆蓋瞭如硬路由、電視盒子、開發板等裝置,而x86大多應用於diy的軟路由。這裡針對的韌體,主要是指openwrt,ikuai有著自己的官網,支援就是支援,不支援就是不支援,沒什麼好說的。

3。1 x86架構

這一類裝置可選的韌體型別多到難以想象,因為裝置相容性較強,幾乎市面上所有的韌體,一開始都是面向x86開發的,優秀的韌體也有很多,lede、istore以及各種各樣的也有很多,這一部分基本屬於基礎垃圾佬的必修課,在此就不贅述。

3。2 arm架構

這一部分裝置種類過多,處理器廠商也是五花八門,因此想做到如x86一樣的高相容性也不大可能。這也是困擾大家很久的一個問題。就筆者前一陣搗鼓玩客雲的韌體時候的體驗,經常會出現韌體在別人那裡可以安裝,但是放在自己裝置上就始終無法成功的現象。而且本身韌體這塊,除了散佈在恩山論壇中,繁雜的分發渠道和渠道的不透明性總是能夠困擾大家。而這一類韌體,都是在原版韌體上進行編譯而成,但是這個難度對於一般人實在是太大。

在玩機的過程中,筆者倒是發現一個不錯的網站,而且開發者人也很好,基本上有求必應。雖然高階功能需要收費,但是基礎功能還是能夠免費使用的,這一點很贊。在此給出傳送門。

主要的使用筆者認為值得介紹的就是三方面,其餘部分都很簡單。

1、選擇裝置

撿垃圾 篇六:軟路由入門攻略——是否需要一個軟路由?

當然,為了方便大家觀看,還是把支援裝置的列表給整理出來(當然包括x86裝置)。

撿垃圾 篇六:軟路由入門攻略——是否需要一個軟路由?

撿垃圾 篇六:軟路由入門攻略——是否需要一個軟路由?

撿垃圾 篇六:軟路由入門攻略——是否需要一個軟路由?

2 選擇外掛

撿垃圾 篇六:軟路由入門攻略——是否需要一個軟路由?

撿垃圾 篇六:軟路由入門攻略——是否需要一個軟路由?

這一部分外掛還是需要贊助才能構建,不過考慮到五塊錢一次,相對還是畢竟划算的。

3 構建韌體

撿垃圾 篇六:軟路由入門攻略——是否需要一個軟路由?

當然,X86架構的可選形式更多

撿垃圾 篇六:軟路由入門攻略——是否需要一個軟路由?

4 系統安裝

4。1 X86安裝

製作一個PE優盤,隨便什麼PE都可以,這裡推薦筆者常用的優啟通。將下載的韌體放到u盤裡面,然後下載一個physdiskwrite放到優盤裡。

後面這部分之前有人寫過了,筆者整理後如下:

將u盤插入軟路由中

開機進入bios後, 在boot介面設定啟動項,將u盤設定第一位,進入pe系統即算成功。

進入pe後,選擇分割槽工具,刪除全部分割槽,新建分割槽。

win+R呼叫執行,輸入cmd,調出cmd介面,輸入u:進入u盤的根目錄下(有可能磁碟名字不一樣,建議進入此電腦檢視u盤的名稱是什麼),輸入physdiskwrite -u openwrt。img(這裡img檔案的名字就是那個openwrt映象的名字),選擇要寫入的硬碟,一般來說選擇第一個 0(反正不要寫到u盤裡就行),輸入y,等待寫入完成。

安裝到這裡就算結束了,後面根據管理地址設定一下即可使用。

4。2 ARM安裝

基本就是用balenetcher等軟體將韌體寫到TF卡里面,然後將卡插到裝置中,一般來說,能啟動就能啟動,不能啟動就得另外找韌體了。寫入教程如果是開發板類裝置的話,官網一般會提供韌體和燒寫方式。

4。3 Docker安裝

這部分應該才是重點了。因為如果韌體無法寫入的情況下,針對礦渣類產品,通常都是可以寫入armbian等linux系統的,在安裝docker之後還是可以透過docker實現旁路由的。

進入ssh後,輸入如下程式碼:

ifconfig

一般來說,礦渣類只有一個單網口,網口名通常也是eth0(當然,這不是定式,具體的還得根據自身情況來選擇)

開啟網絡卡混雜模式:

sudo ip link set eth0 promisc on

這裡etho根據自己情況修改

docker網絡卡的建立:

docker network create -d macvlan ——subnet=192。168。31。0/24 ——gateway=192。168。31。1 -o parent=eth0 macnet

需要修改的主要就是幾個部分,一個是subnet的前面的ip,修改成你的路由器的網段即可,譬如你的路由器是小米的,通常設定頁面是192。168。31。1,那麼這裡填192。168。31。0即可,後面不用變。gateway就直接填你的路由器設定頁面的ip,這裡就是192。168。31。1,parent就是前面的網絡卡,根據實際情況修改即可。

檢視自己裝置處理器架構:

ssh介面輸入arch即可得出,現在一般都是64位的處理器架構,顯示一般是armv8或者aarch64,如果是玩客雲這一類裝置的話,那麼就是armv7

建立docker:

docker run ——restart always ——name openwrt -d ——network macnet ——privileged sulinggg/openwrt:armv8 /sbin/init

如果是armv7或者其他裝置的話,根據自己的需要修改sulinggg/openwrt:armv8最後的部分即可,如是x86,那麼直接修改成sulinggg/openwrt:x86_64,如是armv7,那麼就修改成sulinggg/openwrt:armv7。

容器內修改:

docker exec -it openwrt

vim /etc/config/network

然後修改如下部分(偷懶直接用網上的圖了),輸入i進入編輯模式(不得不吐槽vim的麻煩)

撿垃圾 篇六:軟路由入門攻略——是否需要一個軟路由?

完成後,按一下esc,輸入:wq回車儲存。

docker restart openwrt

/etc/init。d/network restart

然後設定就完成了。

4 旁路由的設定

這種情況是針對只有一個網口的裝置,具體設定方式有三種。一個是雙方都不關閉dhcp,一個是主路由開啟dhcp,旁路由關閉dhcp;最後一種就是主路由關閉dhcp,旁路由開啟dhcp。

關於具體設定已經有值友寫過了,可以參照這篇文章。

筆者目前只試過這篇文章的方式,但是比較疑惑的一點在於,如果是透過這種方式,與正常使用linux採用docker構建一些功能的使用完全相同,但是在使用上也是完全相同的,所以感覺單獨透過這種方式設定旁路由感覺有點多餘,倒不如直接使用一個伺服器去實現更多的功能。

至於其他兩種方式的設定,如果有知道的值友還煩請指正一下。之前倒騰N1的時候有嘗試過,但是就會莫名斷網,只能透過重置路由器來解決。

5  總結

不知不覺已經說了很多很多。軟路由雖然有著自己一定的場景,但是結合現在市場上的產品,如果是單純想保障榨乾頻寬的話,300塊左右的路由器就可以滿足需求了,如果是想要實現功能的話,買一個非常便宜的工控板組成伺服器也可以進行解決。

還是希望大家能夠理性對待軟路由這一個命題,本身軟路由萬能論就是一個偽命題,脫離自己的需要而去跟風盲目追求本身就是一種不理性的行為。消費只是手段而不是目的,選擇一個符合自己需要的產品,能夠極大地提升自己的體驗才是目的。

本身也想過開這麼一篇文章可能會引來軟路由擁躉者們的批評,諸如說得好我選擇xxx的固定句式。我想說的是,每個人的需求是不同的,自身需求不是唯一尺度,一切選擇應該回歸人的需要本身,這才是理性。背離這一點就是一種自我自私的體現,尊重多元性才是一個值友該有的消費觀。

筆者本身對於軟路由就屬於不感冒的那一類,這篇文章也只是這些年的一些知識沉澱總結所得,如果有不足的地方還希望大家可以多多指正。

最後,趁著雙十一推薦幾款我認為還可以的路由器或者軟路由(軟路由筆者還是認為選擇體積夠小功耗購地且效能夠用的即可。當然,頭圖這一款r5s並不推薦,因為韌體製作的實在是糟心):