OrangePi Zero安裝openwrt配FRP內(nèi)網(wǎng)穿透

由于家里的寬帶沒(méi)有公網(wǎng)IP,所以在外面訪問(wèn)自己的電腦就成了問(wèn)題,雖然有TeamViewer,但是它經(jīng)常性的斷連更新密碼,老是各種連不上,所以還是FRP內(nèi)網(wǎng)穿透方便,剛好手里有個(gè)OrangePi,正好可以利用起來(lái)。

原理介紹

內(nèi)網(wǎng)穿透就是當(dāng)你家的寬帶沒(méi)有公網(wǎng)IP的時(shí)候,你在外面想連接家里的電腦或者攝像頭或者NAS什么的,就沒(méi)有辦法連接。此時(shí)一種辦法就是和寬帶的客服battle,看能不能給你提供一個(gè)公網(wǎng)IP。如果失敗,另一個(gè)招就是使用FRP進(jìn)行內(nèi)網(wǎng)穿透。FRP就是需要你有一臺(tái)具有公網(wǎng)IP的服務(wù)器,比如阿里云、騰訊云,然后利用這個(gè)VPS當(dāng)跳板,這樣就能利用VPS的公網(wǎng)IP訪問(wèn)到你的內(nèi)網(wǎng)設(shè)備。

