以下是搭建 FRP(Fast Reverse Proxy)服務器 的詳細步驟,涵蓋服務端和客戶端配置,適用于內網穿透、遠程訪問等場景:
一、FRP 簡介
FRP 是一款開源的內網穿透工具,通過公網服務器(FRPS)將內網服務(FRPC)暴露到外網。支持 TCP/UDP/HTTP/HTTPS 等協(xié)議,常用于:
遠程訪問內網 Web 服務、SSH、數(shù)據(jù)庫等。
穿透 NAT 限制,實現(xiàn)設備互聯(lián)。
二、服務端(FRPS)搭建
1. 準備公網服務器
系統(tǒng)要求:Linux(如 Ubuntu/CentOS)或 Windows,建議使用 Linux。
開放端口:默認使用 7000(FRP 控制端口)和需要轉發(fā)的業(yè)務端口(如 80、443 等)。
2. 下載 FRP 二進制文件
訪問 FRP GitHub Release,選擇對應版本:
bash
復制
下載
# 以 Linux 64 位為例
wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz
tar -zxvf frp_0.51.3_linux_amd64.tar.gz
cd frp_0.51.3_linux_amd64
3. 配置服務端(frps.ini)
編輯 frps.ini,示例如下:
ini
復制
下載
[common]
# 服務端監(jiān)聽端口(客戶端連接端口)
bind_port = 7000
# 認證 Token(客戶端需匹配)
token = your_secure_token_123
# 儀表盤端口和賬號密碼(可選)
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin_pwd
# 日志配置
log_file = ./frps.log
log_level = info
log_max_days = 3
4. 啟動 FRPS 服務
bash
復制
下載
# 直接啟動(測試用)
./frps -c frps.ini
# 后臺運行(推薦使用 systemd 托管)
sudo vim /etc/systemd/system/frps.service
systemd 服務文件示例:
ini
復制
下載
[Unit]
Description=Frp Server
After=network.target
[Service]
Type=simple
ExecStart=/path/to/frps -c /path/to/frps.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target
啟動并設置開機自啟:
bash
復制
下載
sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl enable frps
5. 防火墻配置
開放端口(以 firewalld 為例):
bash
復制
下載
sudo firewall-cmd --permanent --add-port=7000/tcp # FRPS 控制端口
sudo firewall-cmd --permanent --add-port=7500/tcp # 儀表盤端口(可選)
sudo firewall-cmd --reload
三、客戶端(FRPC)配置
1. 下載客戶端文件
與服務端步驟相同,下載對應系統(tǒng)的 FRP 文件。
2. 配置客戶端(frpc.ini)
編輯 frpc.ini,示例如下:
ini
復制
下載
[common]
# 服務端地址和端口
server_addr = your_server_ip
server_port = 7000
# 認證 Token(與服務端一致)
token = your_secure_token_123
# 示例:暴露 SSH 服務到公網
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 通過 server_ip:6000 訪問內網 SSH
# 示例:暴露 HTTP 服務
[web]
type = http
local_port = 80
custom_domains = your-domain.com # 需將域名解析到服務器 IP
3. 啟動客戶端
bash
復制
下載
# 直接啟動
./frpc -c frpc.ini
# 后臺運行(同樣建議使用 systemd)
四、驗證與訪問
服務端儀表盤:
訪問 http://your_server_ip:7500,輸入賬號密碼查看連接狀態(tài)。
測試服務:
SSH 訪問:ssh -p 6000 username@your_server_ip
HTTP 訪問:瀏覽器打開 http://your_server_ip:80(或綁定的域名)。
五、安全配置建議
修改默認端口:避免使用 7000 等常見端口。
強密碼和 Token:使用復雜 Token 防止未授權連接。
限制客戶端 IP(可選):
ini
復制
下載
# 在 frps.ini 中限制允許連接的客戶端 IP
allow_ports = 6000-6010 # 僅允許開放指定端口
啟用 TLS 加密:
ini
復制
下載
[common]
tls_enable = true
六、常見問題
連接失?。?/span>
檢查服務端防火墻和云服務器安全組規(guī)則。
查看日志 frps.log 或 frpc.log。
端口沖突:修改 remote_port 或服務端配置。
域名解析:確保域名已正確解析到服務器 IP。
七、高級用法
多客戶端管理:為不同客戶端分配獨立 Token 或權限。
負載均衡:多個客戶端綁定同一服務實現(xiàn)高可用。
HTTPS 支持:結合 Nginx 反向代理配置 SSL 證書。
通過以上步驟,可快速搭建一個安全的 FRP 內網穿透服務。根據(jù)實際需求調整端口和協(xié)議,確保遵守網絡安全規(guī)范。