基于Cloudflare内网穿透实现自建图床

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。基于Cloudflare内网穿透实现自建图床,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

图床的选择

厂商 收费 域名
七牛云Kodo 每月10G免费流量【HTTPS流量不包括在内】,按量收费,资源包 未备案域名只支持海外节点
阿里云OSS 按量收费,资源包 未备案域名仅支持海外节点【有香港节点】
腾讯COS 按量收费,资源包 未备案域名仅支持海外节点【有香港节点】

按量收费的服务都存在一个风险点,或者说需要注意的一个点就是流量。当自己站点的流量较大时,存储空间的支出相对CDN的流量支出可谓是九牛一毛。存在恶意攻击时支出更不可控。虽然云厂商的服务开箱即用,但是自建的服务可在支出上省下一笔费用。

自建图床的选择

自建图床的选择也有很多,Github+DNS转发SMMSLsky Pro 等等都可行,各有各的优势,这里选择MinIO作为自建图床的基础来做演示。

安装MinIO

基于docker compose安装

version: '3.9'
services:
    minio:
        command: 'server /data --console-address ":9001"'
        restart: always
        image: quay.io/minio/minio
        container_name: minio
        environment:
            - MINIO_ROOT_USER=minio
            - MINIO_ROOT_PASSWORD=miniopwd
        volumes:
            - './data:/data'
        ports:
            - '9001:9001'
            - '9000:9000'
        deploy:
          resources:
            limits:
              memory: 512M
  • --console-address ":9001":配置MinIO的控制台访问端口,和下面端口映射的 - '9001:9001'对应,可按需修改。
  • MINIO_ROOT_USER:MinIO控制台登录账号
  • MINIO_ROOT_PASSWORD:MinIO控制台登录密码

启动MinIO

docker-compose up -d

image-20231127104536130

通过IP:控制台端口进行访问

image-20231127104724076

测试MinIO功能

  1. 使用配置的账号密码登录控制台
    image-20231127104826395

  2. 创建一个新的存储桶
    image-20231127104939183

    image-20231127105007247

  3. 配置存储桶的访问权限,当前为测试演示开启public,使用时按实际访问权限填写,不懂配置可百度+B站
    image-20231127105429544

  4. 上传测试图片并访问
    image-20231127105206016
    访问路径为:IP:API接口/bucket/source,以当前示例为:http://10.0.1.131:9000/test/ccfdfe74880411ebb6edd017c2d2eca2.jpgimage-20231127105555947

结合Cloudflare内网穿透功能,实现外网访问

准备一个域名,注册好Cloudflare账号

域名选择很多,阿里万网、腾讯DNSPod都可以。这里以阿里云域名为例。

将域名的DNS解析托管到Cloudflare

  1. 在Cloudflare的管理页面选择添加站点,按流程添加域名信息。

    image-20231127110115634

    选择Free计划
    image-20231127110435175

    这里获得两个DNS服务器地址
    image-20231127110658838

  2. 将Cloudflare提供的DNS服务器地址,替换掉域名原DNS解析。

    阿里云修改流程:控制台 – 域名 – 域名列表 – 选择需要修改的域名 – 详细信息中选择DNS修改,将获得的两个DNS解析服务器更换。预计需要几分钟到一个小时不等的时间完成更新
    在这里插入图片描述

  3. 回到Cloudflare界面,当域名变为有效状态则DNS服务器修改成功。
    image-20231127111241883

配置Cloudflare 内网穿透

在控制台首页选择Zero Trust,在Zero Trust界面中选择:Access – Tunnels – Create a tunnel,创建一个新的内网穿透通道。
image-20231127111639164

输入通道名:
image-20231127111801618

这里有多种Client部署方式,我们选择Docker,将命令复制下来修改为后台运行并在可访问到MinIO的节点上部署。
image-20231127112048984

docker run -d cloudflare/cloudflared:latest tunnel --no-autoupdate run --token 修改为自己的token

image-20231127112200143

部署成功后,这里会显示Client连接:

image-20231127112232323

继续下一步,填写具体的穿透服务。

subdomian:二级域名
Domian:转入Cloudflare托管的域名
Service:填写目标服务地址。注意:此时要代理的是MinIO的API端口

image-20231127112401110

创建完成后,tunnels列表显示:
image-20231127112725625

此时将刚刚访问图片的IP+端口替换为代理域名:
http://10.0.1.131:9000/test/ccfdfe74880411ebb6edd017c2d2eca2.jpg
https://代理域名/test/ccfdfe74880411ebb6edd017c2d2eca2.jpg

image-20231127112852845

自建图床+外网访问已完成。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/194644.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!