当前位置:   article > 正文

Docker-frps内网穿透_dockerfprs

dockerfprs

前言

1. 本文目的是为了记录成功完成基于Docker的frp内网穿透过程
2. 资源:


Docker镜像推荐使用(snowdreamtech/frps)(snowdreamtech/frpc)
本文配置文件frps.ini:https://download.csdn.net/download/qq_35023147/11528052

环境说明(服务端)

Docker:开源的应用容器引擎 ;

Centos:基于docker的基础系统(本来尝试使用alpine,结果发现该系统无法找到对应的frp apk包);

步骤

一、下载frp安装脚本:

wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh
  • 1

注意:此处建议在宿主机上下载,然后复制到容器中进行安装(因为centos基础系统无wget需要额外安装,为了节省资源所有采用这种方式)

二、复制安装脚本至容器:

  1. 复制脚本:docker cp 宿主机目录 容器:目录

    docker cp /home/install-frps.sh 容器:/home/install-frps.sh
    
    • 1
  2. 进入容器

    docker exec -it 容器 /bin/bash
    
    • 1
  3. 设置文件操作权限

    chmod 700 ./install-frps.sh 
    
    • 1

三、执行frps安装脚本:

  1. 安装(容器内操作)

    ./install-frps.sh install
    
    • 1
  2. 安装过程需要手动设置参数(一般默认就行)

    	 
    	==============================================
    	You Server IP      : 服务ip
    	Bind port          : 5443
    	KCP support        : true
    	vhost http port    : 80
    	vhost https port   : 443
    	Dashboard port     : 6443
    	token              : lJSpuP]QsJqnzA
    	tcp_mux            : true
    	Max Pool count     : 50
    	Log level          : info
    	Log max days       : 3
    	Log file           : enable
    	
    	==============================================
    	frps Dashboard     : http://服务ip:6443/
    	Dashboard user     : admin
    	Dashboard password : ******
    	
    	==============================================
    	```
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  3. 执行完成后会立即启动(如图)表示启动成功

    在这里插入图片描述
    到此为主frps服务安装已完成

    注意:
    - 此处生成的token值客户端配置需要用到
    - Dashboard user和password是登录web需要的认证信息
    - frps配置文件位置 /usr/local/frps/frps.ini,如果我们需要修改改文件可在启动容器时手动挂载替换

三、编写自动启动脚本:

  1. 在 /etc/profile.d目录下创建frps.sh脚本(此处也可使用其他方式-systemctl等)

    frps start #启动命令
    
    • 1

    该脚本的作用主要时容器启动时系统自动调用该脚本启动frps

四、将容器生成docker镜像:

  1. 命令:docker commit 容器 仓库/名称:latest

  2. 创建本地frps.ini配置文件:

    # [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 = 5443
    # udp port used for kcp protocol, it can be same with 'bind_port'
    # if not set, kcp is disabled in frps
    kcp_bind_port = 5443
    # if you want to configure or reload frps by dashboard, dashboard_port must be set
    dashboard_port = 6443
    # dashboard assets directory(only for debug mode)
    dashboard_user = admin
    dashboard_pwd = admin
    # assets_dir = ./static
    vhost_http_port = 80
    vhost_https_port = 443
    # console or real logFile path like ./frps.log
    log_file = ./frps.log
    # debug, info, warn, error
    log_level = info
    log_max_days = 3
    # auth token
    token = vVNgUM1ozA1MJBsK
    # only allow frpc to bind ports you list, if you set nothing, there won't be any limit
    #allow_ports = 1-65535
    # pool_count in each proxy will change to max_pool_count if they exceed the maximum value
    max_pool_count = 50
    # if tcp stream multiplexing is used, default is true
    tcp_mux = true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
  3. 使用新生成的镜像启动容器

    docker run -d -i -p 5443:5443 -p 6443:6443 -p 8080:80 --name frps -v /mnt/frps/frps.ini:/usr/local/frps/frps.ini 镜像 /usr/sbin/init
    
    • 1

    命令描述:
    /usr/sbin/init:将CMD或者entrypoint设置为/usr/sbin/init,docker容器会自动将dbus等服务启动起来,否则无法自动启动,需要进入docker容器才能正常启动

  4. 至此可访问 宿主ip:6443进入web界面:

    在这里插入图片描述

五、客户端:

  1. 客户端下载地址: https://github.com/fatedier/frp/releases/

  2. 解压后编辑frpc.ini配置文件:

    [common]
    server_addr = 服务ip
    server_port = 5443
    token = lJSpuP]QsJqnzA
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    
    [web]
    type = http
    local_ip = 127.0.0.1
    local_port = 8080
    # ip解析
    custom_domains = 服务ip
    # 域名解析
    # custom_domains = www.xxx.com
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
  3. 进入解压目录运行客户端:

    frpc -c frpc.ini(windows)
    
    • 1
  4. 运行成功如下:

    在这里插入图片描述

  5. 开启本地服务:
    使用端口8080开启一个可访问的服务,启动后访问 服务ip:8080 即可转发到本地服务,实现内外网互通。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/119350
推荐阅读
相关标签
  

闽ICP备14008679号