frp 客戶端使用群暉安裝

5,691次閱讀
尚無留言

共计 3533 个字符,预计需要花费 9 分钟才能阅读完成。

在前面提過 安裝 frp 服務端,這裡記錄下怎麼透過該工具將 NAS 底下安裝的應用服務發布到公網世界。

安裝

這裡要注意下載版本必須保持與服務端一致由於我先前安裝版本為 0.30.0 因此客戶端也是下載對應版本,不知道可以透過打開服務端管理介面查看

# 下載 FRP
wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
# 解壓縮
tar -xvf frp_0.30.0_linux_amd64.tar.gz 
# 切換到目錄
cd frp_0.30.0_linux_amd64
# 刪除服務器配置
rm -rf frps*

配置

vim frpc.ini

frpc.ini 配置

[common]
# 修改成自己的域名或服務器 IP 地址及連接埠綁定 
server_addr = 0.0.0.0 
server_port = 7000

# 客戶端管理介面
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin

# 群暉後台管理介面(https)
# 使用 https 連線
[nas-backend]
type = https
local_port = 5001
custom_domains = server.yosheng.tw

# 群暉 WebStation 反向代理
# 使用 https 連線
[nas-web-reverse]
type = https
local_port = 443
custom_domains = test-home.yosheng.tw

# 基於群暉 Docker 搭建 Jenkins
# 透過 https2http 插件實現 https 連線
[nas-jenkins-web]
type = https
local_port = 8888
custom_domains = jenkins.yosheng.tw
plugin = https2http
plugin_local_addr = 127.0.0.1:8888

# HTTPS 证书相关的配置
plugin_crt_path = /usr/local/etc/certificate/WebDAVServer/webdav/fullchain.pem
plugin_key_path = /usr/local/etc/certificate/WebDAVServer/webdav/privkey.pem
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp

# 基於群暉 Docker 搭建 Aria2
# 內置的 WebGUI 服務
[nas-aria2-web]
type = http
local_port = 6880
custom_domains = aria2.yosheng.tw

# 群暉 SSH 連線
[nas-ssh]
type = tcp
local_ip = 192.168.31.104
local_port = xxxx
remote_port = xxxx

# 基於群暉 Docker 搭建 Aria2
# 穿透 RPC 連線
[nas-aria2-rpc]
type = tcp
local_ip = 192.168.31.104
local_port = 6800
remote_port = 58002
use_encryption = true
use_compression = true

下述開始針對上面的配置細說

[common]

基本與服務端連線的配置,這裡建議開啟 adminUI 配置,方便後續添加後直接在瀏覽器上修改即可生效,不需要再重啟服務

[nas-backend] & [nas-web-reverse]

同時使用 https 連線,意味著需配合服務端 vhost_https_port 使用,這裡配置 custom_domains 用於連線時使用,由於我在服務端配置端口為 56443 因此應該訪問 https://server.yosheng.tw:56443/ 即可連線回群暉管理介面,因為先前在群暉已經配置好證書所以不會出現警告,配置證書可以參考該 黑群暉使用 https 連線 ,此外域名映射到的 IP 可以參考 更換域名託管商使用免費 CDN

[nas-jenkins-web]

因為原生容器內只提供 http 連線,如果要使用 https 官方建議使用 nginx 做反向代理,這部分後面會說明如何透過群暉內建的 nginx 實現,因為透過該方法實現無法在後台查看連線狀況,因此建議使用 frp 提供的 https2http 插件來實現。

關於 HTTPS 证书相关的配置 這部分證書跟鑰匙位置,是和群暉內置 nginx 共用,路徑參考 黑群暉使用 https 連線,當時是透過一鍵腳本執行,腳本預設會將證書及鑰匙放到該位置。

[nas-aria2-web]

這部分使用 http 連線是因為使用 https 連線,針對 rpc 連線的部分也必須做額外的配置,必須將證書及鑰匙配置到 aria2.conf 上面否則會出現連線異常,具體可以參考 配置 https 后无法连接 rpc 以及 Aria2 搭配 AriaNg 实现离线下载 目前我就不在折騰。

[nas-ssh]

使用 tcp 連線是因為 ssh 也是基於上面的服務,具體本地端口和遠程連線端口記得修改下

[nas-aria2-rpc]

