frp之UDP內網穿透


這次frp的搭建的起因是這樣的,元旦假期和朋友玩星露谷,使用steam自帶的聯機,掉線很頻繁,玩一會必掉線,之后換用游俠對戰平台,聯機效果也不理想,會存在卡頓等情況,之后還遇到了報錯;想到自己還有一台公網服務器,所以一怒之下搭建frp內網穿透進行聯機。

下載

需要根據自己的實際情況自行下載,網址為https://github.com/fatedier/frp/releases

我的服務器為Linux,客戶端是Windows,就需要同時下載Linux和Windows的壓縮包(在本篇文章發布時,frp版本更新到0.38.0)。

配置

在進行配置之前先看一下frp的目錄結構,以Windows為例。

frp_0.38.0_windows_amd64/
├── LICENSE
├── frpc.exe
├── frpc.ini
├── frpc_full.ini
├── frps.exe
├── frps.ini
├── frps_full.ini
└── systemd
    ├── frpc.service
    ├── frpc@.service
    ├── frps.service
    └── frps@.service

類似上面結構,Linux與Windows程序中不同的僅為可執行文件的不同。

服務器端

修改frps.ini文件,修改如下:

[common]
bind_udp_port = 8001 # 設置服務器監聽UDP端口為8001,可根據需要進行修改
privilege_token = test # 鑒權使用的token值,可根據需要進行修改(客戶端與服務端的privilege_token相同才能進行連接,實際環境一定要設置為一個復雜值,此處為方便填入test)

dashboard_port = 8002 # 啟用Dashboard監聽的端口
dashboard_pwd = test # HTTP BasicAuth 用戶名,登錄Dashboard時的用戶名
dashboard_user = admin # HTTP BasicAuth 密碼,登錄Dashboard時的密碼
enable_prometheus = true # 是否提供 Prometheus 監控接口,需要同時啟用了 Dashboard 才會生效

未對服務器監聽端口進行設置,默認為7000,可添加bind_port參數進行設置端口。

配置完成,運行frps,命令為./frps -c frps.ini

客戶端

修改frpc.ini,如下:

[common]
server_addr = 服務器IP,根據實際情況修改
bind_udp_port = 8001 # 連接服務端UDP的端口
privilege_token = test # 與服務器中相同

[udp]
type = udp # 設置協議類型為UDP
local_ip = 127.0.0.1 # 設置本機IP
local_port = 24642 # 設置需要進行轉發的端口,可根據需求進行修改
remote_port = 8888 # 設置轉發到服務器的端口,可根據需求進行修改

其中bind_udp_port的設置可能不生效,實際還是需要連接到7000端口(不進行配置為默認7000端口),local_port的24642端口為星露谷聯機端口,udp部分的內容為將24642端口UDP協議的數據轉發到服務器的8888端口,聯機時輸入xxx.xxx.xxx.xxx:8888就可以與本機建立連接(xxx.xxx.xxx.xxx為服務器的公網IP或域名)。

配置完成,打開cmd,進入到frp目錄下,使用.\frpc.exe -c frpc.ini運行與服務器建立連接。

ps:如果服務器是阿里雲、騰訊雲的雲服務器,需要在安全組或者是防火牆中將涉及到的服務器端口開放,同時主機的防火牆策略也要設置允許,這里開放的端口為7000、8001、8002、8888,且8888端口允許的協議為UDP。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM