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