frp 內網穿透-配置及常用的範本和部屬方式

frp 內網穿透-配置及常用的範本和部屬方式

GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. - fatedier/frp

主要特點是:

  1. 支持 TCP/UDP/HTTP/HTTPS 等多種協議
  2. 支持加密傳輸(TLS)
  3. 支持負載均衡
  4. 提供簡單的 Web 管理界面
  5. 支持多種操作系統(Windows, Linux, Mac OS)

FRPS(服務器端)

GitHub - mvscode/frps-onekey: Frp server one-click configuration script. The script obtains the latest Frp version by default
Frp server one-click configuration script. The script obtains the latest Frp version by default - mvscode/frps-onekey

而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 可以查詢是否成功