【Openwrt】從入手軟路由到刷機(jī)到文件服務(wù)器到Nodejs到docker home-assistant智能網(wǎng)關(guān)
前言:
? ? [極其詳細(xì)]零基礎(chǔ)小白一文搞定軟路由概念,從刷機(jī)到配置,到做服務(wù)器環(huán)境以及內(nèi)網(wǎng)穿透映射公網(wǎng)到sftp文件服務(wù)器,到docker基礎(chǔ),到docker home-assistant智能網(wǎng)關(guān)
? ??那么這篇文章適合誰呢,
????我想適合人群應(yīng)該包含但不限于:
想要接觸Linux系統(tǒng)
想了解網(wǎng)絡(luò)IPv4、子網(wǎng)掩碼、網(wǎng)關(guān)概念和基本的通信網(wǎng)絡(luò)基礎(chǔ)
想要方便的科學(xué)上網(wǎng)
想了解使用Docker技術(shù)
想擁有一臺(tái)屬于自己的服務(wù)器
想學(xué)習(xí)內(nèi)網(wǎng)穿透隨時(shí)隨地能訪問自己家里的電腦,局域網(wǎng)設(shè)備,智能家居設(shè)備
想掛載自己的制作的動(dòng)態(tài)Html網(wǎng)頁項(xiàng)目,不受限于GitHub靜態(tài)網(wǎng)頁
????這篇文章是最近自己從零開始學(xué)習(xí)并使用openwrt的一些經(jīng)歷以及遇到的坑,以此來記錄一下,以防以后忘記。本文由于篇幅并不會(huì)事無巨細(xì),有些別人以及講的非常出色的地方我就直接貼鏈接,并不會(huì)重復(fù)贅述。

//written by Bigonion welcome to my website
https://bigonion.cn
https://bigonion.cn/blog
//
一、軟路由的購買與基礎(chǔ)概念
??????? 首先:如果你不知道什么是IP地址,端口,DNS,內(nèi)網(wǎng)網(wǎng)段,網(wǎng)關(guān),光貓橋接模式他們都是什么,我十分建議你提前百度/Goole/必應(yīng)/360/B站先了解一下:
IP地址、DNS(必懂):
光貓橋接(必懂):
?Ipconfig基本命令(擴(kuò)展,可以隨便看看):
Linux系統(tǒng)基本命令行操作和基礎(chǔ)文件結(jié)構(gòu)(選看,當(dāng)查表也可以)

我是分割線\( ̄︶ ̄*\))

??
????首先,我想問,什么是軟路由?當(dāng)然他們都是路由器啦(~ ̄▽ ̄)~?這里簡單總結(jié)一下硬路由和軟路由區(qū)別:
硬路由:目前我們家里普遍使用的路由器,不能隨意更換系統(tǒng),功能很簡單很有限,一般我們只用來寬帶撥號(hào),傳播WiFi信號(hào),TP-LINK的路由器后臺(tái)長這樣

軟路由:軟路由就是一臺(tái)完整的電腦,通過刷入openwrt,LEDE,愛快等系統(tǒng),(PS:這些只是個(gè)名字,其實(shí)你刷win10也能當(dāng)軟路由的,只是win10消耗CPU等資源太大,不適合做軟路由)
能干硬路由所能做的?所有?事情,更完善的管理局域網(wǎng)內(nèi)所有設(shè)備的IP地址,App流量監(jiān)控,廣告過濾,DNS防污染,等操作。Ta大概長這樣:

