赞
踩
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包);
wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh
注意:此处建议在宿主机上下载,然后复制到容器中进行安装(因为centos基础系统无wget需要额外安装,为了节省资源所有采用这种方式)
复制脚本:docker cp 宿主机目录 容器:目录
docker cp /home/install-frps.sh 容器:/home/install-frps.sh
进入容器
docker exec -it 容器 /bin/bash
设置文件操作权限
chmod 700 ./install-frps.sh
安装(容器内操作)
./install-frps.sh install
安装过程需要手动设置参数(一般默认就行)
============================================== 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 : ****** ============================================== ```
执行完成后会立即启动(如图)表示启动成功
到此为主frps服务安装已完成
注意:
- 此处生成的token值客户端配置需要用到
- Dashboard user和password是登录web需要的认证信息
- frps配置文件位置 /usr/local/frps/frps.ini,如果我们需要修改改文件可在启动容器时手动挂载替换
在 /etc/profile.d目录下创建frps.sh脚本(此处也可使用其他方式-systemctl等)
frps start #启动命令
该脚本的作用主要时容器启动时系统自动调用该脚本启动frps
命令:docker commit 容器 仓库/名称:latest
创建本地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
使用新生成的镜像启动容器
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
命令描述:
/usr/sbin/init:将CMD或者entrypoint设置为/usr/sbin/init,docker容器会自动将dbus等服务启动起来,否则无法自动启动,需要进入docker容器才能正常启动
至此可访问 宿主ip:6443进入web界面:
客户端下载地址: https://github.com/fatedier/frp/releases/
解压后编辑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
进入解压目录运行客户端:
frpc -c frpc.ini(windows)
运行成功如下:
开启本地服务:
使用端口8080开启一个可访问的服务,启动后访问 服务ip:8080 即可转发到本地服务,实现内外网互通。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。