簡介
frp
是一個可用於內網穿透的高效能的反向代理應用,支援tcp
,udp
,http
,https
,stcp
協議。frp
需要服務端和客戶端共同作用,服務端為frps
,一般安裝在 vps 伺服器上;客戶端為frpc
,一般安裝在路由器或 NAS 上。frps
和frpc
配置使用,可以遠端訪問或控制內網裝置。
frps 一鍵安裝
為了節省精力,這裡使用 clangcn 的一鍵安裝指令碼
支援的平臺:
- Centos 6/7 32/64bit
- Debian 6/7 32/64bit
- Ubuntu 14 32/64bit
安裝
下載指令碼
$ wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh
修改許可權
$ chmod 700 ./install-frps.sh
開始安裝
$ ./install-frps.sh install
安裝過程選項的說明
選項 | 說明 | 預設 |
---|---|---|
download_url | frp 映象源下載地址 | aliyun |
bind_port | frp 提供服務的埠 | 5443 |
vhost_http_port | http 服務埠 | 80 |
vhost_https_port | https 服務埠 | 443 |
dashboard_port | frps 儀表盤埠,用於檢視 frp 工作狀態 | 6443 |
dashboard_user | 儀表盤登入賬號 | admin |
dashboard_pwd | 儀表盤登入密碼 | 隨機 |
token | frps 和 frpc 通訊密碼 | 隨機 |
max_pool_count | 每個代理的連線上線 | 50 |
log_level | 日誌等級 | info |
log_max_days | 日誌保留天數 | 3 |
log_file | 是否開啟日誌 | enable |
tcp_mux | 是否開啟多路複用,減少 tcp 的握手延遲 | enable |
kcp support | 是否開啟 kcp | enable |
注意設定安全組或者防火牆
功能命令
命令 | 說明 |
---|---|
frps start | 啟動 |
frps stop | 停止 |
frps restart | 重啟 |
frps status | 當前服務狀態 |
frps config | vi 編輯配置 |
frps version | 檢視版本 |
install-frps.sh update | 更新指令碼 |
install-frps.sh uninstall | 解除安裝 |
fprc 配置
客戶端以 Windows
系統為例,路由器或者 NAS 的對照參考即可
下載
在這裡 frp 下載對應 frps
的版本
下載後只需要這三個檔案即可
- frpc.exe
- frpc.ini
- frpc_full.ini
配置
修改 frpc.ini
檔案
[common]
server_addr = xxxxxx # 伺服器 IP
server_port = 5443 # bind_port
token = xxxxxx # 與伺服器一致
[test]
type = http # 型別
local_ip = 127.0.0.1 # 本地 IP
local_port = 80 # 本地埠
use_encryption = true # 傳輸加密
use_gzip = true # gzip 壓縮
custom_domains = xxxxxx # 自定義域名
http_user = xxxxxx # 可選,訪問賬號
http_pwd = xxxxxx # 可選,訪問密碼
[test2]
type =
local_ip =
local_port =
use_encryption =
use_gzip =
custom_domains =
http_user =
http_pwd =
log_file = /dev/null
log_level = info
log_max_days = 3
啟動
開啟 cmd
,執行 frpc.exe
即可
Nginx 埠轉發
80
埠被 Nginx
佔用的情況下,利用 Nginx
進行埠轉發
這裡 7080
是 frps
的 http
服務埠
新增站點檔案 test.conf
,內容如下:
server
{
listen 80;
server_name www.cnguu.cn;
location / {
proxy_pass http://127.0.0.1:7080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log off;
error_log /dev/null;
}