1. 程式人生 > 實用技巧 >docker frps 配置服務端服務

docker frps 配置服務端服務

準備

  • 域名解析 將frp.xx.com解析到伺服器ip,將泛域名 *.frp.xx.com解析到frp.xx.com即可
  • https證書申請 泛域名證書現在可以用acme.sh申請Let's Encrypt證書,先挖個坑,後續再寫一篇補上
  • GitHub下載最新編譯檔案 GitHub frp releases
  • 複製frps和frps.ini檔案到frps目錄下
frps
      --frps
      --frps.ini
      --Dockerfile
  • 修改frps.ini配置檔案

只需要按需修改

name value rmk
vhost_http_port 8888 http埠
vhost_https_port 445 https埠
dashboard_user username web管理端管理員賬戶
dashboard_pwd password web管理端管理員密碼
subdomain_host frp.xx.com 子域名配置
# [common] is integral section
[common]
# A literal address or host name for IPv6 must be enclosed
# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
bind_addr = 0.0.0.0
bind_port = 7000

# udp port to help make udp hole to penetrate nat
bind_udp_port = 7001

# udp port used for kcp protocol, it can be same with 'bind_port'
# if not set, kcp is disabled in frps
kcp_bind_port = 7000

# specify which address proxy will listen for, default value is same with bind_addr
# proxy_bind_addr = 127.0.0.1

# if you want to support virtual host, you must set the http port for listening (optional)
# Note: http port and https port can be same with bind_port
vhost_http_port = 8888
vhost_https_port = 445

# response header timeout(seconds) for vhost http server, default is 60s
# vhost_http_timeout = 60

# set dashboard_addr and dashboard_port to view dashboard of frps
# dashboard_addr's default value is same with bind_addr
# dashboard is available only if dashboard_port is set
dashboard_addr = 0.0.0.0
dashboard_port = 7500

# dashboard user and passwd for basic auth protect, if not set, both default value is admin
dashboard_user = user
dashboard_pwd = 124356aabb

# dashboard assets directory(only for debug mode)
# assets_dir = ./static
# console or real logFile path like ./frps.log
log_file = /frps/frps.log

# trace, debug, info, warn, error
log_level = info

log_max_days = 3

# disable log colors when log_file is console, default is false
disable_log_color = false

# auth token
token = tokenwords

# heartbeat configure, it's not recommended to modify the default value
# the default value of heartbeat_timeout is 90
# heartbeat_timeout = 90

# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
allow_ports = 2000-3000,3001,3003,4000-50000

# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
max_pool_count = 5

# max ports can be used for each client, default value is 0 means no limit
max_ports_per_client = 0

# if subdomain_host is not empty, you can set subdomain when type is http or https in frpc's configure file
# when subdomain is test, the host used by routing is test.frps.com
subdomain_host = frp.xx.com

# if tcp stream multiplexing is used, default is true
tcp_mux = true

# custom 404 page for HTTP requests
# custom_404_page = /path/to/404.html

  • 修改Dockerfile檔案
FROM centos
WORKDIR /frp
COPY . . 
RUN chmod -R 777 /frp
CMD ["/frp/frps","-c","/frp/frps.ini"]
  • 建立映象
    frps目錄下執行
docker build -t frps .
  • 建立並啟動容器
docker run -d --restart=always -p 7000:7000 -p 7500:7500 -p 8888:8888 -p 445:445 --name frps_server frps

注意

445埠在win下為保留埠,請換到1000以上埠,具體參考msdn的文件說明