????????關(guān)于軟路由的購買,我也去B站搜了很多推薦視頻,可以分成ARM和x86這兩種架構(gòu)的流派,下面是ARM和x86的區(qū)別,最不嚴(yán)謹(jǐn)?shù)恼f法就是Windows屬于X86平臺(tái),手機(jī)安卓系統(tǒng)屬于ARM平臺(tái)
ARM 推薦的有R2S、R4S、樹莓派等
優(yōu)點(diǎn):功耗低,便宜,缺點(diǎn):兼容性有點(diǎn)差
X86 這邊有J1900、N1、J4125等
優(yōu)點(diǎn):擴(kuò)展性強(qiáng),性能好,缺點(diǎn):功耗比較高,貴
????首先我對(duì)ARM目前的兼容性不是很看好,其次我還想要順便學(xué)習(xí)一下如何使用微PE系統(tǒng)對(duì)Windows裝系統(tǒng),所以我選擇了J1900的工控機(jī)
????還有一個(gè)問題:你想要軟路由做主路由還是旁路由?他們的區(qū)別,優(yōu)缺點(diǎn)和連接方法也許大概是這樣的:
主路由:
{
概念:全家所有設(shè)備的流量都走你的主路由,都把它作為網(wǎng)關(guān),主路由科學(xué)上網(wǎng),局域網(wǎng)全部設(shè)備都在長城外
優(yōu)點(diǎn):拓?fù)浣Y(jié)構(gòu)簡單
缺點(diǎn):設(shè)備必須要有雙網(wǎng)口(最好是千兆)
主路由連線方法:你的軟路由WAN口(WAN口可以看作是寬帶入口,連接上一級(jí)網(wǎng)絡(luò))連接光貓(光貓的功能:把光纖的光信號(hào)轉(zhuǎn)換成電信號(hào)),在配置里進(jìn)行撥號(hào)上網(wǎng),然后你的軟路由LAN口(LAN口可以看作是出口),連接到你的硬路由的WAN口,幫你廣播WIFI信號(hào)
}
旁路由:
{
概念:全家所有正常連接WiFi的設(shè)備流量都走你原來的路由器,通過你原來的路由器DHCP(DHCP指的是自動(dòng)分配局域網(wǎng)中設(shè)備的IP地址和租約等配置)服務(wù)分配到IP和網(wǎng)關(guān)、dns等配置,想要科學(xué)上網(wǎng)的設(shè)備,在你的電腦手機(jī)更改WLAN配置為手動(dòng)設(shè)置,設(shè)置網(wǎng)關(guān)為旁路由的LAN口IP地址,這個(gè)時(shí)候,想要特殊上網(wǎng)環(huán)境的設(shè)備就可以單獨(dú)走另一條路,實(shí)現(xiàn)局域網(wǎng)內(nèi)設(shè)備,各取所需上網(wǎng)環(huán)境
優(yōu)點(diǎn):主路由(你原來的硬路由器)不需要任何更改,靈活分配,單網(wǎng)口設(shè)備就能實(shí)現(xiàn)!
缺點(diǎn):配置復(fù)雜一些,需要關(guān)閉軟路由的DHCP服務(wù)器
旁路由連線方法:你的原來的硬路由(原來提供你wifi的路由器)的LAN口連接你的軟路由LAN口,使他們?cè)谕?strong>網(wǎng)段內(nèi),相當(dāng)于橋接

}
沒看懂? =>推薦閱讀專欄網(wǎng)站:
于是在淘寶搜索花了300多2+16G下單了,我的J1900大概也許長這樣:
如果你選擇工控機(jī)的話,COM接口對(duì)你來說沒啥用?0-0-

