軟路由用不用買(軟路由有必要買嗎)
其實軟路由的種類不多,但也不算少,目前比較公認(rèn)(但實際上我不這么認(rèn)為)的玩法是ROS用來撥號,做規(guī)則,iKuai用來多撥,疊加,負(fù)載均衡,Openwrt用來科學(xué)。但實際上你單獨地用Openwrt來搞,拋開IPV6來看,其實也能搞起來,而且反而維護(hù)更加簡單。我最開始用軟路由是用的win虛擬海蜘蛛,用來單線多撥,那時候家里的帶寬是20M,因為ROS和iKuai我基本上沒用過,所以下面的所有內(nèi)容除非專門指出,否則全部都指的是Openwrt。
從需求上來說,軟路由在國內(nèi)那基本上就是科學(xué),如果你不要科學(xué)的話,使用軟路由的動力就會大大的降低,但實際上軟路由能做的事情還有很多,比如更加豐富和簡便的管理、監(jiān)控功能,依賴插件可以獲得去廣告、DNS加速、應(yīng)用控流、更多的ddns服務(wù)、更多的內(nèi)網(wǎng)穿透服務(wù)等等功能,除此以外因為Openwrt基本上就是個完整的Linux,你還可以在上面干很多的事情,比如跑Docker,跑下載,搭建個媒體服務(wù)器啥的。所以你對家里的網(wǎng)絡(luò)設(shè)置要求比較高的話,軟路由是值得花一點時間去關(guān)注的。
有很多朋友一看到軟路由這三個字就覺得很復(fù)雜,很難搞,這句話倒退回十幾年應(yīng)該是成立的,因為那個時候相關(guān)的資料確實比較少,但是現(xiàn)在各種保姆及的教程很多,雖然質(zhì)量良莠不齊,但是這一塊的門檻確實可以說是大大的降低了。
所以如果你看到這里還有一點興趣的話,不妨繼續(xù)看下去,我打算分享一下我在軟路由這一方面的一些不太成熟的看法,如果你現(xiàn)在正在用或者正打算用軟路由的話,接下來的內(nèi)容應(yīng)該能對你有所幫助。
1.性能
這個需要辯證地去看。
關(guān)于性能,筆者一直都認(rèn)為夠用就好
其實關(guān)于這一塊的爭論挺多的,在大多數(shù)情況下,X86的軟路由性能肯定大大優(yōu)于arm,但實際上你真的不一定用得上,因為你得考慮到你的基礎(chǔ)帶寬。如果你家里的帶寬就100M,像是N1,R2S這些arm設(shè)備就可以直接拿來用,甚至性能已經(jīng)溢出了很多很多很多了。現(xiàn)在網(wǎng)上相關(guān)的資料也不是特別難查,N1跑科學(xué)上500M是沒啥大問題的,R2S就更沒問題了,這類設(shè)備直接拿來給500M以下的帶寬用不存在性能不夠的問題,而且還能帶來很多好處,那就是刷機(jī)相對來說比X86的要方便或者說簡單一些,N1稍微折騰點,原生固件需要降一下級,然后就隨便找個U盤直接把img寫進(jìn)去插好就能用了,R2S則是直接寫TF卡,相對來說更加的友好一些。功耗也十分的低,雖然說現(xiàn)在X86的功耗也不高,但是和滿載就只有幾瓦的arm設(shè)備比起來,還是有不少差距的。
甚至你剛開始玩軟路由的話,都不需要額外的添加設(shè)備,你可以在電腦上虛擬一個Openwrt出來跑,你也可以直接寫到U盤里直接引導(dǎo)起來跑,先找找感覺,覺得不錯了,再去考慮要不他要專門搞個設(shè)備來跑軟路由的事情。
性能這個事情想要展開來講明白是很難的,因為軟路由本身能干的事情太多了,沒法給出幾個統(tǒng)一的最優(yōu)解,現(xiàn)在很多人還在爭論軟路由需要幾個網(wǎng)口才夠用才還用,別的地方就更多了。
2.需要簡單了解的其他知識
其實就是簡單的網(wǎng)絡(luò)(局域網(wǎng))知識。這一塊也沒法展開來講,但是你也不需要了解到網(wǎng)絡(luò)的層數(shù)、具體的協(xié)議這些,我簡單提煉一些出來,針對絕大多數(shù)的家庭用戶,知道下面這些概念就差不多可以開搞了,為了便于理解,描述不會太準(zhǔn)確(防杠):
NAT簡單來說就是通過轉(zhuǎn)換,把局域網(wǎng)的數(shù)據(jù)送到互聯(lián)網(wǎng),再把互聯(lián)網(wǎng)反饋回來的數(shù)據(jù)轉(zhuǎn)換以后送到局域網(wǎng)內(nèi)所對應(yīng)的設(shè)備。我們現(xiàn)在使用的(硬)路由器有個重要的功能,就是用來做NAT轉(zhuǎn)發(fā)的,它有專門的芯片來負(fù)責(zé)這個事情,所以從效率上來說,硬路由在NAT上面比軟路由強(qiáng)很多(指數(shù)級的),而軟路由的NAT,則需要用CPU去算,很依賴于CPU的算力。簡單來看,你就把它理解成播放視頻硬解和軟解的區(qū)別好了。
PPPoE也就是撥號這個操作(協(xié)議)是你能連入互聯(lián)網(wǎng)的最關(guān)鍵點,也是絕大多數(shù)家庭用戶上網(wǎng)所需要的操作,所以你要記住你PPPoE所需要的賬號和密碼。路由器通過PPPoE獲得公網(wǎng)IP(便于理解10開頭的也算是公網(wǎng)),再通過NAT使得內(nèi)網(wǎng)的數(shù)據(jù)出去,公網(wǎng)的數(shù)據(jù)回來。
網(wǎng)段和子網(wǎng)掩碼需要連在一起說,但絕大多數(shù)人只需要了解網(wǎng)段就可以了。簡單來說,IP地址(V4)都是X.X.X.X的格式,除開第一個X不能是0和127,最后一個X不能是0以外,其他的X都是0-255。由于子網(wǎng)掩碼一般都是255.255.255.0,因此在這個前提下,只要局域網(wǎng)內(nèi)的IP地址前三個X都是相同的數(shù)字,那么這些IP地址就都在同一個網(wǎng)段內(nèi),可以相互訪問,不需要NAT。
局域網(wǎng)內(nèi)的設(shè)備相互訪問的條件是同一網(wǎng)段,和網(wǎng)關(guān)沒有關(guān)系,沒有網(wǎng)關(guān)的設(shè)備也能訪問同網(wǎng)段的其他局域網(wǎng)設(shè)備。
DHCP服務(wù)是用來分配局域網(wǎng)IP地址的,它一般都在路由器上,但是它是可以獨立存在的,類似的包括網(wǎng)關(guān)、DNS服務(wù)器也是這樣。DHCP主要作用是集中的管理、分配IP地址,使網(wǎng)絡(luò)環(huán)境中的主機(jī)動態(tài)地獲得IP地址、網(wǎng)關(guān)地址、DNS服務(wù)器地址等信息,所以如果你的局域網(wǎng)中有多個DHCP服務(wù)器的話,IP地址的分配就很可能會出問題,分配出去的IP地址有沖突的可能性。一個局域網(wǎng)內(nèi)可以沒有DHCP服務(wù)器,但是不能有多個DHCP服務(wù)器。
DNS是用來做域名解析的,就是把你輸入的網(wǎng)址轉(zhuǎn)換成IP地址。如果設(shè)備找不到DNS服務(wù)器,那么你通過網(wǎng)址就訪問不了相應(yīng)的服務(wù)。至于遞歸和迭代查詢,不好講,也不需要了解。
好了,沒了,簡單總結(jié)一下。你想要上網(wǎng),那么首先路由器上的PPPoE得跑起來,然后其他設(shè)備需要和路由器在同一個網(wǎng)段,并且網(wǎng)關(guān)指向路由器,在有有效DNS服務(wù)器的前提下,你針對互聯(lián)網(wǎng)的數(shù)據(jù)就可以正常的通過路由器的NAT出去又回來了。看起來很復(fù)雜,但是路由器基本上能夠很簡單的把這些活給你干了,你不需要太多的干預(yù)。但是因為我們下面說的是軟路由,所以整個流程你是要做到心里有數(shù)的。
3.難度
部署軟路由難不難?不難,但是第一次搞可能會比較繁瑣。繁瑣和困難還是有很大區(qū)別的。我比較喜歡把跑了Openwrt的設(shè)備看成是一臺運行了特定linux的電腦,這樣理解起來會更加方便一些,你每天都會用電腦的對不對,現(xiàn)在只是換了一個操作系統(tǒng),但你接觸的還是電腦。
落實到實際的操作上,部署軟路由的流程簡單概括一下就應(yīng)該是:裝系統(tǒng)——訪問WebUI或者是GUI——配置網(wǎng)絡(luò)和服務(wù)——接入現(xiàn)有網(wǎng)絡(luò)——測試——調(diào)試——正常使用。
其實我們在用任何新電子設(shè)備的時候差不多都是這么個流程,而軟路由的繁瑣就繁瑣在測試和調(diào)試這一塊上面。我比較推薦也是現(xiàn)在正在用的方式是,不動現(xiàn)有的網(wǎng)絡(luò)結(jié)構(gòu),先把軟路由自身的IP地址(LAN)設(shè)置到局域網(wǎng)的網(wǎng)段(不要和其他設(shè)備沖突),網(wǎng)關(guān)設(shè)置到現(xiàn)有的網(wǎng)關(guān)(DNS同理),關(guān)閉自身的DHCP,檢查無誤以后就可以接入現(xiàn)在再用的局域網(wǎng)了。記住,你現(xiàn)在折騰的是一臺電腦,不是路由器,是電腦!
接好以后開始配置你想要的各種服務(wù),拿科學(xué)來說,訂閱完畢以后,其他想要科學(xué)的設(shè)備直接把網(wǎng)關(guān)指定到這臺軟路由的IP上就行了。
如果你想要進(jìn)階一點,不想一臺一臺的設(shè)備這么手動指定,那么做法分兩種,如果主路由的DHCP服務(wù)能夠自己指定網(wǎng)關(guān),那么就在主路由的DHCP上把網(wǎng)關(guān)填成軟路由的IP地址。如果主路由沒法這么搞,那么你就反過來,把主路由的DHCP關(guān)掉,軟路由DHCP打開,在軟路由上把網(wǎng)關(guān)填成它自身的IP地址就行了,不過額外需要注意一點,DNS服務(wù)器順帶也搞一搞,填運營商的DNS,公共DNS,路由器的地址都可以。
這種用法就是你們經(jīng)常看到的“旁路由”用法,但實際上在這種工作模式下的軟路由既沒有NAT也沒有做路由,所以我更喜歡直接把它叫做是網(wǎng)關(guān)。這樣做的好處是,配置起來相對簡單,跑科學(xué)的時候不額外占用主路由的性能,你的軟路由掛掉了之后不影響其他設(shè)備的互聯(lián)網(wǎng)訪問(特指需要特學(xué)的設(shè)備手動指定網(wǎng)關(guān)到路由器這種情況),你可以隨時隨地的折騰你的軟路由,折騰到天崩地裂也不影響老婆看綜藝孩子看汪汪隊爸媽看連續(xù)劇IPTV。
當(dāng)你折騰得差不多了,心里有數(shù)了,你就可以進(jìn)一步地開搞了,比如讓軟路由負(fù)責(zé)撥號,替換掉原來的硬路由,硬路由只負(fù)責(zé)收發(fā)無線信號了。
4.穩(wěn)定性
這一塊不太好說,因為我覺得蠻穩(wěn)定的,但是網(wǎng)上也有很多人說不穩(wěn)定的。所以這也是為什么我建議首先從網(wǎng)關(guān)模式開搞的原因。目前常見的軟路由基本上都是商家自己拼的,硬件的來源不確定性太多,散熱、供電、網(wǎng)卡這些都是坑,所以很多人都被弄得有一點神經(jīng)衰弱了,一旦網(wǎng)絡(luò)有問題,就開始懷疑是不是軟路由的鍋,這也不全錯,如果你把它當(dāng)主路由來使,特別是塞進(jìn)弱電箱用這種,它可能真的會不太穩(wěn)定,硬路由還漏油呢,更何況X86的發(fā)熱本來就大。
但從我的經(jīng)驗來看,軟路由很穩(wěn),一旦你把它弄好了,你就別再去折騰它了,我大半年不重啟不升級系統(tǒng)也跑得嗷嗷的,總的來說就是看臉唄,硬路由不同的人用起來穩(wěn)定性也不一樣,那軟路由當(dāng)然也會遇到這種情況。
5.更多玩法
如果你選擇使用的是性能更好的X86設(shè)備,僅僅拿來跑個軟路由對于性能又是一個很嚴(yán)重的浪費,那么你在對于軟路由已經(jīng)折騰得比較順利的情況下就可以考慮一些進(jìn)階的玩法了,比如在Openwrt上跑跑Docker,PVE Esxi虛擬化跑個win liunux nas Emby啥的,都行,但是這里面所涉及到的知識點也比較多(網(wǎng)卡直通、顯卡直通、硬盤直通各種直通),不過相關(guān)的教程也很多,你折騰會了軟路由,這些東西也就是水到渠成的事情了,不會太超綱。
我目前的情況是這樣的,發(fā)個拓?fù)鋱D:
簡單來說,就是搞了一臺NUC8,裝PVE在nvme SSD上,因為它本身是個完整的Debian,直接在PVE環(huán)境下部署了一個Emby,不用顯卡直通就可以硬解,然后插了一個USB千兆網(wǎng)卡給Openwrt用(系統(tǒng)裝在虛擬的硬盤上),win10裝在了3.5的SSD上,平時跑跑PT,順帶遠(yuǎn)程桌面連回家,另外一個Linux(虛擬硬盤)沒事的時候?qū)W習(xí)一下相關(guān)的命令,因為有快照功能,你在折騰前先創(chuàng)建一個快照,崩了直接恢復(fù),相當(dāng)方便。對了,AdguardHome也部署在這個Linux上,去去廣告(其實是通過DNS解析實現(xiàn)的),另外京東自動簽到領(lǐng)京豆也在這上面,我這個月已經(jīng)領(lǐng)了快5000個了,2333
至于主路由, 是拆得只剩下主板的小米AC2100,Padavan固件很給力,內(nèi)外網(wǎng)千兆都跑的嗷嗷的,cpu占用極低
另外兩個路由器則負(fù)責(zé)收發(fā)無線信號,客廳的給爸媽孩子用,臥室的我和老婆用,因為3600覆蓋很給力,也就沒折騰mesh acap這些了
6.一些建議
如何入門?
直接用現(xiàn)成的電腦跑個虛擬機(jī)就可以入門了,但是涉及到虛擬機(jī)又是另外一個話題了,所以我建議怵虛擬機(jī)的朋友可以考慮直接用N1,便宜,玩法多,后期折騰明白了想換設(shè)備N1賣了不會虧太多,你不賣也能刷個小鋼炮用來下載,刷個安卓TV用來看視頻(有這方面的打算可以最開始就買一個T1的藍(lán)牙遙控器),或者用來玩玩模擬器都可以。
幾個網(wǎng)口夠用?
我認(rèn)為是兩個,一個wan一個lan就夠了,軟路由的數(shù)據(jù)交換全靠cpu,你lan口多了也不見得是好事,但是如果你要跑虛擬機(jī)All in One的話,可以適當(dāng)加一些網(wǎng)口,直通出去效能可能會好一點,但實際上我目前在用的NUC就一個網(wǎng)卡,跑這么多服務(wù)還是嗷嗷的,千兆科學(xué)+Emby一樣沒問題,CPU負(fù)載不到50%,所以只要你的CPU夠強(qiáng),網(wǎng)卡可以直接虛擬出來直接靠算力硬剛,沒有太大問題,我接USB的網(wǎng)卡完全是因為之前害怕不行提前買回來了,那就插著用唄,但成品軟路由不建議這么干,供電可能會有問題。
All in One好嗎?
我感覺不太好,但是我目前也在這么用著,看上去挺矛盾的,其實主要原因是我還沒找到適合我的設(shè)備把這些服務(wù)一個一個的分出去。為什么我會覺得不太好呢?大概心里因素占據(jù)了更多的原因吧,最開始NUC買回來是直接用Win10 屏蔽了自動更新然后用VmWare Player虛擬了Openwrt跑的,pt下載 迅雷下載 emby在win里,pt沒速度了想要重啟,一重啟openwrt就沒了,反正就是win環(huán)境下需要重啟的因素太多了,一旦重啟所有服務(wù)全部掛掉,這就讓人很崩潰,但是換到PVE以后反而就沒遇到這種問題了,所以我的建議大概率做不得數(shù),自己權(quán)衡一下就好。