利用 FRP 實現外網訪問 NAS

最近入手了一臺羣輝入門級的 nas,但是由於用的是長城的寬帶,所以你們懂的,羣輝自帶的外網訪問的配置根本不起任何作用。但是在公司裏又沒法用 quickConnect 訪問自己的 nas,所以沒辦法只能利用 frp 這種方式來實現在公司或者其他地方訪問自己的 nas。

剛好自己買的有阿里雲的服務器,還有阿里雲買的域名。然後說搞就開始搞咯。

第一步

先在自己的域名控制檯,解析好一個 A 類的二級域名,指向自己的服務器的 ip。
二級域名解析

第二步

在自己購買的服務器上安裝配置 frp 服務端

1、查看自己的服務器的 linux 內核

# uname 指令
uname -a

# 結果
# a
Linux tegra-ubuntu 4.4.38-tegra #1 SMP PREEMPT Fri Jul 28 09:55:22 PDT 2017 aarch64 aarch64 aarch64 GNU/Linux
# aarch64就是ARM架構

# b
Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# X86架構

# c
Linux DrogooBox 3.3.8 #33 Tue Mar 22 15:02:01 CST 2016 mips GNU/Linux
# MIPS架構
# arch命令
arch

# 結果
# a
aarch64

#b
x86_64

自己選擇對應的版本號即可。
如果 frp 版本選的不對,運營會爆如下錯誤:

./frpc: cannot execute binary file: Exec format error

2、安裝服務端

FRP RELEASE

#1、下載
wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_amd64.tar.gz

#2、解壓
tar -zxvf frp_0.12.0_linux_amd64.tar.gz

#3、進入對應目錄
cd frp_0.12.0_linux_amd64

#4、刪除客戶端內容
rm -f frpc frpc_full.ini frpc.ini

#5、配置服務端
vim frps.ini

編輯如下:

[common]
bind_port = 7000
vhost_http_port = 8080
max_pool_count = 5
authentication_timeout = 900

subdomain_host = lekee.cc

[ssh]
listen_port = 6000
auth_token = 和客服端 token 對應

解釋:

[common] 必填的
bind_port Frp 服務端口(可自定義)
vhost_http_port http 訪問端口(可自定義)
dashboard_port dashboard 界面端口 (可以不配置)
dashboard_user 登錄 dashboard 用戶名(可以不配置)
dashboard_pwd 登錄 dashboard 密碼(可以不配置)
max_pool_count 最大連接池數量
authentication_timeout 超時驗證時間
subdomain_host 主域名

[ssh]
listen_port ssh 訪問端口
auth_token 用戶身份認證(自定義)

#6、啓動 frp 服務器
nohup ./frps -c ./frps.ini &

第三步

配置 frp 客戶端

客戶端可以是 PC,Mac,NAS 等。
我是配置自己的 nas。

1、羣暉必須開啓 ssh

在這裏插入圖片描述

2、開始操作

# 1、登錄 nas
ssh user@ip # user nas 的賬號,ip nas 的內網 ip

# 2、切換 root 用戶
sudo -i
# 此處輸入你的密碼

# 3、下載 frp
wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_arm.tar.gz 
# 此處踩了一個坑,因爲版本下載的不對,所以配置完發現跑不起來。所以一定要查找適合的版本

# 4、解壓
tar -zxvf  frp_0.12.0_linux_386.tar.gz

# 5、進入文件夾
cd frp_0.12.0_linux_386

# 6、移除服務端配置
rm -f frps frps_full.ini frps.ini

# 7、編輯配置
vim frpc.ini

編輯如下:

[common]
server_addr = ip (服務器外網 ip)
server_port = 7000
auth_token = 和服務器端對應
pool_count = 1

[ssh]
type = tcp
local_ip = NAS 局域網ip
local_port = 22
remote_port = 6000

[nas]
type = http
local_port = 5000
subdomain = nas(自己定義的二級域名)

簡單解釋:

[common] 必填的
server_addr 服務器端公網
server_port frp 服務端口,和服務器端 bind_port 一致
auth_token 和前面服務器端 [ssh] auth_token 一致
pool_count 連接池數量

[ssh]
type 服務類型(tcp、http、https、udp)
local_ip NAS 本地局域網內網 ip
local_port NAS 開啓 ssh 服務端口號,默認 22
remote_port 服務器端 ssh 端口,和服務器端 [ssh] listen_port 配置一致

[nas] NAS 管理界面
subdomain 二級域名 nas 訪問 NAS
type = http 服務類型爲 http
local_port NAS 默認端口 5000

[web] NAS web Station 服務,沒用可以不用設置
type = http 類型爲 http
local_port = 80 NAS web 服務端口
subdomain = web 二級域名 web.lekee.cc
使用自定義二級域名的時候,域名 *.lekee.cc 要解析到服務器 IP

# 8、運行
nohup ./frpc -c ./frpc.ini &

到此結束。你可以愉快地通過自己的域名加上端口號訪問自己的 nas 了。

好了,該休息了。

不對扶我起來,報錯了。

dial tcp x.x.x.x:xxxx: getsockopt: no route to host

第四步

因爲你還得在服務器防火牆中開放對應的端口
就是你在服務端配置的下面兩個端口

bind_port = 7000
vhost_http_port = 8080

具體的操作可以參考我的這篇文章

到此你應該能真正地愉快地訪問了。

enjoy ~

參考文章

如何用 Frp 實現外網訪問羣暉 NAS

如何查看linux系統的體系結構

CentOS 防火牆開放端口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章