二、軟路由刷寫Openwrt系統(tǒng)
?????首先,我是看別人的視頻的,講的非常詳細(xì),強(qiáng)烈推薦BRAVERU科技頻道的講解:https://www.bilibili.com/video/BV1w541157Uo?spm_id_from=333.337.search-card.all.click
看完自然就明白怎么刷了!有UI界面的軟件操作非常的簡單
固件的話我推薦大家去恩山論壇自己找,自己編譯固件真的費(fèi)時(shí)費(fèi)力沒必要了,在這個(gè)鏈接找也可以:
如果大家實(shí)在找不到可以發(fā)email到a454888395@gmail.com或者私信問我要鏈接?
???
三、軟路由啟動(dòng)Openwrt系統(tǒng),并進(jìn)行基本配置
?????我用的是U盤刷的系統(tǒng),刷好后插入J1900主機(jī)usb口,接入鍵盤,開機(jī)狂按F2,進(jìn)入bios界面,在Advanced選項(xiàng)中更改boot啟動(dòng)順序?yàn)閺腢盤啟動(dòng),大家如果不會(huì)的話直接百度:bios怎么從U盤啟動(dòng) 。就可以了,這方面教程多如牛毛....
????好的,你現(xiàn)在已經(jīng)刷好Openwrt系統(tǒng)了,也設(shè)置好從U盤啟動(dòng)了,如果你選擇把鏡像.img刷入硬盤內(nèi)的話,直接拔出U盤媒介,他就會(huì)從硬盤自動(dòng)啟動(dòng)Openwrt系統(tǒng)了!
? ? 接HDMI到顯示器,
????插腚,開機(jī)\( ̄︶ ̄*\))
????PS:你最好有一臺(tái)顯示器(不是必須的,但是很多時(shí)候都很重要)
開機(jī)后有顯示器的方式:
{
????但是,這個(gè)時(shí)候有可能你不能直接進(jìn)入Openwrt系統(tǒng),而是進(jìn)入shell>命令行,只需要輸入exit就可以退出,但如果是其他提示你找不到系統(tǒng)啟動(dòng)文件,那你一定是刷了錯(cuò)誤的Openwrt鏡像,或者沒能成功設(shè)置Bios 從U盤/硬盤啟動(dòng) 。
不出意外的話,經(jīng)過kernel啟動(dòng),就會(huì)進(jìn)入openwrt界面了!
進(jìn)入之后會(huì)顯示
這個(gè)樣子,是你沒有設(shè)置root密碼導(dǎo)致的,你需要輸入passwd去設(shè)置root密碼
}
沒有顯示器的方式:
{
????還有另一種方式是不需要你用額外的顯示器操作的,但是這種方式的前提是你已經(jīng)按照網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)選擇主路由/旁路由連線方式連接好軟路由和硬路由了:
在 管理員:powershell (win10:依次按下win+x =>?A =>?左鍵回車確定授權(quán))使用telnet 或者ssh命令進(jìn)行局域網(wǎng)連接
telnet因?yàn)槊魑膫鬏數(shù)脑?,十分的不安全,我更喜歡用ssh ,如果你輸入ssh后提示找不到命令,請(qǐng)你先安裝Openssh
Win10設(shè)置里開啟Openssh微軟官方文檔:
開啟ssh后,你需要在 管理員:powershell輸入?:ssh root@軟路由ip地址
例如:
來連接到你的軟路由,
接下來輸入 passwd 來設(shè)置你的root密碼
如果你不知道IP地址是什么,怎么填,請(qǐng)往下看
}
IP地址 的問題:
{
如果很不巧,Openwrt默認(rèn)的LAN口IP地址和你的主路由不在一個(gè)網(wǎng)段
這一點(diǎn)編譯者會(huì)在他的文章里面告訴你默認(rèn)IP是多少,請(qǐng)自己仔細(xì)閱讀
比如說你的WIFI硬路由后臺(tái)地址是:192.168.1.1
你的固件默認(rèn)IP地址是10.0.0.1,那他們連起來如果沒有NAT服務(wù)器的話,是沒辦法進(jìn)行通信的,也就是說你必須先更改LAN口默認(rèn)IP地址
有顯示器的話輸入ifconfig查詢IP地址

可以看到我的eth0口IP地址是10.0.0.200
}
LAN口IP地址修改
{
輸入
用自帶的vim編輯器,進(jìn)入到網(wǎng)絡(luò)配置文件編輯

在這里,修改interface,lan 的ipaddr(IP地址)后面 為你想要的IP地址,
如果是旁路由模式:
{
????如果主路由IP地址是192.168.1.1那么,更改為192.168.1.x ,
????如果路由器地址是192.168.31.1,那么更改為192.168.31.x,
????其中1<x<255隨便挑一個(gè)你喜歡的就可以,不要和正在聯(lián)網(wǎng)的設(shè)備分配到的IP重合就行,
????其他隨你在內(nèi)網(wǎng)網(wǎng)段內(nèi)挑選,然后電腦連接到WIFI,或者用網(wǎng)線連接電腦和路由器LAN口
}
如果是主路由模式:
{
????軟路由做主路由,可以隨便你選內(nèi)網(wǎng)網(wǎng)段,
????10.0.x.x 或者192.168.x.x,172.16.x.x都可以,
????這個(gè)時(shí)候必須把你的硬路由后臺(tái)設(shè)置成自動(dòng)獲取IP地址,然后電腦連接到WiFi
????或者用網(wǎng)線連接電腦和路由器LAN口
}
vim 編輯器操作方法:
按下A 進(jìn)入編輯模式,修改完成后,按下ESC,按住shift 同時(shí)按下兩次z 保存退出,或者按下ESC之后,輸入一個(gè)冒號(hào):然后再依次輸入wq ,回車后就可以保存退出,
接著重啟軟路由
或者輸入
重啟網(wǎng)絡(luò)服務(wù)
}
四、通過瀏覽器進(jìn)入Openwrt 網(wǎng)絡(luò)后臺(tái)
????恭喜你,你成功完成了安裝和IP設(shè)置,現(xiàn)在是檢驗(yàn)?zāi)阍O(shè)置和連接是否正確的時(shí)候,請(qǐng)你連上WIFI,或者把電腦用網(wǎng)線接到硬路由器的Lan口上,這樣你和軟路由就在同一個(gè)局域網(wǎng)了,如果你前面設(shè)置軟路由IP地址是正確的話,此時(shí)你的電腦,和軟路由,硬路由器,就處于同一個(gè)IP網(wǎng)段,同一個(gè)局域網(wǎng)內(nèi),能夠相互進(jìn)行通信了!(不信你ping一下它的IP??)
可以通過在瀏覽器網(wǎng)址欄輸入你的軟路由IP地址進(jìn)行訪問WEB管理頁面了!輸入你前面設(shè)定的軟路由IP地址,忘了的,邦邦給你兩拳(っ °Д °;)っ

