• docker frps 内网穿透容器化服务


    准备

    • 域名解析 将frp.xx.com解析到服务器ip,将泛域名 *.frp.xx.com解析到frp.xx.com即可
    • https证书申请 泛域名证书现在可以用acme.sh申请Let's Encrypt证书,坑挖好了 ,看这里 [新手教程]申请https泛域名解析
    • 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 -v /etc/frp/frps.ini:/frp/frps.ini -p 7000:7000 -p 7500:7500 -p 8888:8888 -p 445:445 --name frps_server frps
    

    注意

    445端口在win下为保留端口,请换到1000以上端口,具体参考msdn的文档说明

    测试

    访问IP:8888查看是否正常,若有异常可用 docker log 容器id 进行查看错误日志后处理

    扩展

    看的比较仔细的小伙伴已经看到了,我们端口设置的是8888,并不是80.访问的时候需要带上端口,使用上并不方便,下面我们将配置nginx转发,实现域名访问.
    点这里继续 docker nginx 自定义配置容器

  • 相关阅读:
    sql分页查询
    vi编辑器使用
    Linux命令:
    ubuntu中mysql忘记密码如何修改
    关于MySQL中自增的理解和设置
    MySQL中是索引
    MySQL中的分页操作结合python
    MySQL的分组和排序
    MySQL多表连接操作
    .NET Core App部署Linux
  • 原文地址:https://www.cnblogs.com/LandWind/p/docker-frps-first.html
Copyright © 2020-2023  润新知