材料準(zhǔn)備

  • VPS:從原理上我們知道需要準(zhǔn)備一個(gè)帶有公網(wǎng)IP的VPS,國(guó)內(nèi)的阿里云、騰訊云等最好,國(guó)外的VPS也可以但是通常延遲會(huì)很大,搭好以后操作比較卡頓體驗(yàn)很差。我自己測(cè)試過(guò)國(guó)外的VPS延遲一般在280300ms左右,國(guó)內(nèi)的騰訊云在4050ms左右,你自己可以ping一下他的公網(wǎng)IP試試,實(shí)際體驗(yàn)我認(rèn)為20ms以內(nèi)最好,最大不超過(guò)100ms。實(shí)際上,如果你哪個(gè)朋友家里有公網(wǎng)IP,利用他家里的電腦也可以作為服務(wù)端,不過(guò)這個(gè)很難滿足,暫不討論。
  • 本地客戶端:家里的內(nèi)網(wǎng)需要有個(gè)設(shè)備作為客戶端,和服務(wù)端配合完成協(xié)議的中轉(zhuǎn),有些人動(dòng)手能力比較強(qiáng),可以把自己的路由器刷成openwrt的系統(tǒng),用它作為客戶端,有人直接運(yùn)行在自己的windows電腦上作為客戶端。我這里就是用的一個(gè)OragenPi做的,相信你能看到這個(gè)博客大概率是通過(guò)OrangePi搜索進(jìn)來(lái)的,我們就只寫這種情況,另外你需要準(zhǔn)備讀卡器,大于1G的TF卡。
  • 操作步驟

    服務(wù)端安裝

    下載FRP服務(wù)端,一般大家申請(qǐng)的VPS都是linux系統(tǒng)的,到FRP的GITHUB地址下載最新的版本,linux服務(wù)器下載下圖中的386或者64版本,視你的系統(tǒng)是32還是64位系統(tǒng)而定,不清楚的統(tǒng)一選擇386即可。

    解壓下載的壓縮包,因?yàn)樽龇?wù)端,所以我們只需要里面的frps和frps.ini兩個(gè)文件,把它上傳到你VPS的/usr/local/frp目錄中,修改frps.ini文件內(nèi)容如下:

    [common]bind_port = 17000dashboard_port = 17500dashboard_user = 網(wǎng)頁(yè)控制臺(tái)用戶名dashboard_pwd = 網(wǎng)頁(yè)控制臺(tái)密碼vhost_http_port = 4000vhost_https_port = 4001max_pool_count = 50token = xxxxxxxxxxxxxxxxxxxtcp_mux = truelog_file = ./frps.loglog_level = infolog_max_days = 3authentication_timeout = 0privilege_mode = true

    上面的17000是你服務(wù)器和客戶端通信使用的端口,17500是網(wǎng)頁(yè)查看服務(wù)器狀態(tài)的時(shí)候使用的端口,下面的用戶名密碼這些都可以根據(jù)你自己的喜好配置。token是服務(wù)端和客戶端通信認(rèn)證用的,到時(shí)候兩個(gè)必須要填的一樣。其他的選項(xiàng)保持不動(dòng)即可。

    開放服務(wù)器的防火墻端口

    剛才我們配置使用了17000 17500 4000 4001這些端口,我們要在服務(wù)器上開放這些端口,否則訪問(wèn)不了,我的是centos系統(tǒng),操作如下,其他的發(fā)行版自己搜索對(duì)應(yīng)的防火墻添加端口命令。

    # 列出系統(tǒng)當(dāng)前開放的端口號(hào)firewall-cmd --list-port# 添加端口,其他的端口類似操作即可firewall-cmd --zone=public --add-port=17000/tcp --permanent# 重啟防火墻使規(guī)則生效firewall-cmd --reload# 再次查看對(duì)應(yīng)端口好是否打開firewall-cmd --list-port

    開啟服務(wù)器

    執(zhí)行下列操作確定FRP服務(wù)器

    cd /usr/local/frpchmod +x *nohup ./frps -c frps.ini > /dev/null 2>&1 &

    OrangePi安裝OpenWRT系統(tǒng)

    網(wǎng)上已經(jīng)有人專門發(fā)布基于OrangePi Zero打包的OpenWRT系統(tǒng)了,直接點(diǎn)擊pulpstone網(wǎng)站下載對(duì)應(yīng)的版本。網(wǎng)站有可能改版,需要你自己找下下圖所示的鏈接下載:

    下載之后解壓,用軟件把解壓出的img鏡像文件燒寫到SD卡中,燒寫軟件我用的是樹莓派官方推薦的imager.exe。

    安裝后啟動(dòng),默認(rèn)用戶名密碼是root,root

    OrangePi安裝frp客戶端

    同樣從上面的GITHUB地址中下載arm的壓縮包,解壓后我們只需要frpc和frpc.ini文件,同樣上傳到OrangePi的/usr/local/frp中,frpc.ini修改如下:

    [common]server_addr = xxx.xxx.xxx.xxxserver_port = 17000log_file = ./frpc.logtoken = xxxxxxxxxxxxxxxxxxxlogin_fail_exit = false[ssh]type = tcplocal_ip = 192.168.124.8local_port = 22remote_port = 17522[mstsc]type = tcplocal_ip = 192.168.124.6local_port = 3389remote_port = 17589use_encryption = trueuse_compression = true

    修改上面的xxx字樣部分為你自己服務(wù)器的ip、端口以及token,然后下面的我映射了我自己OrangePi的ssh端口和我windows電腦的遠(yuǎn)程桌面3389端口,分別映射到遠(yuǎn)程服務(wù)器的17522和17589端口,因此,我們需要到遠(yuǎn)程VPS的機(jī)器上,再把17522和17589端口打開防火墻,操作和上面一樣。

    啟動(dòng)客戶端并設(shè)置開啟自啟

    手動(dòng)啟動(dòng)測(cè)試下,命令如下:

    cd /usr/frpc./frpc -c frpc.ini

    操作完成后,既可以測(cè)試內(nèi)網(wǎng)穿透效果了,比如ssh端口測(cè)試如下:

    遠(yuǎn)程桌面測(cè)試如下:

    測(cè)試完成沒(méi)問(wèn)題可以通之后,可以登陸frp的網(wǎng)頁(yè)管理端,在瀏覽器輸入openwrt的IP地址,彈出登陸界面:

    輸入root密碼之后,在系統(tǒng)-啟動(dòng)項(xiàng)里面,填入如下命令:

    cd /usr/frpc./frpc -c frpc.ini &

    這樣在orangepi斷電重啟之后,會(huì)自動(dòng)在后臺(tái)啟動(dòng)frp服務(wù),不用手動(dòng)起了。

    OK,到此就可以完成內(nèi)網(wǎng)穿透了,買了獨(dú)立域名的還可以配置域名跳轉(zhuǎn)到服務(wù)器IP,這樣就可以使用域名+端口號(hào)訪問(wèn)了,不用記IP。不過(guò)我這里個(gè)人感覺(jué)意義不大沒(méi)有試,感興趣的可以自行g(shù)oogle試試。

    最后編輯于
    ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
    【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
    平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

    友情鏈接更多精彩內(nèi)容