前提:需要有一台云服务器和一个域名,域名添加解析到该服务器公网
ip
源码地址 https://github.com/fatedier/frp
docker镜像地址 https://github.com/snowdreamtech/frp?spm=a2c4e.10696291.0.0.4a5619a4SqlVwU
mkdir -p /root/i/docker/frp && cd /root/i/docker/frp
cat < 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
端口
[root@wanfei frp]# cat < 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
指定宿主机端口映射到容器端口
[root@wanfei frp]# sh start.sh
ipsec--server
ipsec--server
e7665f1a3c9a721b2a338b0eb67944fa3461d1c2f57934de9fda76ed28fc21f6
[root@master frp]# docker ps -a | grep frp
58ec73dba13e snowdreamtech/frps "/bin/sh -c '/usr/bi…" 12 seconds ago Up 11 seconds frps
下载客户端 https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_windows_amd64.zip
frpc.ini
配置文件[common]
server_addr = 公网ip
server_port = 7000
[web]
type = http
local_port = 9999
custom_domains = frp.wanfei.wang
9999
:是我本地跑的服务的端口
新建一个txt文件,修改为bat脚本
cd /d %~dp0
frpc
cd /d %~dp0
: 进入当前目录使用win10
安装的Docker Toolbok
演示,这里可以不用域名
frpc.ini
文件mkdir -p /root/i/docker/frpc && cd /root/i/docker/frpc
cat < 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 = 22
,remote_port = 6000
cat < 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
sh start.sh
docker run -d -p 10022:22 -p 5050:3000 --name=gogs -v /opt/docker/gogs/:/data gogs/gogs
frpc.ini
文件mkdir -p /root/i/docker/frpc && cd /root/i/docker/frpc
cat < 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
cat < 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
sh start.sh
要想使用
https
内网穿透,必须要有ssl
证书,下面申请免费的ssl
证书,证书生效期30天,即将到期会邮件通知,重新创建
地址 https://www.sslforfree.com/
先点击右上角的login
,注册一下账号
点击创建一个证书
选择DNS(最简单的方法)
下面是微信小程序添加域名解析(我的域名是从腾讯买的,腾讯的域名解析是在小程序上添加的)
等一会儿点击下面的两个链接验证,下面的说明验证成功
然后点击下载证书
点击下载
为了避免部分浏览器出现 证书链长度为1
的不安全提示, 需要将 ca_bundle.crt
的内容复制到 certificate.crt
后面, 得到新的 certificate.crt
frp
根目录[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