FRP內網穿透技術實現對校園網電腦的遠程訪問
背景
目前越來越多的服務依賴於雲服務器端實現,很多demo在自己筆記本上進行測試是相當困難的,而自己用的臺式機又在實驗室,所以便攜訪問變得尤爲重要。當然,有很多軟件可以實現對本地電腦的遠程訪問,比如大名鼎鼎的TeamViewer或者是國產向日葵軟件,不僅可以用作FTP傳輸文件,就連VNC遠程訪問桌面也是優化的流暢至極。但是!!!無奈實驗室網速不太給力,時而5M/s,時而10kb/s,用TeamViewer的感覺一卡一卡的着實難受。而且也並不需要桌面環境,用TeamViewer就顯得很雞肋了,因此我們可以通過內網穿透技術,實現便捷的遠程訪問自己的電腦,用命令行進行遠程辦公。
擺在眼前的問題則是,實驗室電腦分配的是局域網IP,而非公網IP,因此我們則需要利用內網穿透技術,經本機的局域網IP的某端口映射到某個公網IP的端口,我們只需訪問公網IP的端口,通過端口數據轉發,則可實現對局域網內的電腦的一個遠程訪問。
搭建前準備工作:
- 公網IP ,我們可以在百度雲或者騰訊雲購買雲服務器,這樣就有了公網IP;比如百度雲的雲服務器,60元一年,相對來說還挺划算的。(我自己用的則是騰訊雲的學生機,1核2G,一年120…沒趕得上雙十一,遺憾!)
- 雲服務器主機,系統Ubuntu18.04LTS
- 本地局域網IP,Linux系統可通過ifconfig查看自己的局域網IP,而Windows系統則需要通過在cmd命令行中輸入ipconfig查看;
- 本地主機,系統Ubuntu18.04;
雲服務器端安裝FRP(服務器端frps)
-
安裝SSH服務 ,命令行輸入:
sudo apt-get install openssh-server service ssh start # 啓用ssh服務
-
下載安裝FRP,命令行輸入:
wget https://github.com/fatedier/frp/releases/download/v0.29.1/frp_0.29.1_linux_amd64.tar.gz tar -zxvf frp_0.29.1_linux_amd64.tar.gz # 解壓文件 cd frp_0.29.1_linux_amd64 # 進入文件目錄 vim frps.ini # vim 編輯文件
也可以在此鏈接下載對應系統的frp文件https://github.com/fatedier/frp/releases,再通過FileZilla軟件進行FTP文件傳輸到服務器也可以
打開文件後,顯示一下內容:
# frps.ini [common] bind_port = 7000
後臺啓動frps服務
nohup ./frps -c ./frps.ini & # 複製該行代碼,不要忘記最後的 & 符號
-
設置安全組規則
登錄雲服務器 > 控制檯 > 安全組 > 新建 > 選擇默認開放全部端口 > 管理實例 > 新增關聯 > 選擇自己的服務器進行綁定即可
本地安裝FRP(客戶端frpc)
-
安裝SSH服務 ,命令行輸入:
sudo apt-get install openssh-server service ssh start # 啓用ssh服務
-
下載安裝FRP,此時直接通過鏈接https://github.com/fatedier/frp/releases下載直接解壓到本地比較方便!
或者仍採用命令行方式下載:wget https://github.com/fatedier/frp/releases/download/v0.29.1/frp_0.29.1_linux_amd64.tar.gz tar -zxvf frp_0.29.1_linux_amd64.tar.gz cd frp_0.29.1_linux_amd64 vim frpc.ini # 注意此處是frpc文件
文件內容修改爲:
# frpc.ini [common] server_addr = x.x.x.x # 此處需要填寫雲服務器公網ip,Ubuntu可通過ifconfig進行查看 server_port = 7000 [ssh] type = tcp local_ip = x.x.x.x # 此處需要填寫本機局域網IP local_port = 22 remote_port = 6000
後臺啓動frpc服務
nohup ./frpc -c ./frpc.ini & # 複製該行代碼,不要忘記最後的 & 符號
遠程連接測試
可通過在手機上下載安裝相關的terminal終端軟件測試,測試是需要填寫
Hostname(雲服務器主機IP) : x.x.x.x
Port:6000
Username(本地主機用戶名): xxx
Passwd: xxxx
或者電腦終端terminal連接
# test爲本地主機用戶名,x.x.x.x則是公網服務器ip地址
ssh -oPort=6000 [email protected]