文章目錄

  • 一、下載安裝 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

配置frp 實現內網穿透(Linux)_#運維

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

配置frp 實現內網穿透(Linux)_服務端_02

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

配置frp 實現內網穿透(Linux)_#運維_03

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

配置frp 實現內網穿透(Linux)_服務端_04

防火牆開放端口
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,並使用配置文件中的用户名和密碼登錄。

輸入賬號密碼

配置frp 實現內網穿透(Linux)_#linux_05

四、驗證與使用

配置frp 實現內網穿透(Linux)_服務端_06

五、常見問題與排查

1、連接失敗
檢查防火牆配置,確保 frps 監聽的端口已開放。
檢查 frpc 和 frps 是否使用相同的 token。

總結

FRP 是一種非常強大的內網穿透工具,通過簡單的配置即可將內網服務發佈到公網。它的多協議支持、自定義域名、加密傳輸等功能讓它適合多種場景,包括遠程辦公、內網服務外網訪問等。