frp 內網穿透-配置及常用的範本和部屬方式
主要特點是:
- 支持 TCP/UDP/HTTP/HTTPS 等多種協議
- 支持加密傳輸(TLS)
- 支持負載均衡
- 提供簡單的 Web 管理界面
- 支持多種操作系統(Windows, Linux, Mac OS)
FRPS(服務器端)
而frp 分為frpc(客戶端) 及 frps(服務器端 ),有些熱情的網友將frps製作成一鍵安裝的腳本,安裝完成後可以直接透過shell進行設置。
# /usr/local/frps/frps.ini 配置路徑
# 將擷取一些比較常用的選項,其餘均為預設即可
[common]
# 該參數設置frps 要運行在哪個port
bind_addr = 0.0.0.0
bind_port = 5442
# frps 有提供對外面板,以下可以直接設置例如要對外開的port及介面的帳號密碼
dashboard_port = 36443
dashboard_user = admin
dashboard_pwd = 123456
# 注意若frps機器沒有任何80或是443 port服務佔用
# 並且想要直接將本地 nginx 80及443 對外開放就可以直接設置以下參數
vhost_http_port = 80
vhost_https_port = 443
FRPC (客戶端)
設定完frps之後 換在 frpc上面進行設置,而這塊我是透過docker 進行部屬,所以提供docker 部屬的方式。
- docker-compose.yaml 用於部屬frpc。
- env.toml 直接映射到容器內,若配置錯誤可以直接重新配置。
services:
frpc:
restart: always
container_name: frp-tw
image: snowdreamtech/frpc:latest
volumes:
- './frpc.toml:/etc/frp/frpc.toml'
以下是常用的一些範本,請注意 custom_domains
可以設置成自己想要的域名,local_ip
可以自行設定想要對外的私網ip,不一定要127.0.0.1。
# 以下設置服務器的資訊
[common]
server_addr = 35.2.13.21
server_port = 5442
token = gjklasASjgkl
# 若想要 透過TCP 對外 可以使用以下配置
[nginx-frp-tw-local]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 80
customDomains = ["masterlab.xgstudio.co"]
# **常用**
# 雖然速度上比起直接設置tcp或者udp來相比慢一點
# 但對於網頁來說已經算功能齊全
# custom_domains 可以設置類似nginx的serve_name
[nginx-frp-tw-443]
type = https
local_ip = 127.0.0.1
local_port = 443
custom_domains = abc-frp.test.com
[nginx-frp-tw-80]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = abc.test.com
# 若需要22 port對外 也可以配置以下
[ssh-login]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 8891
以上 配置本地的frpc後,目錄結構會類似於以下。
docker-compose up -d
將容器拉起
docker-compose logs
可以查詢是否成功