從使用Nas設備以來,博主就比較熱衷於研究內網穿透方法,到目前為止公網ip ddns方式、nps方式、蒲公英x1方式博主都已掌握,並且前兩種也寫了比較詳細的教程,感興趣的小夥伴可以去了解下。
也有很多小夥伴反應,frp比nps簡單,這裡博主不槓,為什麼呢,因為博主看了很多教程就是沒學會,所以博主還是認為nps簡單一些。但是,就在前幾天博主突然發現我關注的一個up主更新了一個frp搭建的視頻,從原理到搭建方法到實際應用講的超級詳細,博主一下就學會了,所以今天才有機會介紹一下如何搭建frp實現內網穿透。
介紹正題前先說下上面提到的up主吧,其實我在之前的一篇文章已經簡單介紹過就是油管和b站都在做視頻的“司波圖”,自稱是大家的高產小夥伴。如果大家喜歡看nas類或者科技類的視頻可以去b站或者youtube搜索下“司波圖”。大佬視頻做的很認真,講解的非常詳細,這也是博主之前看了n多教程沒有學會搭建vps,看了司波圖大佬的視頻一次就會了。
開始搭建
找到需要的frp版本,獲取下載鏈接
進入frp下載頁面 找到需要下載的版本,這裡我們找到這個版本,右鍵複製下載鏈接。
ssh鏈接vps
輸入wget+下載鏈接,這裡我們的命令是:
wget https://github.com/fatedier/frp/releases/download/v0.31.2/frp_0.31.2_linux_amd64.tar.gz
回車,稍等會就會下載完畢。
解壓下載的壓縮文件
tar -zxvf frp_0.31.2_linux_amd64.tar.gz
查看下是否解壓成功
ls
可以看到已經出現瞭解壓後的文件夾
ok,因為博主用的是xshell鏈接的vps所以直接用xftp管理裡面的文件了,這樣方便一點,畢竟博主對於linux的命令也不是很熟悉。
這裡如果你用的putty對命令又不熟悉,建議你單獨下載一個winscp,這個軟件也能實現可視化管理vps服務器的文件。或者你可以直接用finalshell這個軟件也可以,博主不多說了。
xftp端設置
將frp_0.31.2_linux_amd64重命名為frp
進入到frp目錄,找到frps.ini,右鍵記事本打開
加入一個token行,我這裡設置的是123456,大家可以自行設置,但是這個是明文密碼,不要設置自己的常用密碼即可。
保存後關閉。
切換到xshell,進入到frp目錄
cd frp
./frps -c frps.ini
回車,可以看到服務端啟動成功了。
有些服務器可能沒有開放7000端口,這裡可以單獨開放一下
首先ctrl c 退出frps服務,然後輸入以下命令
iptables -I INPUT -ptcp --dport 7000 -j ACCEPT
輸入以下代碼進行服務設置
vi /lib/systemd/system/frps.service
黏貼下列命令
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/frp/frps -c /root/frp/frps.ini
[Install]
WantedBy=multi-user.target
按esc鍵 輸入 :wq 回車
啟動frp服務
systemctl start frps
設置自動啟動
systemctl enable frps
重啟vps服務器看下frps服務是否可以開啟自啟
reboot
等待vps服務器開機後重新連接輸入
ps auxw
查看後臺運行的進程,可以找到frp已經運行了
至此服務端設置完畢
群暉docker端設置
docker-映像-新增(從url新增)輸入這個地址 https://hub.docker.com/r/chenhw2/frp 點擊新增
新建frpc配置文件(新建txt文檔重命名為 frpc.ini)打開後輸入以下命令
[common]
server_addr = 185.xxx.xx.xx5
server_port = 7000
token = 123456
[DSM]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 6001
當然如果你可以添加你的其他服務的配置文件,例如drive hyper backup jellyfin都行,我這裡就以dsm做個例子。
進入file station 在docker文件夾下新建frp文件夾 然後把編輯好的frp.ini上傳上去
好的,等待docker映像下載完畢後雙擊進行設置
高級設置-環境,如第二張圖設置
設置卷,新增文件,找到剛才上傳的frpc.ini(docker-frp-frpc.ini)
網絡選擇與docker相同的網絡
這樣就設置完畢了,點擊應用,下一步,應用,已經啟動了
測試下外網是否可以打開
瀏覽器輸入vps的公網ip:6001
可以看到已經可以正常打開我的dsm頁面了,也就是說我們已經實現了外網的穿透。
如果你需要穿透其他的應用的話,只需要在群暉端設置即可,服務端無需再設置,就是編輯群暉的frpc.ini這個文件。可能有的小夥伴還是不明白我再添加一個jellyfin的穿透吧。
關閉frp的docker進程
找到frpc.ini文件進行編輯,加入jellyfin,內部端口是固定的8096,外部端口自行設置,我設置的9001
把這個frpc.ini上傳到docker-frp文件夾內
進入docker,打開frp進程,然後瀏覽器輸入ip:9001測試
ok,可以看到ip:9001已經打開了jellyfin的登錄頁面,成功
測試速度
最後給大家測試下速度吧,這個速度取決於你的nas所在地的帶寬,你測試環境的帶寬以及vps的帶寬環境,比較複雜,因為今天是演示教程,我用的這個vps速度應該不是很好,一會測試完這個frp就停用了,看看效果。
我找了個美劇測試,速度基本在1m左右,不算快但是能滿足日常外網訪問需求。
寫在最後
ok,大家如果還是搭建不成功,還是那句話建議去b站或者油管看下司波圖大佬的視頻,講解的特別詳細。
截止到本篇文章,除了蒲公英x1組網的方式,博主已經把博主自己會的內網穿透都介紹過了:ddns、nps和frp,不知道你在用哪種方式。沒有最好的只有最適合自己的。
好了,我是shawn,一隻愛折騰的土木羊。如果你長得好看,那請關注我哦!
閱讀更多 小羊shawn 的文章