值得一提的是 use_encryption 及 use_compression  可以用來隱蔽連線內容,詳細如文檔所說。

引述文檔內容

如果公司内网防火墙对外网访问进行了流量识别与屏蔽,例如禁止了 ssh 协议等,通过设置 use_encryption = true,将 frpc 与 frps 之间的通信内容加密传输,将会有效防止流量被拦截。

如果传输的报文长度较长,通过设置 use_compression = true 对传输内容进行压缩,可以有效减小 frpc 与 frps 之间的网络流量,加快流量转发速度,但是会额外消耗一些 cpu 资源。

TLS
从 v0.25.0 版本开始 frpc 和 frps 之间支持通过 TLS 协议加密传输。通过在 frpc.ini 的 common 中配置 tls_enable = true 来启用此功能,安全性更高。

为了端口复用,frp 建立 TLS 连接的第一个字节为 0x17。

[t-warning icon='fa-solid fa-triangle-exclamation']注意: 启用此功能后除 xtcp 外,不需要再设置 use_encryption。[/t-warning]

查看 AdminGUI

打開瀏覽器輸入 群暉的 IP 地址 預設端口 7400 即出現附圖

frp 客戶端使用群暉安裝

上述 local address 的部分出現空代表在配置中 local_ip 沒輸入,系統會預設使用 127.0.0.1 來連線,因此這裡建議盡量補全,方便日後查看,此外點選 Configure 的部分就可以直接修改配置再點及 Upload 即可生效。

配置群暉開機自動啟動

控制台 → 任務排程表 → 新增 → 觸發任務 → 使用者自訂指令碼 如附圖輸入任務名稱事件選擇開機

frp 客戶端使用群暉安裝

任務設定如附圖

/usr/syno/etc.defaults/rc.sysv/S99frp.sh

frp 客戶端使用群暉安裝

# 建立 S99frp.sh
sudo vim /usr/syno/etc.defaults/rc.sysv/S99frp.sh

S99frp.sh

#!/bin/bash
cd /usr/local/software/frp_0.30.0_linux_amd64/
nohup ./frpc -c ./frpc.ini &

記得根據自己的配置修改即可

如果需要查看日誌可以透過該命令

sudo tail /usr/local/software/frp_0.30.0_linux_amd64/nohup.out

補充群暉反向代理

控制台 → 應用程式入口 → 反向代理伺服器 → 新增

frp 客戶端使用群暉安裝

假設我要代理 Aria2 服務如附圖

frp 客戶端使用群暉安裝

記得配置完回到 frpc.ini 修改下述設定,在 custom_domains 後面添加剛剛新增的主機名稱,還有在 cloudflare 上面配置 A 紀錄指定到 VPS 上面即可。

[nas-web-reverse] 
type = https
local_port = 443 
custom_domains = test-home.yosheng.tw, aria2.yosheng.tw

custom_domains 這個設定根據原始碼配置是讀取後會根據逗號進行分割存成陣列,最後再讀取使用。

為什麼透過群暉內建的反向代理?

主要是方便公用憑證,不需要再自己額外手動處理,如果使用低版本的 FRP 本身是沒有 http2https 的插件功能,這個方法就可以解決該問題。

正文完
 0
評論(尚無留言)

夜升筆談

夜升筆談
夜升筆談
視寫代碼為信仰,奉高效能為執著,成為大牛不是一蹴可幾,但只要秉持信念終究能成,我依舊在這條路上不斷前進。
最新评论
Yosheng Yosheng 我是买梯子了 只是理解一下原理而已
虚拟信用卡 虚拟信用卡 还是直接买梯子吧,太浪费时间了
spring spring 学习了
cskepper cskepper 非常有用,已经顺利解决
cskepper cskepper 非常有用,已经顺利解决
Yosheng Yosheng 這可能是代理服務器的問題了...
淑淑 淑淑 我在大陸使用了VPN 照著你說的操作 但是出現無法透過代理伺服器連線 我的電腦是W7 也下載了兼容版 用了大概一個星期後今天LINE就無法使用VPN了 這種要怎樣解決
Yosheng Yosheng 如果不能直接撥放建議直接下載回來播放,後面我就沒去折騰為什麼不能線上播放了
SADFISH SADFISH 我无法播放语音是为什么呀楼主
Yosheng Yosheng 微信号 yosheng0323