docker安装frp

前提:需要有一台云服务器和一个域名,域名添加解析到该服务器公网ip

一. 服务端

源码地址 https://github.com/fatedier/frp

docker镜像地址 https://github.com/snowdreamtech/frp?spm=a2c4e.10696291.0.0.4a5619a4SqlVwU

1.1 创建frp的默认配置文件

mkdir -p /root/i/docker/frp && cd /root/i/docker/frp

cat <<EOF> frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080
vhost_https_port = 8081
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = www19930327
EOF

http使用8080端口,https使用8081端口

1.2 创建启动脚本

[root@wanfei frp]# cat <<EOF> start.sh
#!/bin/bash
FRP_DIR=`pwd`
docker stop frps
docker rm frps
docker run -d \\
    --restart always \\
    --network host \\
    --name frps \\
    -v \${FRP_DIR}/frps.ini:/etc/frp/frps.ini \\
    snowdreamtech/frps
EOF

--network host: host 网络模式,所有容器端口都对应属主机端口,不存在映射关系。端口不能被占用,如果端口已经被使用过,可以修改或者不使用host网络模式,使用-p 8082:8080指定宿主机端口映射到容器端口

1.3 启动

[root@wanfei frp]# sh start.sh 
ipsec-vpn-server
ipsec-vpn-server
e7665f1a3c9a721b2a338b0eb67944fa3461d1c2f57934de9fda76ed28fc21f6

1.4 服务端执行成功

[root@master frp]# docker ps -a | grep frp
58ec73dba13e        snowdreamtech/frps                         "/bin/sh -c '/usr/bi…"   12 seconds ago      Up 11 seconds                                  frps

浏览器测试
在这里插入图片描述
dashboard
在这里插入图片描述
在这里插入图片描述

二. 客户端

2.1 win10客户端http访问web 内网服务

2.1.1 下载

下载客户端 https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_windows_amd64.zip

解压之后,移到D
在这里插入图片描述

2.1.2 修改frpc.ini配置文件
[common]
server_addr = 公网ip
server_port = 7000

[web]
type = http
local_port = 9999
custom_domains = frp.wanfei.wang

9999:是我本地跑的服务的端口

2.1.3 运行客户端

新建一个txt文件,修改为bat脚本

cd /d %~dp0
frpc
  • cd /d %~dp0: 进入当前目录

在这里插入图片描述
双击
在这里插入图片描述
浏览器查看web服务
在这里插入图片描述

2.2 Linux客户端http访问内网web 服务

使用win10安装的Docker Toolbok演示,这里可以不用域名

2.2.1 新建配置frpc.ini文件
mkdir -p /root/i/docker/frpc && cd /root/i/docker/frpc

cat <<EOF> frpc.ini
[common]
server_addr = 公网ip
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 5050
remote_port = 5050
EOF
  • 5050端口是下面安装的gogs测试的端口,remote_port端口也必须是5050
  • 如果想使用ssh连接内网服务器,local_port = 22remote_port = 6000
2.2.2 创建启动脚本
cat <<EOF> start.sh
#!/bin/bash
FRP_DIR=`pwd`
docker stop frpc
docker rm frpc
docker run -d \\
    --restart always \\
    --network host \\
    --name frpc \\
    -v \${FRP_DIR}/frpc.ini:/etc/frp/frpc.ini \\
    snowdreamtech/frpc
EOF
2.2.3 启动
sh start.sh 
2.2.4 安装gogs测试
docker run -d -p 10022:22 -p 5050:3000 --name=gogs -v /opt/docker/gogs/:/data gogs/gogs

直接访问公网ip : 5050
在这里插入图片描述

2.3 Linux客户端远程连接IP + Port

2.3.1 新建配置frpc.ini文件
mkdir -p /root/i/docker/frpc && cd /root/i/docker/frpc

cat <<EOF> frpc.ini
[common]
server_addr = 公网ip
server_port = 7000

[local]
type = tcp
local_ip = 127.0.0.1
# 本地服务的端口
local_port = 8080
# 远程服务端开启的端口,外网访问
remote_port = 32384
EOF
2.3.2 创建启动脚本
cat <<EOF> start.sh
#!/bin/bash
FRP_DIR=`pwd`
docker stop frpc
docker rm frpc
docker run -d \\
    --restart always \\
    --network host \\
    --name frpc \\
    -v \${FRP_DIR}/frpc.ini:/etc/frp/frpc.ini \\
    snowdreamtech/frpc
EOF
2.3.3 启动
sh start.sh 

2.4 申请SSL证书

要想使用https内网穿透,必须要有ssl证书,下面申请免费的ssl证书,证书生效期30天,即将到期会邮件通知,重新创建

地址 https://www.sslforfree.com/

先点击右上角的login,注册一下账号
在这里插入图片描述
点击创建一个证书
在这里插入图片描述
选择DNS(最简单的方法)
在这里插入图片描述
在这里插入图片描述
下面是微信小程序添加域名解析(我的域名是从腾讯买的,腾讯的域名解析是在小程序上添加的)
在这里插入图片描述
在这里插入图片描述
等一会儿点击下面的两个链接验证,下面的说明验证成功
在这里插入图片描述
然后点击下载证书
在这里插入图片描述
点击下载
在这里插入图片描述
为了避免部分浏览器出现 证书链长度为1 的不安全提示, 需要将 ca_bundle.crt 的内容复制到 certificate.crt 后面, 得到新的 certificate.crt

2.5 win10 https访问内网web服务

2.5.1 移动两个证书文件到frp根目录

在这里插入图片描述

2.5.2 修改frpc.ini
[common]
server_addr = 公网ip
server_port = 7000

[test_htts2http]
type = https
custom_domains = frp.wanfei.wang

plugin = https2http
plugin_local_addr = 127.0.0.1:9999

# HTTPS 证书相关的配置
plugin_crt_path = ./certificate.crt
plugin_key_path = ./private.key
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp
2.5.3 执行bat运行

访问子域名:8081访问web服务
在这里插入图片描述
在这里插入图片描述

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值