遠程聯機不求人 | 櫻花內網穿透?Frp是什麼?如何自建穿透服務?

© blog.srprolin.top

這是一篇博客轉載,小黑盒不支持代碼段,圖片的顯示效果可能不太好,如有興趣者請前往博客頁查看,個籤處已標明域名。

簡介與摘要

Frp 是一個專注於內網穿透的高性能的反向代理應用,支持 TCP、UDP、HTTP、HTTPS 等多種協議,且支持 P2P 通信。可以將內網服務以安全、便捷的方式通過具有公網 IP 節點的中轉暴露到公網。

市面上的內網穿透服務Sakura FRP 櫻花內網穿透 也是基於此實現的。

本文將以 Ubuntu24 系統公網雲服務器爲例,Frp 官方壓縮包版本爲 v0.65.0,分享部署自用內網穿透服務的步驟。

文中未提到的多處細節,請參考官方文檔自行了解。

Frp 部署

官方的 release 界面下載到的壓縮包中,會包含 frpc 客戶端和 frps 服務端兩個程序,我們一般在服務器上保留 frps,在需要穿透的內網機器上保留 frpc,我將分別演示在服務端(Linux)和客戶端(Windows)上的操作:

Frps 服務端

分步總覽:

  • 下載官方壓縮包並解壓進入項目目錄

  • 刪除有關客戶端 frpc 的文件

  • 編輯 frps.toml 以初始化服務端配置

  • 爲 frps 創建 systemd 後臺服務文件

  • 將 frps 歸入系統後臺服務並開機自啓

命令行操作(關於wget 網絡問題,可以自行下載好壓縮包之後,通過sftp 上傳至服務器):

下載與安裝

現在我們需要編輯frps.toml 文件內容,這裏使用nano編輯器:nano frps.toml

文件內容大致如下:

frps.toml

現在按照官方用法,只需要執行./frps -c ./frps.toml 便可開啓服務,並在 7500 端口查看 frps 的 web 頁面。

但是此時該服務只能運行在 ssh 終端,也就是說關閉了 ssh 連接,frp 服務也將終止。

因此按照官方文檔的推薦方法,可以將 frps 註冊爲 systemd 系統服務,跑在服務器後臺。

安裝部署systemd

內容大致如下:

frps.service

隨後通過systemctl啓動frps服務。

systemctl常用參數:

  • start

  • stop

  • restart

  • status

  • enable

  • disable

使用systemctl啓動frps

Frpc 客戶端

分步總覽:

  • 下載並解壓官方壓縮包

  • 刪除 frps 相關文件

  • 編輯`frpc.toml`配置初始化

  • 編輯`bat`和`vbs`文件以達到後臺效果

  • 通過 web 界面編輯穿透服務

這裏以 amd64 的 Windows 系統爲例,點擊下載官方壓縮包

C:\Program Files\frpc 目錄爲例,存放解壓後的文件。

刪除frps.exe和frps.toml兩個文件。

編輯frpc.toml內容如下:

frpc.toml

此時我們雙擊運行frpc.exe文件就能運行該服務,但是它需要跑在終端裏。

下面將使用bat腳本+vbs腳本的方式,讓該服務跑在後臺,不佔用前臺終端。

在該目錄下創建start_frpc.bat文件,編輯內容如下:

start_frpc.bat

創建start_frpc.vbs文件,編輯內容如下:

start_frpc.vbs

隨後爲start_frpc.vbs創建一個桌面快捷方式,雙擊快捷方式即可在後臺運行,可訪問http://127.0.0.1:7400 檢查是否成功。

Frp 示例 | 穿透本機遊戲端口

在上面的教程中,只是成功部署了 frp 服務,我們部署 frpc 客戶端也是爲了顯示本機應用端口的穿透,下面將演示 Minecraft_Java 遊戲服務器和 CS2 遊戲房間的穿透案例。

運行start_frpc.vbs啓動客戶端後,前往web 頁面:

frpc_web

我這裏是已經部署成功後的頁面,點擊左邊configure 可以實現在 web 頁面編輯 frpc.toml 文件:

frpc_web_toml

按照此格式寫入後,點擊upload 即可更新配置文件,便可實現內網穿透:

web_toml

參數說明:

  • name:只用做服務標識,可以隨便設置

  • type:對於當前案例來說,多數網遊使用`udp`,而 Minecraft_Java 版遊戲使用`tcp`

  • localIP:一般不用更改,127.0.0.1 表示本機。

  • localPort:根據需要的服務端口而言,這裏 Minecraft 服務器默認跑在 25565 端口,CS2 房間是跑在 27015 端口。

  • remotePort:指的是別人需要通過遠程服務器上的哪個端口來訪問你本機的遊戲服務器,該端口需要在雲廠商安全組中放行,可與本地遊戲服務端口不一致。

結語

本人對 Frp 的使用是非常有限的,實際上官方文檔中對 Frp 的功能介紹遠比我這裏多得多,本文旨在展示這麼一樣東西,瞭解 Frp 的基礎操作邏輯和參數說明,可以幫大家在使用比如 Sakura FRP 櫻花內網穿透時,不那麼茫然。

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

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