以下是為Ubuntu服務器(公網)- Ubuntu客戶端(內網)的FRP內網穿透配置教程,基于最新版本(2025年6月,使用frp_0.61.1_linux_amd64
)整理:
一、服務端配置(公網Ubuntu服務器)
1. 下載與安裝
# 下載FRP(版本需與客戶端一致)
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
tar -zxvf frp_0.61.1_linux_amd64.tar.gz -C /usr/local/
mv /usr/local/frp_0.61.1_linux_amd64 /usr/local/frp
cd /usr/local/frp
rm -f frpc* # 刪除客戶端文件<x-preset class="no-tts reference-tag disable-to-doc" data-index="3">3</x-preset><x-preset class="no-tts reference-tag disable-to-doc" data-index="4">4</x-preset>
2. 配置文件 frps.toml
[common]
bind_port = 7000 # 客戶端連接端口
token = your_token_123 # 認證密鑰(需客戶端一致)
dashboard_port = 7500 # 監控面板端口
dashboard_user = admin
dashboard_pwd = your_dashboard_pwd
log_file = ./frps.log
log_level = info
3. 啟動服務端
# 臨時啟動(測試用)
./frps -c frps.toml# 配置systemctl開機啟動
sudo tee /etc/systemd/system/frps.service << EOF
[Unit]
Description=Frp Server
After=network.target[Service]
User=root
WorkingDirectory=/usr/local/frp
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml
Restart=on-failure[Install]
WantedBy=multi-user.target
EOF# 啟動并設置開機自啟
sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl enable frps
4. 防火墻放行端口
sudo ufw allow 7000/tcp # 客戶端連接端口<x-preset class="no-tts reference-tag disable-to-doc" data-index="4">4</x-preset>
sudo ufw allow 7500/tcp # 監控面板端口
二、客戶端配置(內網Ubuntu機器)
1. 下載與安裝
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
tar -zxvf frp_0.61.1_linux_amd64.tar.gz -C /usr/local/
mv /usr/local/frp_0.61.1_linux_amd64 /usr/local/frp
cd /usr/local/frp
rm -f frps* # 刪除服務端文件<x-preset class="no-tts reference-tag disable-to-doc" data-index="3">3</x-preset><x-preset class="no-tts reference-tag disable-to-doc" data-index="4">4</x-preset>
2. 配置文件 frpc.toml
[common]
server_addr = 公網服務器IP # 替換為實際IP
server_port = 7000
token = your_token_123 # 與服務端一致[ssh] # 暴露SSH服務(示例)
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 公網訪問的端口<x-preset class="no-tts reference-tag disable-to-doc" data-index="2">2</x-preset><x-preset class="no-tts reference-tag disable-to-doc" data-index="4">4</x-preset>
3. 啟動客戶端
# 臨時啟動(測試用)
./frpc -c frpc.toml# 配置systemctl開機啟動
sudo tee /etc/systemd/system/frpc.service << EOF
[Unit]
Description=Frp Client
After=network.target[Service]
User=root
WorkingDirectory=/usr/local/frp
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.toml
Restart=on-failure[Install]
WantedBy=multi-user.target
EOFsudo systemctl daemon-reload
sudo systemctl start frpc
sudo systemctl enable frpc
三、連接驗證
- SSH訪問內網機器(通過公網IP):
ssh -p 6000 你的內網用戶名@公網服務器IP
-
查看監控面板: 瀏覽器訪問
http://公網服務器IP:7500
,輸入用戶名admin
和密碼your_dashboard_pwd
。 -
日志排查:
- 服務端日志:
tail -f /usr/local/frp/frps.log
- 客戶端日志:
tail -f /usr/local/frp/frpc.log
- 服務端日志:
四、高級配置
1. HTTPS穿透(Web服務)
# frpc.toml 添加配置
[web]
type = https
custom_domains = your.domain.com # 需綁定域名
local_port = 80
2. XTCP點對點穿透(減少服務器帶寬占用):
# 服務端啟用 xtcp 支持
[common]
bind_udp_port = 7001 # 新增配置
# 客戶端配置(客戶端A與B均需配置)
[p2p_ssh]
type = xtcp
sk = your_secret_key # 雙方密鑰相同
local_ip = 127.0.0.1
local_port = 22
五、注意事項
-
安全配置:
- 修改默認的
token
和儀表盤密碼。 - 建議非必要不開放
dashboard_port
到公網。
- 修改默認的
-
端口管理:
- 若使用公共服務器,可能需通過工單申請端口(如中國科技大學試驗環境要求)。
-
版本一致性:服務端與客戶端需使用相同FRP版本。
如需其他協議(如HTTP/UDP)或插件支持,可參考FRP官方文檔。