進(jìn)入Web圖形化管理后臺(tái)
初始密碼一般是
賬號(hào):root
密碼:root
做主路由寬帶撥號(hào)上網(wǎng)配置:
{
參考文章:
文章2:
LAN口配置
{
點(diǎn)擊網(wǎng)絡(luò) => 接口 右邊?點(diǎn)LAN口的編輯

忽略此接口不要打勾,要開啟DHCP服務(wù)

常規(guī)設(shè)置里,設(shè)備選擇你想要的物理網(wǎng)口一般是以eth0,eth1命名的,分別代表第一個(gè)RJ45網(wǎng)口,和第二個(gè)RJ45網(wǎng)口
IPv4網(wǎng)關(guān)留空(你撥號(hào)的時(shí)候會(huì)自動(dòng)填入上級(jí)網(wǎng)關(guān)的),子網(wǎng)掩碼一般是255.255.255.0,看具體情況,IPv6可以直接禁用,不禁用也行,廣播地址就是你的LAN口設(shè)置的IP地址段的最后一個(gè)地址
例如:192.168.1.1到192.168.1.254 總共254個(gè)設(shè)備處在192.168.1.x的IP網(wǎng)段,廣播地址就是192.168.1.255,配置完成后一定要點(diǎn)擊保存

}
WAN口配置
{
然后點(diǎn)擊WAN口的編輯進(jìn)入WAN口配置

常規(guī)設(shè)置里面,協(xié)議選擇PPPoE協(xié)議,點(diǎn)擊切換協(xié)議后,設(shè)備選擇你想要的WAN口,
點(diǎn)擊保存后返回

輸入你的寬帶賬戶和密碼,然后DHCP里勾選忽略此接口,都保存后,重啟路由器,不出意外的話,那你就能上網(wǎng)了!
}
}
//written?by?Bigonion?welcome to my website
做旁路由配置:
{
LAN口配置
{
只需要對(duì)LAN口編輯,因?yàn)槟阒恍枰B接LAN口到硬路由嘛,所以WAN不需要配置,
對(duì)LAN口配置需要勾選忽略DHCP服務(wù)器,
系統(tǒng) => 設(shè)置向?qū)?中打開旁路由模式,因?yàn)榫钟蚓W(wǎng)內(nèi)已經(jīng)有一個(gè)DHCP服務(wù)器了就是你的硬路由,這個(gè)時(shí)候你的硬路由依然承擔(dān)撥號(hào)上網(wǎng)功能,
對(duì)LAN口設(shè)置IPV4網(wǎng)關(guān)為你的硬路由器IP地址
依然推薦這一篇文章,寫的很詳細(xì):
}
}
此時(shí),你已經(jīng)配置好了,請(qǐng)讓點(diǎn)擊WAN和LAN口的重啟按鈕,LAN和WAN都重啟

