开发者社区> code-x> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Nginx+Frp+Docker实现HTTPS内网穿透

简介: Nginx+Frp+Docker实现HTTPS内网穿透
+关注继续查看

内网穿透实用性非常强, 例如支付回调/访问内网数据库

域名dns需要解析到服务器地址

frp下载地址

https://github.com/fatedier/frp/releases

下载这两个文件

frp_0.38.0_linux_amd64.tar.gz

frp_0.38.0_windows_amd64.zip

服务端Nginx配置

server {
    listen 80;
    server_name qqqqqqqqq.test.com;
    rewrite ^(.*)$  https://$host$1 permanent;
}


server {
    listen       443 ssl;
    server_name  qqqqqqqqq.test.com;
    ssl_certificate "qqqqqqqqq.test.com.pem";
    ssl_certificate_key "qqqqqqqqq.test.com.key";
    ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
      
        location / {
            proxy_pass http://localhost:7090;
            # 跨域配置
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
            add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
            tcp_nodelay     on;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP       $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Scheme  $scheme;
            # 也可以选择配个错误处理页 以下三个配置为可选项
            root /usr/share/nginx/html;
            error_page 502 /502.html;
            location = /502.html {
            }
        }
}


服务端frp配置 frps.ini

[common]
#用于客户端连接, 服务器应该暴露此端口
bind_port = 7000
vhost_http_port = 7090
#连接池
max_pool_count = 5
#token验证
token = qqqqqqqqq
subdomain_host = qqqqqqqqq.test.com


aaaa@aaaaaa ~$ ./frps -c ./frps.ini

客户端frp配置 frpc.ini

[common]
server_addr = xx.xx.xx.xx
server_port = 7000
token = qqqqqqqqq
[httpsname]
type = http
local_port = 8073
local_ip = 127.0.0.1
custom_domains = qqqqqqqqq.test.com


aaaa@aaaaaa ~$ ./frpc -c ./frpc.ini

Docker部署

目录结构

[aaaa@aaaaaa ~]$ tree
.
├── Dockerfile
└── frp
    ├── frps
    ├── frps_full.ini
    ├── frps.ini
    ├── frps.log
    ├── LICENSE
    └── systemd
        ├── frpc.service
        ├── frpc@.service
        ├── frps.service
        └── frps@.service


Dockerfile

FROM centos:8
COPY frp/ /root/frp/
CMD ["/root/frp/frps","-c","/root/frp/frps.ini"]
EXPOSE 7000
EXPOSE 7090


构建镜像

docker build -t docker-frp .


运行

配置文件挂载 方便改配置

docker run --name docker-frp -p 7000:7000 -p 7090:7090 -v /usr/local/frp/frps.ini:/root/frp/frps.ini -d docker-frp


也可使用钉钉的免费穿透服务

https://developers.dingtalk.com/document/resourcedownload/http-intranet-penetration?pnamespace=app

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Docker(2)- Centos 7.x 下安装 Docker
Docker(2)- Centos 7.x 下安装 Docker
28 0
Docker(40)- docker 实战三之安装 ES+Kibana
Docker(40)- docker 实战三之安装 ES+Kibana
42 0
Linux安装Docker(亲测有效)
Linux安装Docker 今天项目需要部署到Docker上去,那么就亲自来部署一把Docker咯。 Docker有两个版本: 社区版(CE) 企业版(EE) Docker Community Edition(CE)非常适合希望开始使用Docker并尝试使用基于容器的应用的个人开发人员和小团队。
5360 0
2步安装1个hive docker运行环境[centos7]
在centos7环境下,利用docker,快速搭建hive的运行环境
3368 0
Docker容器内部安装Nginx
Docker容器下环境安装Nginx笔记,中途遇到些问题希望高手指教。
3455 0
+关注
14
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载