小白如何用自己的域名做https內網穿透

爲什麼要做穿透

前段時間用黑qun nas折騰好了一些私有云服務,在內網提供emby、Komga、雲同步、音樂庫等服務。不過很快就遇到了一些問題,校內個別地方連通性不太好,管理給內網的設備之間做了隔離,因此無法在這些地方使用服務。此外,一旦離開內網環境,出門玩耍、實習的時候也沒法愉快享受影音樂趣,很是不爽。

看了多個大廠的穿透服務,性價比不能說很低,只能說沒有。遂去海鮮市場和各小廠找解決方案。轉了一圈發現Sakura FRP的性價比挺不錯,操作起來也簡單,支持導出frpc客戶端配置。本次就以Sakura穿透服務爲例聊一聊如何用自己的域名搭配內網穿透服務,並開啓https安全連接。

剛剛做好了FC社的宣傳圖,要怎麼做才能讓學長訪問到呢?

開啓隧道遇到的問題

Sakura對於備案要求比較嚴格,未備案域名無法使用國內節點對外暴露80/443端口。使用自定義端口的TCP隧道時,節點於客戶端之間必須開啓https。

這就產生的一個問題,Sakura一些節點的證書未被瀏覽器信任,直接通過節點域名+端口訪問服務時,首先是瀏覽器會報不安全,非常煩人;其次是一些服務的客戶端APP只認安全連接,沒辦法用。爲了解決這些問題,我決定用自己的域名和zeroSLL證書來訪問服務。

申請免費SSL證書

如果我們有自己的公網IP,那麼則可以直接將域名解析到自己的IP或者套一層Cloudflare代理,隨後通過Certbot直接自動向Let’s Encrypt之類的機構申請即可。但是我們現在的狀況是:正因爲沒有公網IP,所以需要做內網穿透+域名訪問,因此需要通過其他方法來獲取證書。

隨着各大平臺提供SSL證書有效期不斷縮短,現在能獲取到的免費證書基本都是隻有90天有效期,需要手動續期,這裏以Zero SSL爲例。

首先來到官網,直接在最顯眼的輸入框裏輸入我們要申請的域名,例如sakura.yourdomain.com,之後一路下一步。

隨後,Zero SSL會要求你驗證你是域名的所有者,這裏採用DNS驗證比較簡單。首先來到DNS提供商的後臺,這裏依然使用Cloudflare。

  1. 按照提示創建一條CNAME記錄

  2. 將網頁提供的Name去掉主域名和頂級域名(即yourdomain.com這部分),保留子域名填入Cloudflare的名稱一欄

  3. Point整個填入目標一欄

  4. 小云朵代理一般不需要開啓,保存即可

:::tip
對於其他DNS提供商,也是類似的操作。例如你購買了阿里雲的域名,則可以直接在阿里雲控制檯設置DNS解析。
:::

完成操作後在瀏覽器中點擊下一步等待自動驗證即可,完成後就可以下載包含證書及私鑰的壓縮包了,之後將在frpc客戶端中使用它。

:::warning
續期過程中,用戶可以選擇繼續使用原來的密鑰對,或者生成新的密鑰對。如果生成新的密鑰對,證書中的公鑰信息會改變!
:::

開通隧道

來到SakuraFRP後臺,根據下圖格式創建一個隧道,現在我們沒有開放80/443端口的需求(要備案的/(ㄒoㄒ)/~~),所以可以不選帶有“建站”標籤的節點。

圖中的本地IP,如果你在同一臺機器上運行服務端和穿透客戶端,則選擇127.0.0.1,否則填寫服務端所在設備的內網IP(例如你決定在路由器或另一臺內網設備上跑穿透)。本地端口爲你的服務端所使用的端口。

域名解析到節點

接下來需要將域名解析到Sakura提供的穿透節點,節點的域名可以把鼠標放上去查看。

知道了節點域名之後就可以在DNS頁面創建一條CNAME記錄,指向Sakura穿透節點即可,名稱可以隨意。

配置客戶端並啓動

在frpc客戶端,我們需要添加證書和key。這裏使用的是Sakura FRP啓動器,它實際上是個frpc套殼,操作原理都是相同的。通過查閱SakuraFRP的wiki,可以得知羣暉上的Sakura啓動器工作目錄的位置在/var/packages/natfrp/var。

:::tip
對於其他平臺也是同理,只需要在平臺對應的配置目錄做操作即可。在這裏要吐槽一下Sakura的wiki的導航和分類做的真的不太好,要查什麼東西需要翻半天才能找到......
:::

核心服務的所有文件都是相對於 工作目錄 創建的。下面是工作目錄的默認值:

  • Windows:%PROGRAMDATA%\SakuraFrpService

  • macOS:~/Library/Containers/com.natfrp.launcher/Data/Library/Application Support/natfrp-service

  • Linux / FreeBSD 下遵循 FreeDesktop 規範:

    • 優先使用 $XDG_CONFIG_HOME/.config/natfrp-service

    • 如果 $XDG_CONFIG_HOME 未設置,則使用 ~/.config/natfrp-service

  • Android 啓動器:/data/data/com.natfrp.launcher/service/

  • OpenWrt LuCI 插件:/etc/natfrp

  • 羣暉 DSM 套件包:/var/packages/natfrp/var

  • Docker 鏡像:/run/


我們來到工作目錄中,進入FrpcWokingDirectory,將域名證書與私鑰文件放在這裏即可。我們在電腦上將之前在ZeroSSL下載好的zip文件打開,裏面的crt文件和key文件使用文本編輯器打開後複製即可。

cd /var/packages/natfrp/var/FrpcWorkingDirectory

sudo vi xxx.yourdomain.com.crt #輸入你的羣暉管理員密碼後,粘貼crt證書中的內容

#按下Esc,輸入 :wq ,按下回車即可保存

sudo vi xxx.yourdomain.com.key

#同上

完成後,即可在啓動器中開啓隧道。訪問羣暉IP+4101端口進入後臺,在隧道頁通過拖拽的方式啓用隧道即可彈出提示:“隧道已啓動,您可通過https://節點域名:爲你分配的端口訪問”。此時就可以使用https://xxx.yourdomain.com:爲你分配的端口/來隨處訪問你的服務啦。

:::tip
對於其他設備,則可以通過雙擊圖標等更簡單的方式來進入啓動器頁面,或者通過查閱Sakura的wiki、frpc文檔、chatGPT來完成啓動的步驟。在使用Sakura官方啓動器之前,會要求通過token來進行登錄,按照提示輸入用戶信息頁面的訪問密鑰即可。
:::

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com