然后在Openwrt命令行里輸入
如果能成功發(fā)送ICMP數(shù)據(jù)包,說明此時(shí)路由器已經(jīng)正確聯(lián)網(wǎng)了!
但如果一直卡住發(fā)不出PING包,請(qǐng)?jiān)賴L試ping ip地址(223.5.5.5替換成8.8.8.8也可以)
輸入
如果此時(shí)依舊沒有能發(fā)出PING包,丟包率100%的話,請(qǐng)重啟機(jī)器后再次檢查你的配置!
如果能 對(duì)IP發(fā)出ping 數(shù)據(jù)包,有延遲和回應(yīng)的話,證明此時(shí)已經(jīng)接入了互聯(lián)網(wǎng),只是DNS服務(wù)器配置丟失,請(qǐng)?jiān)?strong>LAN口 => 編輯 => 高級(jí)設(shè)置 => 使用自定義的DNS服務(wù)器,填入
223.5.5.5 后,回車或者點(diǎn)擊+號(hào),重啟LAN接口
再次嘗試ping www.baidu.com
如果能夠發(fā)出PING的數(shù)據(jù)包,證明此時(shí)已經(jīng)可以正確解析域名IP,能打開瀏覽器瀏覽網(wǎng)頁了!
五、使用Opkg 包管理工具安裝常用插件,和常用局域網(wǎng)文件服務(wù)器搭建
OPKG包管理工具:
{
????能到這里實(shí)在是太棒了!現(xiàn)在你已經(jīng)成功把Openwrt運(yùn)轉(zhuǎn)起來了,接下來是對(duì)Openwrt一些功能性插件,服務(wù)器的介紹,以及Opkg包管理工具的使用

點(diǎn)擊 系統(tǒng) => 軟件包?來到Opkg軟件包網(wǎng)頁管理界面,請(qǐng)先點(diǎn)擊更新列表,獲取所有軟件的目錄,或者通過ssh root@你的路由器局域網(wǎng)IP ,回車,輸入密碼后連接 輸入:
這兩個(gè)方法是等價(jià)操作
如果你遇到了以下報(bào)錯(cuò):
或者網(wǎng)頁報(bào)錯(cuò)說opkg 有任務(wù),正在運(yùn)行...
請(qǐng)輸入
刪除這個(gè)文件就可以使用opkg命令了
關(guān)于安裝插件,你可以在網(wǎng)絡(luò)UI界面篩選器內(nèi)直接搜索軟件名字

點(diǎn)擊安裝,你也可以使用
來搜索你想要的軟件包命字grep 后跟著的是具體軟件包名
然后通過
來安裝軟件包
}
推薦常用插件:
{
luci-app-turboacc :網(wǎng)絡(luò)加速插件,能緩解網(wǎng)絡(luò)阻塞和緩存DNS

iperf3 :局域網(wǎng)、互聯(lián)網(wǎng)測(cè)速軟件,只能在命令行使用:
命令行安裝命令:opkg install?
用法:iperf3 -s 當(dāng)server監(jiān)聽,另一臺(tái)網(wǎng)絡(luò)設(shè)備 使用iperf3 -c IP?來發(fā)包測(cè)速
samba4: 局域網(wǎng)smb3.0協(xié)議網(wǎng)絡(luò)共享軟件,可以在局域網(wǎng)另一臺(tái)設(shè)備的文件夾地址欄里輸入:\\IP地址 來訪問 例如


vsftpd : 用于搭建局域網(wǎng)ftp服務(wù)器
在另一臺(tái)局域網(wǎng)Win設(shè)備的文件夾里面輸入

更多插件推薦鏈接:
}
六、sftp文件服務(wù)器搭建,并通過內(nèi)網(wǎng)穿透端口實(shí)現(xiàn)外網(wǎng)訪問
????雖然,以上的文件服務(wù)器samba4,ftp,很棒,但是他們不太好通過內(nèi)網(wǎng)穿透來在公網(wǎng)訪問,以下提供比較好用的方法:
SSH內(nèi)網(wǎng)穿透,通過sftp傳輸
{
????????首先你要了解內(nèi)網(wǎng)穿透的原理:你的內(nèi)網(wǎng)可以訪問外網(wǎng)是因?yàn)楣W(wǎng)IP你能找到,但是外網(wǎng)卻沒有辦法直接找到內(nèi)網(wǎng)里的設(shè)備,于是就有內(nèi)網(wǎng)穿透技術(shù)的存在
????????我們通過一臺(tái)大家都能訪問到的公網(wǎng)服務(wù)器作為中轉(zhuǎn)服務(wù)器,通過在你和公網(wǎng)服務(wù)器之間分別建立客戶端client和服務(wù)端server,讓服務(wù)端定期轉(zhuǎn)發(fā)你的端口
(端口簡單來說,就是一個(gè)窗口,如果說IP地址是你家的門牌號(hào),那端口就是你家里能進(jìn)出的地方,例如:你家的窗戶,狗洞,門,煙囪,還有可能是你偷偷挖的通向外界的地道)
????????總而言之,它能夠把運(yùn)行在你電腦的軟件通過雙向轉(zhuǎn)發(fā)的方式,讓你的主機(jī)變相為外界提供服務(wù),如果轉(zhuǎn)發(fā)的公網(wǎng)服務(wù)器把你的電腦端口22(運(yùn)行著ssh服務(wù))轉(zhuǎn)發(fā)走了,轉(zhuǎn)發(fā)到了它自己的服務(wù)器端口:11451上面,此時(shí)我們?cè)L問這個(gè)網(wǎng)絡(luò)地址:公網(wǎng)服務(wù)器IP:端口號(hào)
例如公網(wǎng)IP是114.114.114.114的服務(wù)器幫你轉(zhuǎn)發(fā)那你訪問:
就能通過對(duì)這個(gè)地址發(fā)數(shù)據(jù)包,間接給你自己的內(nèi)網(wǎng)電腦的22端口發(fā)數(shù)據(jù)包,看起來你的內(nèi)網(wǎng)服務(wù)器好像就能被直接訪問到了一樣!
想要實(shí)現(xiàn)內(nèi)網(wǎng)穿透的前提是
我們需要先對(duì)Openwrt開啟訪問轉(zhuǎn)發(fā)ssh的權(quán)限?系統(tǒng) = > 管理權(quán) => SSH訪問 => 網(wǎng)關(guān)端口
打鉤?之后,你的設(shè)備的SSH端口才能被順利轉(zhuǎn)發(fā)(重要)

