群暉nas+frp發揮更大作用使用posted by sunnyrx on october 21, 2016
該文章於2023年9月2日將frp版本從0.8.1更新到0.13.0,下文針對frp 0.13.0配置。
nas沒有公網ip是一件很不方便的事情,尤其是在國內的網路環境,學校和小區內的使用者通常都沒有公網ip。為了解決這個問題,則需要內網穿透,而內網穿透的方法有很多種,例如使用
花生殼
、ngrok
等,該文章要介紹的是使用frp讓群暉實現內網穿透。實際上frp有官方的中文文件,上面的內容已經非常詳盡,對相關操作比較熟悉的人可以直接閱讀官方的中文文件。
frp 是乙個高效能的反向**應用,可以幫助您輕鬆地進行內網穿透,對外網提供服務,支援 tcp, http, https 等協議型別,並且 web 服務支援根據網域名稱進行路由**。
在使用frp之前,需要一台有公網ip的伺服器(下文稱外網主機),一台需要實現內網穿透的機器(下文稱內網主機),ssh工具,以及乙個網域名稱(如果只是建立ssh反向**則不需要網域名稱)。
該文章中筆者所使用的伺服器是朋友推薦的
vultr
伺服器,雖然伺服器是在國外,但勝在頻寬夠,有需要的朋友可以註冊乙個。而需要實現內網穿透的機器則是筆者用上網本搭建的黑群暉。ssh工具使用的是xshell 5
。而網域名稱筆者則是使用自己個人**的網域名稱。下面的所示範用的frp程式版本是以筆者的伺服器為主的。
外網主機
wget
tar
指令解壓tar.gz檔案
tar -zxvf frp_0.13.0_linux_amd64.tar.gz
使用cd
指令進入解壓出來的資料夾
cd frp_0.13.0_linux_amd64.tar.gz
外網主機作為服務端,可以刪掉不必要的客戶端檔案,使用rm
指令刪除檔案。
rm -f frpc
rm -f frpc.ini
接下來要修改伺服器配置檔案,即frps.ini
檔案。使用vi
指令對目標檔案進行編輯。
vi frps.ini
開啟frps.ini
後可以看到預設已經有很多詳細的配置和示範樣例,該文章僅以達到內網穿透為目的,所以這裡選擇刪掉或注釋掉裡面的所有內容,然後根據群暉的情況,按照官方的中文文件新增以下配置。(這裡的操作都使用vi
命令,關於vi
命令的使用方式這裡不作詳細介紹,可以自行搜尋相關使用方法。)
[common]
部分是必須有的配置,其中bind_port
是自己設定的frp服務端埠,vhost_http_port
是自己設定的http訪問埠。
儲存上面的配置後,使用以下指令啟動frp服務端。(如果需要在後台執行,請往下翻閱關於後台執行的部分。)
./frps -c ./frps.ini
服務端的工作就到此結束了。
客戶端客戶端前面的操作和服務端是一模一樣的,這裡不一一解釋。
wget
tar -zxvf frp_0.13.0_linux_386.tar.gz
cd frp_0.13.0_linux_386
rm -f frps
rm -f frps.ini
vi frpc.ini
客戶端的配置如下
上面的配置和服務端是對應的。
[common]
中的server_addr
填frp服務端的ip(也就是外網主機的ip),server_port
填frp服務端的bind_prot
。
[ssh]
中的local_port
填群暉的ssh埠。
[nas]
中的type
對應服務端配置。local_port
填群暉的dsm埠。custom_domains
為要對映的網域名稱,記得網域名稱的a記錄要解析到外網主機的ip。
[web]
同上,local_port
填群暉的web埠。這裡建立了兩個http反向**是為了分別對映群暉兩個重要的埠,5000
和80
,前者用於登入群暉管理,後者用於群暉的web station
和ds photo
。
儲存配置,輸入以下指令執行frp客戶端。(同樣如果需要在後台執行,請往下翻閱關於後台執行的部分。)
./frpc -c ./frpc.ini
此時在服務端會看到"start proxy sucess"字樣,即連線成功。
雖然現在frp運作起來了,內網穿透也實現了,但這還是不夠的。此時如果斷開與服務端或者客戶端的ssh連線(比如關掉了xshell)也就中止了frp的執行。
保持frp執行是關鍵是讓服務端的frp和客戶端的frp在後台執行,這裡提兩個方法供參考,乙個是使用screen
指令,另乙個是使用nohup
指令。由於群暉的系統預設是沒有screen
指令的,這裡也不提供安裝screen
的方法,所以推薦群暉直接使用nohup
。
使用screen讓frp在後台執行
下面的示範是執行服務端的frp,客戶端就不示範了,前面提過群暉的系統沒有screen
指令。
首先使用screen
指令建立乙個會話。
screen -dms frp
然後進入這個會話。
screen -r frp
最後使用執行frp的指令,在後面加上" &"。(如果之前斷開了ssh連線,記得用cd
指令進入frp的目錄先。)
./frps -c ./frps.ini &
這樣就讓frp在後台執行了。
使用nohup指令
nohup指令的使用方法相對簡單,只需要在nohup
後面加上frp的執行指令即可。下面示範的指令是執行frp客戶端。(同樣,如果之前斷開了ssh連線,記得用cd
指令進入frp的目錄先。)
nohup ./frpc -c ./frpc.ini &
這樣就成功讓frp在後台執行了。 frp實現內網穿透
利用處於內網或防火牆後的機器,對外網環境提供 http 或 https 服務。對於 http,https 服務支援基於網域名稱的虛擬主機,支援自定義網域名稱繫結,使多個網域名稱可以共用乙個80埠。利用處於內網或防火牆後的機器,對外網環境提供 tcp 和 udp 服務,例如在家裡通過 ssh 訪問處於...
frp實現內網穿透
第二部 開啟資料夾,配置裡面的frpc.ini檔案,右鍵編輯就可以 裡面的ssh是預設的要改個名字,不是提示名字被占用,web 是自己加上去的,但是也要改個名字。埠號 按自己需求定,比如你的tomcat是80埠,就配80 按這個配置好檔案後,進行第三步。第三步 在doc視窗下執行這個配置檔案,執行這...
Frp實現內網穿透
一 內網穿透 內網穿透 可用使用外網訪問本地的應用,例如 內網穿透後使用zyd.fanaozhe.top訪問本地的localhost 8080 二 frp安裝步驟 服務端 客戶端2.frp的解壓啟動 1 服務端 將tar包解壓縮 tar zxvf frp 0.26.0 linux amd64.tar...