分类: 使用指南

  • 使用 MinIO 搭建属于自己的对象存储(OSS)

    使用 MinIO 搭建属于自己的对象存储(OSS)

    之前说过使用自建云存储低成本架设小说漫画站。

    [b2_insert_post id=”7356″]

    [b2_insert_post id=”7362″]

    顺便从网上扒了一篇文章是关于Minio自建云存储的。

    但这篇文章有点冗长,其实minio官网有很好的教程,一条命令就可以安装好了。

    wget |minio-deb| -O minio.deb
    sudo dpkg -i minio.deb

    上面命令运行一下就安装完成了。

    若想搭建分布式的对象存储,可以参考其官方给出的文件编写。官方提供了 docker-compose 和 kubernetes 以及linux deb包等几种安装方式。如果熟悉Docker的可以使用Docker,不熟悉的建议直接使用deb包。

    本教程使用的是 docker-compose 和单机布署的方式,内容参考

    docker-compose.yml 文件内容

    version: '3'
    
    services:
      server:
        image: quay.io/minio/minio:RELEASE.2022-03-08T22-28-51Z
        command: server --console-address ":9001" /data
        environment:
          MINIO_ROOT_USER: user
          MINIO_ROOT_PASSWORD: password
          MINIO_BROWSER_REDIRECT_URL: http://localhost:9001
          MINIO_SERVER_URL: http://localhost:9000
        healthcheck:
          test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
          interval: 30s
          timeout: 20s
          retries: 3
        volumes:
          - data:/data
        ports:
          - "9000:9000"
          - "9001:9001"
    
    volumes:
      data:
    

    environment 环境变量说明请查看 

    https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html

    注意:
    1、 image 可修改为最新的发布版本(根据其官方 GitHub Release 发布页);
    2、MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 若未配置,则默认账号和密码均为 minioadmin
    3、 MINIO_BROWSER_REDIRECT_URL 为 Console 管理平台登录网址,若不希望通过浏览器登录,可以增加 MINIO_BROWSER: off,禁止浏览器登录;
    4、MINIO_SERVER_URL 为文件分享网址。若未设置,则默认为本身的容器 IP,不可正常使用。若使用了 nginx 反向代理,则更需要设置此参数;

    使用#

    首先,运行容器。

    # 运行容器
    docker compose up -d
    

    运行完成后就可以通过 http://ip:9000 来访问minio了。密码就是前面定义的密码。

    后面都是可视化操作,基本就是创建一个Bucket,然后生成一套密钥。具体就不说了。

  • Debian 12重置root管理员密码

    Debian 12重置root管理员密码

    一台好久没有登录的服务器密码忘记了,记录一下如何恢复密码。

    操作方法

    1、需要重启Debian,在启动界面,按 E 键进入启动项编辑。

    225-1.png

    2、找到linux …… ro quiet这一行,把 ro quiet 改为 rw single init=/bin/bash ,按 Ctrl + X 键继续启动。

    225-2.png
    225-3.png

    3、待进入系统后,输入命令 passwd root 提示输入新密码,输入2次一样的新密码即可完成root密码修改,修改完成后重启系统即可。

    225-4.png

    重启你的系统


    完成重置 Linux 密码后,重新启动系统以使用更改后的密码登录。要重新启动,请键入:

    exec /sbin/init

    然后按下Enter键。

    从这里开始,您可以使用新设置的 root 密码登录并访问您的系统。本指南对于那些因某种原因丢失或忘记了 root 密码并且现在想要更改密码的人很有用。本文中给出的步骤也适用于其他 Debian 版本。

  • 使用cdnfly自建CDN并配置CC防护(更新了漏洞)

    使用cdnfly自建CDN并配置CC防护(更新了漏洞)

    更新:

    2023.3.30 修正了第三节”自建云端的错误”,伪装授权站需要一直存在

    2023.4.02 修复了国内机器无法连接github的问题,即增加了国内机器可访问的安装脚本

    2023.4.14 新增了cdnfly设置回源host实现反代的介绍

    2023.4.24 修复了伪装站点监控失效的情况,更新了cdnfly的节点监控功能说明

    2023.5.21 cdnfly5.1.13存在重大漏洞,普通用户生成的API通过某些方法可以拿到管理员权限 点击此处查看如何设置

    2023.7.23 删除了国内机器安装脚本 请自行挂代理

    2023.7.24 新增 备份和恢复 记录

    2023.7.25 更新主控&节点安装命令

    一、前言

    本文记录一下使用 [Cdnfly – 自建cdn|防CC攻击|cdn软件|cdn系统] 搭建CDN系统,保姆级教程 适合小白食用

    个人感觉自建CDN反代网站效果都差不多,都可以实现加速 缓存 防攻击等功能,但我暂时还不是很懂nginx相关配置,相较而言 自建CDN更容易批量维护和管理各节点

    官方安装文档:安装说明 · Cdnfly使用文档

    二、准备

    主控和被控均不能在 已安装nginx的情况下 执行安装命令,必须确保80 443端口未被占用!!!

    系统必须为centos7或ubuntu16.04 !!! debian11 ubuntu20 centos8 centos6等系统都不支持

    主控需开放80 88 443 9200端口

    节点需要开放 80 443 5000端口

    • 一台最小4GB内存的服务器(vps)做主控(cdn面板控制台)
    • 若干服务器做CDN节点
    • 系统:cdnfly主控和被控节点暂时仅支持Centos-7和Ubuntu 16.04系统

    本文以一台centos7系统的hetzner 4GB内存vps 167.235.134.18 做主控

    一台任何系统的vps 63.251.217.137 搭建伪装授权站点,即cdnfly自建云端

    一台centos7系统的DO纽约 512MB内存vps 192.241.156.51 做节点2 接管中国大陆移动以及海外等其他流量

    一台centos7系统的DO新加坡 512MB内存vps 157.245.154.23 做节点2 接管中国大陆的电信和联通流量

    为什么用DO 主要是我就知道这一家有0.5GB小内存,虽然这款比一些4GB内存的都贵 但为了测试512MB内存可用 还是选择了DO

    为什么CDN节点机器用0.5GB内存小鸡 大部分廉价的国内优化机器只有0.5GB内存

    三、cdnfly自建云端

    有cdnfly官方授权的可跳过这一步,需要购买正版授权请前往 官网购买

    因为我就是临时个人测试使用,官方那个有些贵,就采用 ccclt 大佬分享的的 绕过授权方法

    盗版可耻 开发不易 有条件请用正版

    cdnfly自建云端搭建方法:

    用 这个源码 搭建一个站点,绑定域名auth.cdnfly.cn、monitor.cdnfly.cn ,并根据文件中的nginx伪静态配置设置伪静态。

    建议自己搭建,不过也可以用我的,但是我的站点哪一天没了,你的机器会提示授权过期 到时候还是需要你自己搭建

    我用宝塔搭建大概为这样:

    image
    image
    image

    我的只能使用http监控,tcp ping监控都无法正常工作,可能和宝塔有关

    image

    四、主控服务器设置

    主控需要开放 80 88 443 9200端口,并且主控和节点机不能安装在同一机器上,会导致80端口冲突

    主控若未开启9200 88端口 会导致程序大量占用CPU直至死机,如有任何问题 建议重置elasticsearch

    1、首先更新centos7源

    1yum update -y

    2、修改主控vps的hosts文件

    修改主控vps的hosts文件,将 auth.cdnfly.cn、monitor.cdnfly.cn 这2个域名指向刚才的自建云端服务器IP 63.251.217.137

    修改hosts意义是 主控vps请求 auth.cdnfly.cn monitor.cdnfly.cn 这两个网站的内容会直接去 63.251.217.137 这个服务器请求,这样就绕过了官方服务器的验证

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    vi /etc/hosts


    #添加以下内容,记得替换为你自己搭建的IP 你就用这个IP也行
    #63.251.217.137 此IP属于DDP 该服务商暂停运营
    #请将下文图片中的 63.251.217.137 替换为 51.81.222.246
    51.81.222.246 auth.cdnfly.cn monitor.cdnfly.cn



    #2023.6.17更新云端IP 此IP可以tcp监控
    #51.81.222.246 auth.cdnfly.cn monitor.cdnfly.cn
    image

    3、检查hosts是否生效

    1
    2
    3
    ping auth.cdnfly.cn
    ping monitor.cdnfly.cn
    #如果都返回 51.81.222.246 说明hosts已经生效,主控vps请求 `auth.cdnfly.cn` `monitor.cdnfly.cn` 这两个网站的内容会直接去 `51.81.222.246` 这个服务器请求,这样就绕过了官方服务器的验证
    image

    4、安装cdnfly控制面板

    这里参考 Steady-WJ 整理的

    1
    2
    3
    #直接在主控vps执行这条命令即可,控制面板占用3GB内存,内存不足会安装失败

    curl -fsSL https://github.com/Steady-WJ/cdnfly-kaixin/raw/main/master.sh -o master.sh && chmod +x master.sh && ./master.sh –es-dir /home/es

    出现下图页面即安装成功,通过 IP http://167.235.134.18 直接访问即可

    如果出现报错等中止安装,大多数情况是你的系统不是centos7或ubuntu16.04,cdnfly开心版只支持centos7或ubuntu16.04系统,其它系统肯定无法正常运行

    管理员账号和密码: wenjian/wenjian
    普通用户账号和密码: ceshi/ceshi

    5.1.12版本的主控有严重的 安全漏洞

    普通用户生成的API通过某些方法可以拿到管理员权限,请自行根据 此方法 修复

    image
    image

    五、CDN节点服务器配置

    我用了两台做CDN节点,节点需要开放80 443 5000端口

    一台centos7系统的DO纽约 512MB内存vps 192.241.156.51 做节点2 接管中国大陆移动以及海外等其他流量

    一台centos7系统的DO新加坡 512MB内存vps 157.245.154.23 做节点2 接管中国大陆的电信和联通流量

    以节点1 192.241.156.51 为例,节点2 157.245.154.23 同理

    1、更新centos7的源

    1yum update -y

    2、添加SWAP虚拟内存

    1GB内存及以下的小鸡必须添加SWAP否则会报错,2GB以上内存的vps可自行决定是否添加SWAP

    centos7添加SWAP我参考的 这篇文章

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #先用 free -m 查看一下swap的大小

    #1、使用dd命令创建/home/swap这么一个分区文件。文件的大小是1024000个block,一般情况下1个block为1K,所以这里空间是1000MB

    dd if=/dev/zero of=/home/swap bs=1024 count=1024000


    #2、接着再把这个分区变成swap分区

    /sbin/mkswap /home/swap


    #3、再接着使用这个swap分区。使其成为有效状态

    /sbin/swapon /home/swap


    #现在再用 free -m 命令查看一下内存和swap分区大小,就发现增加了512M的空间了

    #4、修改/etc/fstab文件,在文件末尾增加如下一行,实现开机自动挂载
    #vi /etc/fstab

    /home/swap swap swap defaults 0 0
    image

    3、安装被控服务

    进入cdnfly管理员控制台>>系统管理>>系统升级,复制节点安装命令并在节点1和节点2等CDN节点服务器执行

    image
    1
    2
    3
    4
    5
    6
    7
    curl -fsSL https://github.com/Steady-WJ/cdnfly-kaixin/raw/main/agent.sh -o agent.sh && chmod +x agent.sh && ./agent.sh –master-ver v5.1.13 –master-ip ip –es-ip ip –es-pwd passwd



    ###替换–master-ip –es-ip –es-pwd 为你自己的,在cdnfly面板查看
    ###例如我执行的脚本为
    curl -fsSL https://github.com/Steady-WJ/cdnfly-kaixin/raw/main/agent.sh -o agent.sh && chmod +x agent.sh && ./agent.sh –master-ver v5.1.13 –master-ip 167.235.134.18 –es-ip 167.235.134.18 –es-pwd OPpESBo9mF

    下图即为安装成功,cdnfly被控服务会自己安装nginx等

    image

    4、安装BBR

    从下图就可以看出丢包对BBR的影响有多大

    centos安装BBR我用的以下这条命令

    1wget “https://github.com/cx9208/bbrplus/raw/master/ok_bbrplus_centos.sh” && chmod +x ok_bbrplus_centos.sh && ./ok_bbrplus_centos.sh

    参考:从流量控制算法谈网络优化 – 从 CUBIC 到 BBRv2 算法

    TCP BBR – Exploring TCP congestion control (toonk.io)

    image

    5、卸载节点

    如果节点想换到另一台主控或者不想占用80 443 ,可以执行这条命令卸载节点

    1cd /tmp/ && curl -m 5 http://dl2.cdnfly.cn/cdnfly/agent_uninstall.sh -o agent_uninstall.sh || curl -m 5 http://us.centos.bz/cdnfly/agent_uninstall.sh && chmod +x agent_uninstall.sh && ./agent_uninstall.sh

    六、cdnfly控制台必要配置

    官方安装文档:安装说明 · Cdnfly使用文档

    1、添加CDN节点

    即主控与被控服务建立连接,添加方法如下图

    会提示先修改密码,修改密码在:系统管理>>用户管理

    image
    image

    1GB内存小鸡通常会出现 同步cc_filter nginx openresty 以下报错,这是因为内存不够 解决办法是添加虚拟内存即可:centos7添加SWAP

    image

    部分服务商的centos7系统会报错 “重载resty配置失败:set-dict接口错误,可能节点未初始化成功,请尝试禁用启用节点”,一直是配置中,如果重启仍报错的话就是系统问题,这时候就需要 自行dd centos7系统

    2、DNS设置

    DNS设置可配置通过API来与第三方DNS提供商无缝对接,来生成网站的CNAME
    目前支持aliyun,国内版dnspod,dns.com、dns.la 和cloudflare.com

    获取密钥具体参考官方 DNS设置

    3、线路分组 设置分线路解析

    只有 DNS服务商 支持分线路解析才可以设置分线路解析

    例如cloudflare这类国外DNS服务就不支持分线路解析

    image
    image
    image

    还可以为IP设置权重,权重越大用户访问该IP相对越多

    4、添加套餐

    • 名称 – 套餐名称,用户端也会显示这个
    • 描述 – 套餐的说明,也会显示到用户端的套餐购买列表
    • 分配给用户 – 输入用户的id,表示指定该套餐为该用户的专属套餐,只有这个用户能购买此套餐
    • 线路分组 – 上一步添加的线路组,或其它分组,决定网站绑定此套餐后网站配置分发到的节点,以及cname解析的IP
    • 套餐分组 – 为套餐分组,分组也会显示到用户端的套餐购买页面,方便归类购买
    • CNAME域名 – 生成网站cname使用的域名,默认为之前dns设置中的主域名,可以输入其它的域名,但此域名必须跟主域名在同一个dns账号下。
    • 月流量 – G为单位,限制该套餐一个自然月内使用流量的上限
    • 域名数 – 该套餐允许的域名数量,域名数量包括裸域名及各级域名,如www.cdnfly.cn cdnfly.cn算两域名
    • HTTP非80,443端口数 – http可以输入非80,443的端口,此项可以限制非标端口的数量,不允许的话设置为0
    • 四层转发端口数 – 四层转发允许的端口数
    • 自定义CC规则 – 如果此项为允许,用户则可以创建自己的cc规则,并绑定到网站使用。如果为禁止,则用户只允许选择系统内置的规则
    • 排序 – 默认100,小值排在前面
    • 带宽为负值表示无限制
    • 连接数为负值表示不限制连接数
    image

    5、添加网站

    用管理员权限在 系统管理>>用户管理 创建一个用户 test

    以 test 用户登录 然后购买免费的高级套餐,在网站管理>>分组管理>>新增分组后就可以添加网站了

    6、节点监控介绍

    此节内容于2023.4.24补充,我的云端伪装站点只可以使用http监控,tcp ping监控均无法生效,目前不知到什么原因

    #2023.6.17更新 此IP可以tcp监控,看来是宝塔等问题
    #51.81.222.246 auth.cdnfly.cn monitor.cdnfly.cn

    cdnfly节点自动切换的规则:

    cdnfly的节点监控支持主节点宕机自动暂停 并删除该条DNS解析记录

    如果设置了备用节点会用一个备用节点替换已失效的主节点 并同步DNS解析记录

    当主节点再次恢复正常,cdnfly自动启用主节点并且取消使用备用节点,同时DNS会增加主节点DNS记录删去备用节点的解析记录

    以上操作均为系统自动执行无需人工干预,可以选择配置SMTP发信服务,可以收到 节点失效/节点恢复/切换操作 等通知

    image
    image
    image
    image

    7、单节点设置

    可以限制节点机器的文件缓存大小(不要超过vps硬盘本身大小)

    可以设置节点出站速度(100Mbps=12.5MB/s)

    image

    这里的代理设置应该不是指CDN节点到用户这段可以通过代理加速

    代理似乎也只支持http代理

    因为我给cdnfly节点添加代理后,我在云端监控(云端伪装站点)的服务器监听到了它与代理IP进行通信

    我猜测是:系统执行定时任务检查时,如果给CDN节点配置了代理,云端监控通过代理去访问CDN节点

    image
    image

    当http代理无效或非http代理时,还会报错,此时同步等功能会失效

    image
    image

    8、禁用API(多用户必设置)(重要重要重要!!!)

    2023.5.21 cdnfly5.1.13存在重大漏洞,普通用户生成的API通过某些方法可以拿到管理员权限,解决方法就是禁用API,首先在 cdnfly控制台 > 系统管理 > 系统设置 > 用户相关 > 限制普通用户只能从此域名登录 和限制管理员只能从此域名登录

    再依次在这两个登录域名设置 禁止 /v1/ 的所有访问,5.1.13版本的 /v1 路径是执行api的必要路径,封禁就可以避免被黑了*

    限制cdnfly从域名登录是避免从源站ip访问到了api

    限制管理员是二次防火墙,如果黑客获取了权限,但是不知道你的管理员登录地址,他就只能对普通用户更改

    image
    image

    七、cdnfly控制台推荐配置

    1、设置CC防护

    这个根据自己需要设置就好了,还可以自定义CC规则

    比如设置单IP 10s内最大访问 329.tanglu.cf 资源数为100,单个资源最大次数为20

    这个防一般的单IP CC攻击很有效,推荐设置
    需要自己CC测压 可以参考 这篇记录

    image

    一些发卡站避免被机器人检查可以设置访问该域名需要点击验证

    image

    2、设置CDN缓存文件类型

    这个也是根据自己网站的资源类型,以下是我博客的设置

    缓存设置建议参考官方文档:缓存配置 · Cdnfly使用文档

    默认为不缓存任何文件

    image

    3、设置CDN节点服务器缓存大小和最大带宽

    image

    4、申请证书

    cdnfly的证书是自动续签的

    cdnfly申请证书很简单有两种方法

    一种是一键申请

    image

    一种是在 网站管理 > 证书管理 > 我的证书 中申请证书

    当然也可以上传自己的证书

    image

    如果没有申请成功,可以在 我的网站 > 高级配置 中开启 /.well-known/acme-challenge/请求回源

    image

    八、cdnfly控制台其他配置

    1、短信/邮箱提示

    这里就是设置SMTP服务,QQ/gmail等都支持SMT发信,可以参考篇记录获取你QQ/gmail的SMTP专用密码:获取QQ/gmail等邮箱的SMTP账号密码

    也可以用自己的域名邮箱发件,我在这里演示过使用scaleway的邮件推送服务:邮件推送

    image

    主控必须开放相应端口(25/465)才可以连接发件服务器从而正常发件,如果确认cdnfly的SMTP配置没问题但是cdnfly显示无法连接,可以检查主控服务器相应端口是否开放

    2、对接支付

    需要支付功能请参考 充值设置

    3、转发

    转发容易封禁端口,不建议用CDN服务器做转发

    4、面板通过域名访问

    直接套cloudflare,或者套其它CDN,也可以用其他机器反代 但感觉没必要

    image

    5、节点监控和宕机自动切换

    需要配置SMTP节点超时会提示和开启宕机自动切换自动切换

    6、cdnfly设置反代

    这个功能就是指定回源host,实现反代的功能

    比如想给R2套第三方CDN就需要在第三方CDN配置回源host指向R2的绑定域名

    举个指定CDN回源host,实现反代的功能的例子:

    源站 blog.tanglu.me,现在用 blog.tang.lu 反代源站 ,如果直接给blog.tang.lu配置普通CDN CDN设置回源站点是 blog.tanglu.me,CDN解析出blog.tanglu.me的IP 2.2.2.2 然后发送http请求为 ‘’域名blog.tang.lu IP2.2.2.2’,因为源站点没有配置blog.tang.lu这个站点 访问就会报错。但是CDN设置指定回源HOST为blog.tanglu.me,CDN设置回源请求就是 ‘IP是2.2.2.2 回源域名是 blog.tanglu.me’,这样就可以成功访问了

    image

    九、备份和恢复

    cdnfly提供了非常简单的备份和恢复功能

    1、备份

    主控默认会每两小时备份数据库,备份默认保留7天(可以自行修改保留天数),备份文件在 /data/backup/cdn/

    除了备份数据库,还需要备份 /opt/cdnfly/master/conf 文件夹下的 config.py 文件(其实记住AES_KEY和LOG_PWD就行了)

    恢复时只需要用到这两个文件,为了防止主控失联,建议每天上传备份

    image

    每日自动上传备份

    1
    2
    3
    4
    #我这里只是记录一下我的操作 可能不适合你
    crontab -e

    0 1,13 * * * rclone copy /data/backup/cdn/ r2:tanglu/cdnfly/backup/vps1

    2、恢复

    此操作参考cdnfly官网,亲测有效

    旧主控:

    将旧主控 /data/backup/cdn/ 下的某个时间的数据库备份包 如 mysql-20230724-010931.sql.gz 下载到本地,重命名为 cdn.sql.gz

    将旧主控的 /opt/cdnfly/master/conf/config.py 文件也下载下来

    关闭旧主控,这里记得关闭,如果不关闭的话新旧主控同时运行会出现后台任务只创建但不执行,导致新主控无法正常运行

    新主控:

    首先正常执行安装主控命令:

    如果有需要自授权请先搭建云端 修改hosts

    1curl -fsSL https://github.com/Steady-WJ/cdnfly-kaixin/raw/main/master.sh -o master.sh && chmod +x master.sh && ./master.sh –es-dir /home/es

    然后ssh连接新主控,恢复备份和config. py,初始化es

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #进入主控root目录
    cd /root

    #将上节备份的数据库文件 cdn.sql.gz 上传到root目录

    #在root目录下执行以下两条命令 恢复数据库
    curl http://us.centos.bz/cdnfly/restore_master.sh -o restore_master.sh && chmod +x restore_master.sh

    ./restore_master.sh

    #将上节备份的旧主控 /opt/cdnfly/master/conf/config.py 上传新主控相同位置,实现替换掉新主控的config.py文件

    #依次执行以下四条命令初始化elasticsearch
    cd /tmp

    wget us.centos.bz/cdnfly/int_es.sh -O int_es.sh && chmod +x int_es.sh

    ./int_es.sh /home/es

    supervisorctl -c /opt/cdnfly/master/conf/supervisord.conf restart all

    #至此主控设置完成,通过旧主控的账号密码进入可以发现 节点 用户 网站 日志 dns等都恢复了
    #接下来只需要对旧节点更换IP即可

    旧节点

    需要将旧节点的旧主控IP替换为新主控的IP

    1
    2
    3
    4
    5
    6
    #依次在ssh登录每个节点并执行下面命令即可
    #将 your_new_ip 替换为你自己的新主控IP

    wget -qO change_ip.sh https://file.1323123.xyz/cdnfly/backup/shell/change_ip.sh && chmod +x change_ip.sh && bash change_ip.sh your_new_ip

    新节点:

    新节点安装方式和旧节点安装方式一样,只需要将旧主控IP修改为新主控IP 密码修改为旧主控密码即可

    旧主控密码忘记了可以在 /opt/cdnfly/master/conf/config.py 可以找到

    十、杂谈

    ① 你也可以像我博客一样将境外流量接入到cloudflare加速,国内走优化节点,具体教程可以参考 cloudflare配置详解

    ② CC测压 注意不要用源站机器去攻击,可能cdnfly为了回源请求成功 给源站IP加了白名单,我之前遇到这个问题纠结好久还以为是cdnfly规则有问题,最后才知道小丑是我自己…

    ③ 如果源站开启了防御记得将CDN加入白名单

    ④ 主控迁移可以参考官方 FAQ

    ⑤ cdnfly支持添加泛域名,只要待添加域名的DNS服务商支持泛域名解析即可

    ⑥ cdnfly统计流量似乎只计算’CDN节点到用户(出站)’这个过程消耗的流量,用户到CDN节点(入站)、CDN节点到源服务器(出站)、源服务器到CDN节点(入站)均不计入套餐流量。如果服务器为双向计费请注意设置价格
    以下是我的测试记录:

    我先通过套CDN在客户端跑测速(发包收包流量都大),测得CDN入站流量 1362MB,出站总流量 371MB,CDN套餐显示流量消耗 233MB
    我又通过客户端批量发包(发包流量小 收包流量大),测得CDN入站流量 269MB,出站总流量 302MB,CDN套餐显示流量消耗 258MB

    测试数据为:

    image
    image
    image
    image

    ⑦ 斯巴达等服务商提供的centos7系统无法安装,需要dd(新的斯巴达centos7镜像已支持)

    服务器dd centos7的方法可以看我的这篇记录:常见vps dd windows合集

    ⑧ 中文域名直接添加会报错,需要在 punycoder.com 将中文字符转换成 xn–sfj3b** 格式添加

    ⑨ 主控安装好后可以装宝塔吗?主控装完后会占用80 443端口,单纯装个宝塔是只占用8000端口,宝塔再装nginx会占用80端口,很明显你80端口需要给主控,所以你可以改一下宝塔nginx的端口 比如http改为8080 https改为4433,不建议新手尝试

    Error: 添加节点失败:原因没有权限 错误号: node-23 应该是密码错了,请前往主控的 系统管理 > 系统升级 中查看密码

    11、报错 添加节点失败:原因没有权限 node-23 ,是因为节点密码没有换成自己的,去主控的系统升级查看

    12、如果主控面板的任务可以自动添加,但是一直显示 待执行 那应该是你进行了主控迁移,将旧主控关机就好了

  • 在运营中使用MeiliSearch:将你的网站性能提升到一个新的水平

    在运营中使用MeiliSearch:将你的网站性能提升到一个新的水平

    快速介绍

    希望您已经知道美利搜索是一个内置的强大而快速的开源搜索引擎.它旨在为用户提供非常有用且可自定义的搜索体验,包括开箱即用的功能,例如拼写错误容错、过滤和任何类型的项目的同义词。

    运行用于测试目的的 Meilisearch 实例非常容易,可以通过多种方式完成:使用 Docker、Homebrew、Aptitude、二进制文件、简单 ,甚至是源代码。如果您是Meilisearch的新手,我们建议您浏览一下文档。curl

    在您自己的机器上使用Meilisearch进行周末项目很有趣,让我们同意这一点。但是,您可能希望上线并在生产中部署项目,以将其提升到一个新的水平。您需要执行哪些步骤和详细信息才能在生产中部署 Meilisearch 并确保其安全且随时可用

    让您的美利搜索为生产做好准备

    在本教程中,我们将使用运行在 DigitalOcean 上的 Debian 10 服务器。您可以轻松地自己尝试,计划起价为每月 5 美元。如果您想要一些积分来开始运行您的 Meilisearch,并且尚未在 DigitalOcean 上注册,您可以使用此推荐链接.

    先决条件

    • 运行 Debian 10 的最新服务器
    • 用于连接到该计算机的 ssh 密钥对
    提示

    了解如何通过 SSH 连接到您的数字海洋液滴或任何Linux 或 Windows 服务器

    步骤 1:安装美利搜索

    安装和运行美利搜索既简单又直接。为了使本教程尽可能简单,让我们使用一个将执行安装过程的脚本。它会将Meilisearch的二进制文件复制到您的计算机,并使您能够立即使用它。

    通过 SSH 登录到计算机后,请确保系统及其依赖项是最新的,然后再继续安装。

    砰砰��

    # Update the list of available packages and their versions
    apt update
    # Install curl which is required to install Meilisearch in the next step
    apt install curl -y
    # Install Meilisearch latest version from the script
    curl -L https://install.meilisearch.com | sh
    

    本指南详细介绍了不同的 Meilisearch 安装选项。

    有许多不同的方法可以让Meilisearch在您的机器上运行。作为一个开源项目,您始终可以从其源代码编译 Meilisearch 的最新稳定版本,以确保二进制文件以最佳方式使用您的架构。

    您可以随时查看最新的Meilisearch稳定版本,并通过访问以下链接获取您选择的操作系统的Meilisearch:

    最新美利搜索稳定版

    使用以下方法授予二进制执行权限:

    砰砰��

    chmod +x meilisearch
    

    美利搜索终于安装完毕,可以使用了。要使其可从系统中的任何位置访问,请将二进制文件移动到系统二进制文件夹中:

    砰砰��

    # Move the Meilisearch binary to your system binaries
    mv ./meilisearch /usr/local/bin/
    

    步骤 2:创建系统用户

    以 root 身份运行应用程序可能会在系统中引入安全漏洞。为了防止这种情况发生,请创建一个用于运行 Meilisearch 的专用系统用户:

    砰砰��

    useradd -d /var/lib/meilisearch -b /bin/false -m -r meilisearch
    

    步骤 3:创建配置文件

    将默认配置下载到:/etc

    砰砰��

    curl https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml > /etc/meilisearch.toml
    

    更新以下行,以便 Meilisearch 将其数据存储在新创建的用户的主文件夹中:

    .INI

    env = "production"
    master_key = "YOUR_MASTER_KEY_VALUE"
    db_path = "/var/lib/meilisearch/data"
    dump_dir = "/var/lib/meilisearch/dumps"
    snapshot_dir = "/var/lib/meilisearch/snapshots"
    

    最后,创建添加到配置文件中的目录并设置适当的权限:

    砰砰��

    mkdir /var/lib/meilisearch/data /var/lib/meilisearch/dumps /var/lib/meilisearch/snapshots
    chown -R meilisearch:meilisearch /var/lib/meilisearch
    chmod 750 /var/lib/meilisearch
    

    Step 4: Run Meilisearch as a service

    In Linux environments, a is a process that can be launched when the operating system is booting and which will keep running in the background. One of its biggest advantages is making your program available at any moment. Even if some execution problems or crashes occur, the service will be restarted and your program will be run again.service

    NOTE

    If you are new to services and , you can learn more about the basics of Linux services systemdhere.

    In Debian and other Linux distributions, allows you to create and manage your own custom services. In order to make sure that Meilisearch will always respond to your requests, you can build your own service. This way, you will ensure its availability in case of a crash or in case of system reboot. If any of these occur, will automatically restart Meilisearch.systemdsystemd

    4.1. Create a service file

    Service files are text files that tell your operating system how to run your program, and when. They live in the directory, and your system will load them at boot time. In this case, let’s use a very simple service file that will run Meilisearch on port ./etc/systemd/system7700

    To run Meilisearch in a production environment, use the flag. Set a master key of at least 16 bytes using the option. When you launch an instance for the first time, Meilisearch creates two default API keys: Default Search API Key and Default Admin API Key. With the , you can control who can access or create new documents, indexes, or change the configuration.--env--master-keyDefault Admin API Key

    Remember to choose a safe and random key and avoid exposing it in publicly accessible applications. You can change the master key with the following command:

    BASH

    cat << EOF > /etc/systemd/system/meilisearch.service
    [Unit]
    Description=Meilisearch
    After=systemd-user-sessions.service
    
    [Service]
    Type=simple
    WorkingDirectory=/var/lib/meilisearch
    ExecStart=/usr/local/bin/meilisearch --config-file-path /etc/meilisearch.toml
    User=meilisearch
    Group=meilisearch
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    提示

    有关 Meilisearch 安全性和 API 密钥的更多信息,请参阅安全文档。您可以查看我们的快速入门指南,了解有关如何启动和运行Meilisearch的更多信息。

    至于现在,现在还不是将您的美利搜索实例暴露给外部世界的时候。要继续在您自己的环境中安全地运行它,请在 上使其在本地可用。这意味着只允许在您的计算机上运行的程序向您的 Meilisearch 实例发出请求。local

    4.2. 启用和启动服务

    您刚刚构建的服务文件是创建服务所需的全部内容。现在你必须告诉操作系统我们希望它在每次启动时运行Meilisearch。然后,您可以使服务立即运行。通过检查服务确保一切顺利进行。enablestartstatus

    砰砰��

    # Set the service meilisearch
    systemctl enable meilisearch
    
    # Start the meilisearch service
    systemctl start meilisearch
    
    # Verify that the service is actually running
    systemctl status meilisearch
    

    砰砰��

    -# --- Expected output ---
    ● meilisearch.service - MeiliSearch
       Loaded: loaded (/etc/systemd/system/meilisearch.service; enabled; vendor preset: enabled)
       Active: active (running) since Fri 2020-04-10 14:27:49 UTC; 1min 8s ago
     Main PID: 14960 (meilisearch)
    

    至此,美利搜索已安装并正在运行。它可以防止最终崩溃、系统重启以及运行时可能发现的大多数问题。但它仍然隐藏并受到保护,位于机器的墙壁(或防火墙)内,无法从外部世界访问。如果您对 Meilisearch 执行的所有请求都是由位于同一台机器上的另一个应用程序完成的,则可以在此处停止。

    但你可能想向外界开放你的美利搜索,目前,它是孤立的。让我们以安全的方式解决这个问题。

    第 5 步:保护并完成设置

    是时候安全地将您的全新 Meilisearch 提供给外界请求了。为此,您将使用 Web 上可用的两种主要技术:反向代理和 SSL/TLS。

    5.1. 创建反向代理恩金克斯

    反向代理基本上是一个应用程序,它将处理外部世界和内部应用程序之间的每次通信。Nginx将接收外部HTTP请求并将其重定向到Meilisearch。当Meilisearch完成其出色的工作时,它会将其响应传达给Nginx,然后将后者传输给最初发送请求的用户。这是通过添加强大、安全和快速的看门人(例如 Nginx)来隔离和保护任何应用程序的常用方法,Nginx 是在线最安全、最有效的工具之一,当然还有开源!

    提示

    反向代理在安全性、性能、可伸缩性和日志记录问题方面非常有用。如果您不熟悉反向代理,您可能会喜欢这篇文章,解释为什么和如何反向代理.

    将Nginx配置为代理服务器非常简单。首先,将其安装在您的计算机上。

    砰砰��

    # Install Nginx on Debian
    apt-get install nginx -y
    

    首先,删除默认配置文件作为HTTP的默认端口很重要,默认情况下,Nginx使用。因此,尝试将其用于Meilisearch会产生冲突。将默认文件替换为您自己的配置文件。你也可以通过在 Nginx 配置文件中指定 Meilisearch 监听另一个端口,但我们在本教程中不会介绍此选项。port 80

    砰砰��

    # Delete the default configuration file for Nginx
    rm -f /etc/nginx/sites-enabled/default
    
    # Add your configuration file specifying the Reverse Proxy settings
    cat << EOF > /etc/nginx/sites-enabled/meilisearch
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;
        location / {
            proxy_pass  http://localhost:7700;
        }
    }
    EOF
    

    Finally, enable and start the Nginx service again to make sure it is still available.

    BASH

    # Reload the operating system daemons / services
    systemctl daemon-reload
    
    # Enable and start Nginx service
    systemctl enable nginx
    systemctl restart nginx
    

    Meilisearch现已启动,部署在生产环境中,使用安全的API密钥,并由反向代理Nginx提供服务。您现在应该能够从外部世界向服务器发送请求。打开您的网络浏览器并访问:(http://your-ip-address).IP 地址与您在步骤 1 中用于通过 SSH 连接到计算机的 IP 地址相同。

    注意

    如果您想了解有关使用 Nginx 作为反向代理的更多信息,请参阅此专用文档.

    唯一剩下的问题是Meilisearch通过HTTP处理请求,没有任何额外的安全性。通过HTTP传输的内容很容易被攻击者读取或修改,并且有人可以完全或部分访问您的数据。为了防止这种情况发生,使用 HTTPS 非常重要,这将使您能够使用 SSL/TLS 证书并安全地传输数据。

    5.2. 为您的美利搜索设置 SSL/TLS

    SSL将允许用户或客户端与Meilisearch建立经过身份验证的连接。通过这种方式,用户可以在发送敏感数据或向其发出任何请求之前验证服务器的身份。然后,数据以只有Meilisearch服务器才能解密的加密方式发送,为您提供快速,可靠和自动的安全层。

    在大多数情况下,启用 SSL 时,您可能希望使用自己的域名(或子域)。您需要遵循的第一步是注册自己的域名并更改 DNS 记录。要使您的域名指向新安装的Meilisearch服务器,您只需添加一个指向用于连接到您自己的服务器的IP地址的指向即可。此过程简单快捷,但可能因每个域名提供商而异。因此,我们不会在本文中介绍该过程。A record

    提示

    当您注册域名并添加 时,您应该能够使用该域名直接自动请求 Meilisearch。 为了说明这一点,如果您已经注册了域名,则请求索引将在A recordexample.comhttp://example.com/indexes

    设置域名后,您就可以配置 SSL/TLS 并使用 HTTPS。您有两种不同的选择来实现此目标。第一个是使用塞特博特,一个惊人的,免费的,非常易于使用的工具。如果您已经为您的域名颁发了 SSL 证书,则第二个选项涵盖了您需要遵循的步骤。然后,您就可以在生产中安全地使用美利搜索了!Certificate Authority or CA

    5.2.1. 选项 A:认证机器人

    在Linux服务器中使用certbot非常简单。此工具将为您的域名生成免费的SSL / TLS证书,并自动处理其在服务器上的安装。certbot 文档包含许多操作系统和服务器的详细说明,但我们将按照以下说明进行操作Certbot on Debian with Nginx.

    首先,在您的系统上安装软件包:

    砰砰��

    sudo apt-get install certbot python-certbot-nginx -y
    

    让我们运行 Certbot 脚本以指导完成安装过程:

    砰砰��

    certbot --nginx
    

    输入您的电子邮件地址,同意条款和条件,然后输入您的域名。然后,系统将提示您以下选项:

    砰砰��

    Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1: No redirect - Make no further changes to the webserver configuration.
    2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
    new sites, or if you're confident your site works on HTTPS. You can undo this
    change by editing your web server's configuration.
    

    我们建议您选择选项 2,将 HTTP 重定向到 HTTPS 并始终使用安全连接。您应该能够使用 SSL 请求您的域名,如 或 .https://example.comhttps://example.com/indexes

    5.2.2. 选项 B:自定义 SSL/TLS 证书

    当 为您颁发 SSL 证书时,您至少会收到两个包含加密密钥的文件:Certificate Authority

    • 您的证书(通常命名或your_domain_name.pemexample.pem)
    • 您的密钥(通常命名为 或your_domain_name.keyexample.key)

    example.pem并将在以下示例中使用。请确保替换为您自己的证书文件的名称。example.keyexample

    您需要做的就是将证书文件存储在安全位置,并使用适当的文件系统安全权限。然后,在 Nginx 配置中设置证书的位置。还强烈建议将所有 HTTP 请求重定向到 HTTPS(端口 80 到 443)。

    首先,让我们将证书文件复制到其常规目录中,以便服务器可以找到它们:

    砰砰��

    # Create a directory /etc/ssl/example to store the certificate files
    mkdir -p /etc/ssl/example
    
    # Move your files to /etc/ssl/example. We will suppose that your
    # files are called example.pem and example.key
    
    mv path-to-your-files/example.pem /etc/ssl/example/
    mv path-to-your-files/example.key /etc/ssl/example/
    

    最后,我们创建一个新的 Nginx 配置文件,并重新启动守护进程和 Nginx 服务

    请记住将两个字段中的域名替换为您自己的域名example.comserver_name

    砰砰��

    
    # Replace example.com in both `server_name` fields with your own domain name
    
    cat << EOF > /etc/nginx/sites-enabled/meilisearch
    server {
          listen 80 default_server;
          listen [::]:80 default_server;
    
          server_name example.com;
    
          return 301 https://\$server_name\$request_uri;
    }
    server {
        server_name example.com;
    
        location / {
            proxy_pass  http://localhost:7700;
        }
    
        listen [::]:443 ssl ipv6only=on;
        listen 443 ssl;
    
        access_log /var/log/nginx/nginx.vhost.access.log;
        error_log /var/log/nginx/nginx.vhost.error.log;
        ssl_certificate /etc/ssl/example/example.pem;
        ssl_certificate_key /etc/ssl/example/example.key;
    }
    EOF
    
    systemctl restart nginx
    

    您的SSL证书应该可以工作,Nginx应该能够找到它们。现在,每个请求都将重定向到http://example.comhttps://example.com

    结论

    您已按照主要步骤提供安全稳定的服务。您的 Meilisearch 实例应在安全的环境中启动并运行,并且即使在出现最常见问题时也能随时可用。此外,它受具有您自己的域名和 API 密钥的反向代理保护,因此您的数据和配置只能由受信任的客户端访问。与服务器的通信现已加密。此外,在以快速和自动的方式发送敏感数据之前,每次都会验证其身份。

    您现在可以开始使用生产就绪的 Meilisearch 实例了!

  • 2023年如何搭建干净的DNS服务

    因为一些众所周知的原因, 我们可以尝试自己搭建干净/安全的DNS服务,一切都只要掌握一些简单知识/技巧.

    ## 懒人提示

    对于绝大多数不愿意折腾的人而言, 223.5.5.5作为dns服务器就够了

    ## 搭建原理

    首先呢, 地球上除了少数地方以外, Google家的8.8.8.8的DNS是非常理想的选择, 我们要做的,就是自建DNS服务, 通过DoH转发Google的DNS服务, 但是呢, 直接转发肯定是不行的,我们可以通过cf的workers无服务函数进行中转, 中转的时候顺便把自己的IP地址打码后传给Google DNS, 这样就能获得一个支持EDNS的DNS服务了(如果不传EDNS IP的话, 很多域名解析出来就是海外链路了, 速度必然受到影响).

    ## 开始实操

    整个过程总共分为六步, 一切顺利的话, 30分钟内就能完成搭建:

    1. 使用Technitium DnsServer自建一台DNS服务器
    2. 建立一个cf的Workers(其它厂商无服务函数也可以), 具体代码见附录, 这里要注意把EDNS的IP设置成你当地的IP(记得打码噢)
    3. 因为Workers的顶级域名被XX了, 这里需要在触发器自定义域添加一个自己的二级域名, 比如dns.demo.com
    4. 在Technitium DnsServer里设置Forwarder, Forwarder Protocol选DNS-over-HTTPS (JSON), 转发地址就是https://dns.demo.com/, 保存设置. (这里需要注意的是, Technitium DnsServer从v11版本开始去除了DNS-over-HTTPS (JSON)这个协议, 所以目前需要把版本锁定至v10)
    5. (可选)在DnsServer的日志里检查Forwarder转发是否成功
    6. (可选) DnsServer开启DNS-over-TLS, 需要自行准备ssl证书,对外开放一个public.demo.com:853服务, 这样就可以将其在安卓手机里设置为”私人DNS”了

    ## 附录

    addEventListener('fetch', function(event) {
    
        const { request } = event
    
        const response = handleRequest(request)
    
        event.respondWith(response)
    
    })
    
    const doh = 'https://dns.google/dns-query'
    
    const dohjson = 'https://dns.google/resolve'
    
    const contype = 'application/dns-message'
    
    const jstontype = 'application/dns-json'
    
    async
    function handleRequest(request) {
    
        const { method, headers, url } = request
    
        const searchParams = new
    URL(url).searchParams
    
        if (method == 'GET' && searchParams.has('dns')) {
    
            return
    await fetch(doh + '?dns=' + searchParams.get('dns')+'&edns_client_subnet=6.6.6.0/24', {
    
                method: 'GET',
    
                headers: {
    
                    'Accept': contype,
    
                }
    
            });
    
        } else
    if (method == 'POST' && headers.get('content-type')==contype) {
    
            return
    await fetch(doh, {
    
                method: 'POST',
    
                headers: {
    
                    'Accept': contype,
    
                    'Content-Type': contype,
    
                },
    
                body: await request.arrayBuffer()
    
            });
    
        } else
    if (method== 'GET' && headers.get('Accept')==jstontype) {
    
            const search = new
    URL(url).search
    
            const result = await fetch(dohjson + search + '&edns_client_subnet=6.6.6.0/24', {
    
                method: 'GET',
    
                headers: {
    
                    'Accept': jstontype,
    
                }
    
            });
    
            const secondCheck = await result.clone().json();
    
            if (secondCheck['Status'] == 0) {
    
                return result
    
            } else {
    
                // Some request name can't work with edns
    
                // "Status": 5 /* REFUSED */,
    
                return
    await fetch(dohjson + search, {
    
                    method: 'GET',
    
                    headers: {
    
                        'Accept': jstontype,
    
                    }
    
                });
    
            }
    
        } else {
    
            return
    new
    Response("", {status: 404})
    
        }
    
    }

  • 41合1的一键DD脚本 最好用的DD脚本 一键DD Linux/Windows

    41合1的一键DD脚本 最好用的DD脚本 一键DD Linux/Windows

    相关链接

    作者网站:https://git.beta.gs/

    GitHub:https://github.com/fcurrk/reinstall

    使用说明

    安装重装系统的前提组件

    Debian/Ubuntu

    apt-get install -y xz-utils openssl gawk file wget screen && screen -S os

    RedHat/CentOS

    yum install -y xz openssl gawk file glibc-common wget screen && screen -S os

    如果出现异常,请刷新Mirrors缓存或更换镜像源。

    RedHat/CentOS

    yum makecache && yum update -y

    Debian/Ubuntu

    apt update -y && apt dist-upgrade -y

    使用

    wget --no-check-certificate -O NewReinstall.sh https://git.io/newbetags && chmod a+x NewReinstall.sh && bash NewReinstall.sh

    如为CN主机(部分主机商已不能使用),可能出现报错或不能下载脚本的问题,可执行以下命令开始安装.

    wget --no-check-certificate -O NewReinstall.sh https://cdn.jsdelivr.net/gh/fcurrk/reinstall@master/NewReinstall.sh && chmod a+x NewReinstall.sh && bash NewReinstall.sh

    输入Y确认DD后主机自动获取IP,N则自行设置IP 输入N后会自动检测出主机现用IP,如果正确可以按Y确认使用,如不正确则按N自行按正确的输入。

    41合1的系统一键DD选择界面,输入99则使用自定义镜像。 以上系统密码不为默认密码的均为网络收集,如有疑虑使用自己的自定义镜像。

    41合一系统密码

    1、CentOS 7.7 (已关闭防火墙及SELinux,默认密码Pwd@CentOS)
    2、CentOS 7 (默认密码cxthhhhh.com)
    3、CentOS 7 (支持ARM64、UEFI,默认密码cxthhhhh.com)
    4、CentOS 8 (默认密码cxthhhhh.com)
    5、Rocky 8 (默认密码cxthhhhh.com)
    6、Rocky 8 (支持UEFI,默认密码cxthhhhh.com)
    7、Rocky 8 (支持ARM64、UEFI,默认密码cxthhhhh.com)
    8、CentOS 9 (默认密码cxthhhhh.com)
    9、CentOS 6 (官方源原版,默认密码Minijer.com)
    10、Debian 11 (官方源原版,默认密码Minijer.com)
    11、Debian 10 (官方源原版,默认密码Minijer.com)
    12、Debian 9 (官方源原版,默认密码Minijer.com)
    13、Debian 8 (官方源原版,默认密码Minijer.com)
    14、Ubuntu 20.04 (官方源原版,默认密码Minijer.com)
    15、Ubuntu 18.04 (官方源原版,默认密码Minijer.com)
    16、Ubuntu 16.04 (官方源原版,默认密码Minijer.com)
    17、Windows Server 2022 (默认密码cxthhhhh.com)
    18、Windows Server 2022 (支持UEFI,默认密码cxthhhhh.com)
    19、Windows Server 2019 (默认密码cxthhhhh.com)
    20、Windows Server 2016 (默认密码cxthhhhh.com)
    21、Windows Server 2012 (默认密码cxthhhhh.com)
    22、Windows Server 2008 (默认密码cxthhhhh.com)
    23、Windows Server 2003 (默认密码cxthhhhh.com)
    24、Windows 10 LTSC (默认密码Teddysun.com)
    25、Windows 10 LTSC (支持UEFI,默认密码Teddysun.com)
    26、Windows 7 x86 Lite (默认密码nat.ee)
    27、Windows 7 x86 Lite (阿里云专用,默认密码nat.ee)
    28、Windows 7 x64 Lite (默认密码nat.ee)
    29、Windows 7 x64 Lite (支持UEFI,默认密码nat.ee)
    30、Windows 10 LTSC Lite (默认密码nat.ee)
    31、Windows 10 LTSC Lite (阿里云专用,默认密码nat.ee)
    32、Windows 10 LTSC Lite (支持UEFI,默认密码nat.ee)
    33、Windows Server 2003 Lite (C盘默认10G,默认密码WinSrv2003x86-Chinese)
    34、Windows Server 2008 Lite (默认密码nat.ee)
    35、Windows Server 2008 Lite (支持UEFI,默认密码nat.ee)
    36、Windows Server 2012 Lite (默认密码nat.ee)
    37、Windows Server 2012 Lite (支持UEFI,默认密码nat.ee)
    38、Windows Server 2016 Lite (默认密码nat.ee)
    39、Windows Server 2016 Lite (支持UEFI,默认密码nat.ee)
    40、Windows Server 2022 Lite (默认密码nat.ee)
    41、Windows Server 2022 Lite (支持UEFI,默认密码nat.ee)
    99、自定义镜像

    注意事项

    系统名称后带Lite的均为精简版,没有的是完整版.
    [X64-Legacy-cxthhhhh]代表系统为AMD64位,支持传统BIOS启动,cxthhhhh定制的系统镜像.
    ARM64代表系统支持ARM64位
    UEFI代表系统支持最新的UEFI启动,如甲骨文全部都是这种
    aliyun代表阿里云专用系统镜像
    cxthhhhh、teddysun、nat.ee均为三位制作系统镜像的大佬代称
    系统密码会在选择相应序号后提示,请注意记录。
    经测试在谷歌云原版系统基础上DD会出现自动获取的子网掩码为255.255.255.255,如出现这种情况需要手工输入改正为正确的如255.255.255.0,否则会安装完成主机可能会离线。

    阿里云因使用了特殊的驱动,DD安装Windows系统选择阿里云专用版。

    Oracle Cloud(甲骨文云)可选择支持UEFI的镜像,注意基础系统最好选择Ubuntu,如原系统是CentOS可能无法成功,注意如是ARM机器注意选择同时支持ARM64和UEFI的镜像。

    9-16项安装原版系统,可自定义密码,密码要求8-16位,以英文字母或数字开头,可以是大小写英文字母、数字及7个特殊字符.!$@#&%的任意组合。

    报错Error! grub.cfg.解决办法

    mkdir /boot/grub2 && grub-mkconfig -o /boot/grub2/grub.cfg

  • 使用cloudflare tunnel加速海外SSH连接 完全免费又好用

    使用cloudflare tunnel加速海外SSH连接 完全免费又好用

    大家应该都有买过欧洲的VPS,到中国的网络连接非常不友好,延迟到三四百也是常有的事,以至于SSH连接输入命令都存在极大的延迟。而流量转发的价格一般都很贵,甚至到欧洲的流量转发都很少见,这里就推荐cloudflare tunnel来加速SSH连接。

    cloudflare是做CDN为主,其ZeroTrust(零信任)也是近几年开始做的业务,但是依旧保持了其免费的优点,且cloudflare在海外拥有海量的机房,不管是哪个地区都能得到非常不错的加速。

    cloudflare tunnel基础的使用方式就类似于VPN,需要服务器和客户端都安装client去接入,然后其服务器负责转发,但是cloudflare为中国提供服务的默认都是美国的服务器,这里方式去中转速度并不理想,并且国内很有遇到出现无法连接的问题。

    这里就用到了cloudflare提供的application功能,将会创建一个网页ssh客户端用于连接,而网页形式大家都有很好的加速办法,到cloudflare的网络也是极快的,那么这种方式就可以很有效的实现SSH加速。

    开通Zero Trust

    没有使用过cloudflare zero trust的用户需要先去开通,过程不赘述,需要绑定外币卡,选择免费套餐即可

    https://www.cloudflare.com/zh-cn/zero-trust/

    创建tunnel

    在zero trust的后台点击Access – Tunnels – Create a Tunnel

    随便起个名,然后根据其提示在VPS上安装客户端,常用系统均有一键脚本,也可以使用docker安装,也不过多赘述了

    然后在Public Hostname中添加,subdomain子域名随便起,domain选择绑定在cloudflare中的域名,下面service要选择SSH,URL填写SSH的IP:PORT

    创建Application

    在zero trust的后台点击Access – Applications – Add an application

    选择Self-Hosted

    Configure app

    Application name随便起名,Session Duration是会话超时时间,也可以随意设置,下面的域名要与刚才Tunnel Public Hostname一致,下面配置均默认直接NEXT

    2023-09-17T08:26:03.png

    Add Policy

    添加访问控制策略Policy name任意,Action选择Allow,Configure rules选择Emails填入自己账号的邮箱,别把自己拦在外面了,下面配置默认直接NEXT

    2023-09-17T08:31:35.png

    Setup

    拉到最下面Additional settings,Browser rendering选择SSH,可以看到他还支持VNC,说明linux的桌面连接也支持这种方式进行加速。甚至windows也可以安装vnc服务器来提供远程,实现用cloudlfare进行加速。

    效果测试

    到这里就已经完成所有配置了,网页打开之前配置的域名就跳转到cloudflare zerotrust的登录界面了,输入邮箱接验证码登录
    然后就可以使用密码或者证书登录到ssh了

    2023-09-17T08:36:38.png
    2023-09-17T08:36:57.png

    实测操作延迟下降了很多,已经比较流畅了,效果非常不错,而且是完全免费的

  • route53 同时使用cname和ip解析的方法

    route53 同时使用cname和ip解析的方法

    无错源码使用了Aws的cloudfront作为前端,来加速国内用户的访问速度。

    使用cft的话如果分区域解析,国内使用cname,国外使用原始ip这样行不行呢。Route默认是不允许这样的操作的。

    但我们可以通过一个骚操作来实现。

    在route53里边新建一个二级域名作为cname域名,这个域名指向ip,然后在cname的geo设置国外,给中国设置为cft的别名,在默认里边使用我们刚才新建的二级域名,这样就可以了。

  • 一键设置IIS只允许cloudflare访问

    使用IIS套上cloudflare后,很多人不知道禁止非cloudflare ip访问,今天给个一键代码,在ps里边执行即可。

    # Cloudflare IP 地址列表
    $cloudflareIPs = @(
        "173.245.48.0/20",
        "103.21.244.0/22",
        "103.22.200.0/22",
        "103.31.4.0/22",
        "141.101.64.0/18",
        "108.162.192.0/18",
        "190.93.240.0/20",
        "188.114.96.0/20",
        "197.234.240.0/22",
        "198.41.128.0/17",
        "162.158.0.0/15",
        "104.16.0.0/13",
        "104.24.0.0/14",
        "172.64.0.0/13",
        "131.0.72.0/22"
    )
    
    # 获取所有 IIS 网站的配置
    $sites = Get-Website
    
    # 循环遍历所有 IIS 网站并添加 Cloudflare IP 地址到允许列表
    foreach ($site in $sites) {
        $siteName = $site.Name
        $siteConfig = Get-WebConfiguration -PSPath "IIS:\Sites\$siteName"
        
        foreach ($ipRange in $cloudflareIPs) {
            $ruleName = "AllowCloudflareIP_$([System.Guid]::NewGuid())"
            $addRuleScript = @"
    ipconfig /flushdns
    New-WebConfigurationProperty -PSPath 'IIS:\Sites\$siteName' -Filter "system.webServer/security/ipSecurity" -Name "." -Value @{
        "ipAddress" = "$ipRange";
        "subnetMask" = "255.255.255.255";
        "allowed" = $true;
        "domainName" = '';
        "byPass" = $false;
        "matchOnly" = $true;
        "negate" = $false;
        "ruleName" = "$ruleName";
        "enableReverseDns" = $false;
    }
    "@
            Invoke-Expression $addRuleScript
        }
        
        # 应用更改
        $siteConfig | Set-WebConfiguration -Verbose
    }
    
  • 小白闯江湖之常用一键脚本

    小白闯江湖之常用一键脚本

    网络测试类脚本
    =================
    三网测速
    —————–

    bash <(curl -Lso- https://www.infski.com/files/superspeed.sh)


    用途:三网多线程测速

    Hyperspeed
    —————–

    bash <(curl -Lso- https://bench.im/hyperspeed)


    用途:测试三网单线程测速,比方说油管速度就是单线程

    硬件测试类脚本
    =================

    geekbench和yabs
    —————–
    geekbench5


    curl -sL yabs.sh|bash -s -- -if -fdi5


    yabs


    curl -sL yabs.sh | bash

    用途:geekbench5只测试小鸡的cpu的geekbench5的跑分,去掉了网络和硬盘测试
    现在的yabs默认是6,yabs同时还提供小鸡的硬盘和网络测试,具体详细的参数看作者github的readme

    bench.sh
    —————–


    wget -qO- bench.sh | bash


    用途:秋水大佬的脚本,可以显示linux小鸡的详细信息,以及硬盘和网络的测试
    如果要测试小鸡国外的速度的话,用这个

    硬盘测试
    —————–


    dd bs=64k count=4k if=/dev/zero of=test oflag=dsync


    用途:用dd命令测试小鸡的硬盘性能

    超售检测
    —————–

    curl https://raw.githubusercontent.com/uselibrary/memoryCheck/main/memoryCheck.sh | bash
    wget --no-check-certificate -O memoryCheck.sh https://raw.githubusercontent.com/uselibrary/memoryCheck/main/memoryCheck.sh && chmod +x memoryCheck.sh && bash memoryCheck.sh


    用途:检测小鸡是否超售,不过其实自己买小鸡那价格超没超售,都应该心知肚明了
    有钱还是上杜甫

    ip检测
    =================

    流媒体检测
    —————–


    bash <(curl -L -s https://raw.githubusercontent.com/lmc999/RegionRestrictionCheck/main/check.sh)


    用途:测试小鸡ip的流媒体以及chatgpt解锁,同时这个脚本在安卓的temux,ios上ish,mac的终端上也是能用的,可以用来判断机场的节点是否支持解锁
    windows的话可以用linux子系统

    四网回程测试
    —————–

    wget -O jcnf.sh https://raw.githubusercontent.com/Netflixxp/jcnfbesttrace/main/jcnf.sh && chmod +x jcnf.sh && clear &&./jcnf.sh

    用途:测试小鸡的四网回程路由,三大运营商和教育网的路由

    综合脚本
    =================

    融合怪

    bash <(wget -qO- --no-check-certificate https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh)

    lemonbench

    wget -qO- https://raw.githubusercontent.com/LemonBench/LemonBench/main/LemonBench.sh | bash -s -- --fast

    用途:上面两个都是综合测试小鸡的各项性能,怎么用看作者的readme

    魔法类
    =================

    xui
    —————–

    bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install.sh)

    v2ray-agent
    —————–

    wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh" && chmod 700 /root/install.sh && /root/install.sh

    warp
    —————–
    wgcf

    wget -N https://raw.githubusercontent.com/fscarmen/warp/main/menu.sh && bash menu.sh [option] [lisence]

    Warp-go

    wget -N https://raw.githubusercontent.com/fscarmen/warp/main/warp-go.sh && bash warp-go.sh