現(xiàn)在主流的協(xié)議就是開源的frp協(xié)議,不過要求你自己有一臺(tái)公網(wǎng)服務(wù)器。
然而公網(wǎng)服務(wù)器確實(shí)很貴,我推薦有免費(fèi)的服務(wù)方(沒收錢,廣告費(fèi)結(jié)一下)
Sakura FRP內(nèi)網(wǎng)穿透:免費(fèi)版兩個(gè)隧道,速度還可以,全平臺(tái),必須1元實(shí)名認(rèn)證
Cpolar 內(nèi)網(wǎng)穿透:免費(fèi)版四個(gè)隧道,簡單好用
花生殼 內(nèi)網(wǎng)穿透:免費(fèi)版兩個(gè)隧道,可以申請(qǐng)學(xué)生版,有多給一點(diǎn)月流量,有bug比較多
Zerotier 異地組網(wǎng): P2P如果打洞失敗,公網(wǎng)服務(wù)器來轉(zhuǎn)發(fā)流量體驗(yàn)不佳
????????他們都有非常非常詳細(xì)的用戶文檔,自行搜索他們官網(wǎng)查閱文檔就可以很輕松的實(shí)現(xiàn)內(nèi)網(wǎng)穿透了。等到你成功穿透后,會(huì)獲得一個(gè)他們給你的IP地址:端口號(hào)的形式,你可以直接通過ssh root@IP地址:端口號(hào) 來鏈接你的openwrt命令行
????????或者通過Winscp這個(gè)軟件或者finalshell等軟件,輸入這個(gè)IP:端口號(hào)來與你的openwrt服務(wù)器進(jìn)行通信和傳輸文件,不過免費(fèi)內(nèi)網(wǎng)穿透服務(wù)的帶寬很小就是了(1Mbps左右)
}
七、Nohup實(shí)現(xiàn)內(nèi)網(wǎng)穿透后臺(tái)運(yùn)行,Nodejs環(huán)境搭建
Nohup : No hang up(不掛起)
{
????????你會(huì)發(fā)現(xiàn),雖然你成功運(yùn)行了內(nèi)網(wǎng)穿透的軟件,但是你沒法關(guān)閉命令行,因?yàn)橐坏┠汴P(guān)閉了,內(nèi)網(wǎng)穿透的服務(wù)同時(shí)被你關(guān)閉,你需要一個(gè)能不被殺掉的后臺(tái)運(yùn)行方法,Node.js里有pm2工具可以保持后臺(tái)運(yùn)行,但是有一些是沒辦法通過pm2管理的,你需要nohup!
先安裝nohup ,命令行輸入
找到nohup的完整名字再opkg install 包名,安裝即可
????????使用方法:如果是cpolar的話本來運(yùn)行的命令是:
使用nohup 后臺(tái)運(yùn)行命令是:
此時(shí)用命令
記住它的PID號(hào),下一次想要停止這個(gè)內(nèi)網(wǎng)穿透服務(wù),可以用kill 命令:
如果jobs -l 顯示PID是11451
就用
來終止此后臺(tái)運(yùn)行服務(wù)
}
Node.js 環(huán)境搭建
{
在openwrt上部署node.js非常簡單,你只需要兩個(gè)命令就可以完成:
安裝好后輸入node -v , npm -v ,如果出現(xiàn)版本號(hào)就說明node.js安裝成功!
}
八、mount 命令掛載和umount取消掛載
linux下掛載很簡單,首先通過
來查看所有物理硬盤

