文章目錄
- 一、下載安裝 FRP
- 二、配置 FRP
- 2.1、配置服務端 (frps)
- 【啓動 FRP 服務端】
- 2.2、配置客户端 (frpc)
- 【啓動 FRP 客户端】
- 三、訪問控制枱
- 四、驗證與使用
- 五、常見問題與排查
- 總結
FRP(Fast Reverse Proxy)是一款內網穿透工具,它幫助內網設備通過公網服務器將服務暴露到外網。以下是詳細的安裝與配置步驟,幫助你快速部署 FRP。
一、下載安裝 FRP
1、下載 FRP
FRP 支持多種系統平台(Windows、Linux、MacOS)。從 GitHub 倉庫下載最新版本的 FRP:
GitHub 倉庫:https://github.com/fatedier/frp/releases
選擇對應系統的壓縮包,如:
Linux (64位): frp_x.x.x_linux_amd64.tar.gz
Windows (64位): frp_x.x.x_windows_amd64.zip
2、解壓文件
下載完成後,解壓縮文件:
# Linux 示例
tar -zxvf frp_0.65.0_linux_amd64.tar.gz
改個名字
mv frp_0.65.0_linux_amd64 frp
# Windows 示例
解壓後,目錄下包含如下文件:
frps:服務端可執行文件
frpc:客户端可執行文件
frps.ini:服務端配置文件
frpc.ini:客户端配置文件
LICENSE:許可文件
README.md:説明文檔
二、配置 FRP
2.1、配置服務端 (frps)
服務端負責接收客户端的請求,並將其轉發到內網服務。服務端通常部署在公網服務器上。
frp 的配置文件支持 INI、TOML、YAML 和 JSON 格式。需要注意的是,INI 格式已被棄用,新功能將不再支持,建議使用 TOML 格式。
編輯 frps.toml 文件 (早期版本為 frps.ini),以下是一個基礎配置示例:
# frps.toml
# frp 服務端與客户端綁定的端口,用於接收客户端的連接
bindPort = 7000
# 授權令牌 (token),客户端連接時需要提供相同的 token
# 為了安全,請務必修改為複雜的字符串
auth.token = "szty"
# [可選] Web 界面儀表盤配置
# 可以在瀏覽器中查看 frp 的狀態和代理統計信息
webServer.addr = "0.0.0.0" # 儀表盤監聽的地址
webServer.port = 7500 # 儀表盤訪問端口
webServer.user = "admin" # 儀表盤登錄用户名
webServer.password = "szty1234" # 儀表盤登錄密碼,請務必修改
- bindPort 是 frp 服務端和客户端之間通信的端口。
- auth.token 是用於身份驗證的令牌,客户端配置中的 token 必須與此處的設置完全一致。
- webServer 相關配置可以開啓一個 Web 管理界面,方便您監控 frp 的運行狀態。
【啓動 FRP 服務端】
啓動服務端:
在服務器上,通過命令行進入 frp 所在目錄,執行以下命令:
./frps -c ./frps.toml
2.2、配置客户端 (frpc)
客户端運行在內網機器上,負責將內網服務代理到外網。
編輯 frpc.toml 文件 (早期版本為 frpc.ini),根據您需要穿透的服務進行配置。
示例 1:遠程桌面 (Windows RDP) / SSH (Linux)
假設您想遠程訪問一台位於內網的 Windows 電腦(RDP 默認端口 3389)或 Linux 服務器(SSH 默認端口 22)。
window系統:
name = “ssh”
localPort = 22
linux系統
name = “rdp”
localPort = 3389
# frpc.toml
# [必須] 公網服務器的 IP 地址
serverAddr = "xxx.112.222.253"
# [必須] 與服務端 bindPort 一致
serverPort = 7000
# [必須] 與服務端 auth.token 一致
auth.token = "szty"
# 代理服務1:
[[proxies]]
name = "git" # 代理名稱,必須唯一
type = "tcp" # 代理類型為 TCP
localIP = "127.0.0.1" # 需要暴露的本地服務 IP
localPort = 3000 # 本地 SSH 服務的端口
remotePort = 13000 # 映射到公網服務器上的端口
# 代理服務2:
#[[proxies]]
#name = "git2" # 代理名稱,必須唯一
#type = "tcp" # 代理類型為 TCP
#localIP = "127.0.0.1" # 需要暴露的本地服務 IP
#localPort = 4000 # 本地 SSH 服務的端口
#remotePort = 14000 # 映射到公網服務器上的端口
- serverAddr 填寫您的公網服務器 IP 地址。
- localIP 和 localPort 指向您內網中需要暴露的服務地址和端口。
- remotePort 是您希望通過公網訪問的端口。
【啓動 FRP 客户端】
在內網的客户端電腦上,執行:
linux 系統: ./frpc -c ./frpc.toml 後台運行 nohup ./frpc -c ./frpc.toml &
window系統: frpc.exe -c frpc.toml
防火牆開放端口
sudo ufw allow 7000/tcp
sudo ufw allow 7500/tcp
sudo ufw allow 13000/tcp
三、訪問控制枱
FRP 提供了 Web 儀表盤用於監控代理服務的狀態。
啓用儀表盤:確保在 frps.ini 中配置了 dashboard_port 和登錄憑據:
訪問儀表盤:通過瀏覽器訪問 http://x.x.x.x:7500,並使用配置文件中的用户名和密碼登錄。
輸入賬號密碼
四、驗證與使用
五、常見問題與排查
1、連接失敗
檢查防火牆配置,確保 frps 監聽的端口已開放。
檢查 frpc 和 frps 是否使用相同的 token。
總結
FRP 是一種非常強大的內網穿透工具,通過簡單的配置即可將內網服務發佈到公網。它的多協議支持、自定義域名、加密傳輸等功能讓它適合多種場景,包括遠程辦公、內網服務外網訪問等。