如果沒有分區(qū)請(qǐng)百度使用
(x指的是你的盤號(hào),例如sda sdb sdc這樣遞增)來查看具體操作,再用
?來格式化你選的分區(qū)
推薦fdisk使用方法鏈接:
分區(qū)后請(qǐng)用cd命令切換到根目錄,mkdir命令創(chuàng)建一個(gè)想要叫的文件夾名字
最后用mount 命令來掛載,
如果你想要掛載的分區(qū)是sdb這塊物理盤的第二個(gè)分區(qū),參考代碼:
最后用df -h /dev/sdb2?查看這塊盤有沒有成功掛載
如果報(bào)錯(cuò)了說已經(jīng)掛載到/mnt/sdb2下了
請(qǐng)使用umount命令
取消掛載后再嘗試重新掛載到/media 目錄下
這一步是為了docker根目錄做準(zhǔn)備
(如果你看不懂什么叫掛載,什么叫分區(qū)的話,請(qǐng)百度)
九、Docker 部署home-assistant?
????????Docker技術(shù)你得先了解為什么會(huì)出現(xiàn),簡單來說為了解決運(yùn)行環(huán)境的問題,比如說,可能有些文件需要.net 框架,有的軟件需要nodejs環(huán)境,有的軟件需要Php5 有的要Php8 你不可能說一個(gè)環(huán)境就給他裝上一個(gè)虛擬機(jī)吧(土豪哥除外)一般的電腦真夠嗆的,所以有人開發(fā)了Docker,在軟件層隔離,而不需要硬件虛擬化所消耗的系統(tǒng)資源
參考鏈接:
了解了docker之后就可以開始了,依次安裝,這里可能(極大可能)需要特殊的網(wǎng)絡(luò)環(huán)境,要不然安裝的速度極為緩慢,并且失敗的可能性極高,依次輸入:
如果實(shí)在沒有特殊環(huán)境的小伙伴,請(qǐng)自行bing搜索如何更換opkg安裝源
等他們都安裝好了,此時(shí)請(qǐng)輸入
來查看是否成功安裝了docker
如果顯示版本號(hào)了說明你成功安裝docker了
此時(shí)請(qǐng)注意你的/overlay目錄的空間所剩無幾

你必須更換docker 根目錄到?至少2G剩余空間的目錄下

此時(shí)你可以開始拉取鏡像文件
參考文章(博主命令行有誤):
首先搜索home-assistant源
接著docker pull 命令拉取下載鏡像源
這一步,非常,久,硬等
安裝好以后,輸入
來查看所有安裝好的鏡像源

出現(xiàn)這個(gè)樣子說明pull已經(jīng)好了,沒有的話,請(qǐng)重新多次嘗試pull
參考鏈接里的原博主的docker run 跑容器的命令是不完全正確的,真這樣跑沒辦法在任何容器上完美運(yùn)行,評(píng)論區(qū)的命令也不完全正確,如果同時(shí)指定-p 端口:端口 和--net=host的話,docker反而會(huì)給你報(bào)錯(cuò),告訴你不可以同時(shí)這么指定
應(yīng)該大概可能也許正確的命令:
參數(shù)的話看docker官方文檔可以知道:
-d 表示后臺(tái)運(yùn)行
--name 表示容器自定義的名字
-v 表示配置文件映射關(guān)系,也就是docker里面的容器的配置文件在你宿主機(jī)里的真實(shí)位置
--net 表示虛擬網(wǎng)絡(luò)模式,有bridge(默認(rèn))host 主機(jī)模式等,具體詳見官方文檔
homeassistant/home-assistant 代表你要跑起來的鏡像名字
稍等一會(huì),你的docker 就成功跑起來docker 容器了,
輸入
查看所有容器,如果看到你的home assistant,那么它已經(jīng)成功跑起來了,
CONTAINER ID ,最左邊的參數(shù)就是你的容器ID
想要停止容器可以輸入:
來暫停容器運(yùn)行
輸入
來刪除你的容器,刪除容器并不會(huì)影響你的鏡像庫,輸入docker image ls依然可以看到你的鏡像,并可以重新docker run 建立新的容器?
這時(shí)候請(qǐng)你在局域網(wǎng)內(nèi)其他電腦打開瀏覽器輸入:你的軟路由ip:8123?
如:
如果出現(xiàn)home assistant的web界面了,恭喜你!成功了!
如果沒有反應(yīng),請(qǐng)你自行找到問題所在
十、Docker home-assistant安裝Hacs插件
????????
????????由于docker 官方給出的閹割版鏡像,沒法直接安裝Hacs 必須通過源文件的方式安裝
參考視頻(必看):
從此視頻下分享鏈接下載源文件,這個(gè)視頻用的samba的插件傳輸?shù)?strong>源文件,但是docker閹割版本沒有辦法直接下載samba插件,所以不可取,
但是,你可以通過Winscp或者finalshell軟件ssh連接到你的openwrt文件目錄下,找到你之前用docker run 命令里 -v 指定的路徑 來到這個(gè)路徑下,就是容器的根目錄了,接下來把up主分享的文件通過up主所說的步驟來放置解壓后的文件,
當(dāng)然你也可以通過
直接進(jìn)入你的docker 容器命令行內(nèi),通過scp 等命令直接傳輸解壓后的文件目錄,接著,請(qǐng)?jiān)诰W(wǎng)頁端開發(fā)者工具一欄,選擇重新啟動(dòng),然后按照UP主所說的方式安裝Hacs即可

注意:這里up主所說的文件夾名字,必須一字不差,否則無法識(shí)別,也就無法添加
接下來你就可以通過Hacs 添加 MiIoT設(shè)備,實(shí)現(xiàn)智能家居網(wǎng)關(guān)中心了!
后言:
至此,openwrt 的一些主流玩法,全部完成,非常感謝你能看到這里,
我們
????有緣
江湖
????再會(huì)____