作者: root

  • asme.sh with DNS Alias Mode

    由于 Godaddy 停止了免费的支持ACME SSL 证书签发(DNS 模式),

    不得不改用 DNS Alias 模式, 让阿里云 为Godaddy 管理的域名,代理合作签发SSL证书

    默认的机构,ZEROSSL,一个初创企业,早已超负荷运转,多数时间已经无法正常签发了。改用Google的证书机构,相对门槛较高,需要有Google帐户,而且国内访问受限,所以签发都一直顺畅。

    #!/bin/bash
    #
    #  Godaddy Domain:
    DOMAIN=zhenglei.net
    DNSAPI=dns_gd
    #  Aliyun Domain as Proxy:
    DOMAIN_PROXY=778065.xyz
    DNSAPI_PROXY=dns_ali
    #  Setup CNAME record mapping of _acme-challenge  between ${DOMAIN} and ${DOMAIN_PROXY}
    # _acme-challenge.zhenglei.net       CNAME==>   _acme-challenge.778065.xyz
    # _acme-challenge.blog.zhenglei.net  CNAME==>   _acme-challenge.778065.xyz
    # ...
    # nslookup -type=CNAME _acme-challenge.zhenglei.net
    # nslookup -type=CNAME _acme-challenge.blog.zhenglei.net
    # Aliyun key & secret to generate acme cert
    # dnsapi=dns_ali
    Ali_Key="Your Aliyun Key"
    Ali_Secret="Your Aliyun Secret"
    export Ali_Key=${Ali_Key}
    export Ali_Secret=${Ali_Secret}
    # Godaddy key & secret to generate acme cert
    # dnsapi=dns_gd
    GD_Key="Your Godaddy Key"
    GD_Secret="Your Godaddy Secret"
    #
    #  Using alias dns mode of acme.sh
    M=" --challenge-alias ${DOMAIN_PROXY} "
    N=" --challenge-alias no "
    #
    #
    # IP PROTOCOL
    IP=--listen-v6
    #
    #
    #
    DNSSLEEP=40
    # Init
    source  /root/env.sh
    ACME_SH=/root/.acme.sh/acme.sh
    #
    #
    DSUB=""
    DSUB+=" -d ${DOMAIN} ${M}"
    DSUB+=" -d ${DOMAIN_PROXY} ${N}"
    DSUB+=" -d blog.${DOMAIN} ${M}"
    DSUB+=" -d blog.${DOMAIN_PROXY} ${N}"
    DSUB+=" -d blog1.${DOMAIN} ${M} "
    DSUB+=" -d blog2.${DOMAIN} ${M} "
    DSUB+=" -d gallery.${DOMAIN} ${M} "
    DSUB+=" -d gallery.${DOMAIN_PROXY} ${N} "
    DSUB+=" -d gallery1.${DOMAIN} ${M} "
    DSUB+=" -d gallery2.${DOMAIN} ${M} "
    DSUB+=" -d music.${DOMAIN} ${M} "
    DSUB+=" -d music.${DOMAIN_PROXY} ${N} "
    DSUB+=" -d music1.${DOMAIN} ${M} "
    DSUB+=" -d music2.${DOMAIN} ${M} "
    DSUB+=" -d mpd.${DOMAIN} ${M} "
    DSUB+=" -d mpd.${DOMAIN_PROXY} ${N} "
    DSUB+=" -d mympd.${DOMAIN} ${M} "
    DSUB+=" -d mympd.${DOMAIN_PROXY} ${N} "
    DSUB+=" -d stream.${DOMAIN} ${M} "
    DSUB+=" -d stream.${DOMAIN_PROXY} ${N} "
    DSUB+=" -d video.${DOMAIN} ${M} "
    DSUB+=" -d video.${DOMAIN_PROXY} ${N} "
    DSUB+=" -d *.${DOMAIN} ${M} "
    DSUB+=" -d *.${DOMAIN_PROXY} ${N} "
    P=""
    P+=" --dns ${DNSAPI_PROXY} "
    P+=" --dnssleep ${DNSSLEEP} "
    P+=" -k ec-384 "
    P+=" --force "#  Issue:
    echo "${ACME_SH} --issue  ${P} ${DSUB}"
          ${ACME_SH} --issue  ${P} ${DSUB}
    # Install
    INST_PATH=/opt/local/cert/acme_zhenglei.net
    INST_CER=${INST_PATH}/fullchain.cer
    INST_KEY=${INST_PATH}/zhenglei.net.key
    # P+=" --debug "
    # P+=" --log "
    #  Issue:
    echo "${ACME_SH} --issue  ${P} ${DSUB}"
          ${ACME_SH} --issue  ${P} ${DSUB}
    # Install
    INST_PATH=/opt/local/cert/acme_zhenglei.net
    INST_CER=${INST_PATH}/fullchain.cer
    INST_KEY=${INST_PATH}/zhenglei.net.key
    OPENRESTY=/opt/local/etc/init.d/openresty
    ${ACME_SH} --install-cert -d ${DOMAIN} \
               --key-file ${INST_KEY} \
               --fullchain-file ${INST_CER} \
               --reloadcmd "${OPENRESTY} stop ; ${OPENRESTY} start"

    https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode

  • DJI MIC2

    DJI MIC2 发射器,支持通过蓝牙与手机直连。

    当然也支持与Action 5/4和Pocket3 蓝牙直连。

    默认的录音监听电平为50%,无法在手机上修改录音监听电平值,不过已录制的视频文件可以在手机上进行调整。

    Action5,或其它DJI生态链的设备,可以修改MIC2发射器的录音监听电平。

    DJI Mic3的发射器,当然更好,但价格更贵了,而Mic2到Mic3的主要升级,主要是针对对多设备的支持来展开,对于手机蓝牙直连而言,没有意义。

    为何选用大疆的无线麦克?

    首先是,现在的手机,在影像上投入较大,有了比较明显的进步,音频方面就是短板了,播放可用蓝牙耳机,而录制的麦克风,都是通过USB OTG麦克接收器,再无线连接麦克发射器。

    录音需要有精准的时间同步,高速USB总线是个合理的选择,但如果使用了摄像手柄,已经占用了USB口,蓝牙直连,是外接麦克风的唯一选择了,尽管不是最优的选择。

    好像只有大疆的MIC2,MIC3支持蓝牙直连,而且是手机原生摄像直连,早些时间购置的国内小品牌麦克风不支持,只好放弃了。

    大品牌溢价,总有其价值。支持蓝牙直连,考验着厂家对android底层,或者LINUX驱动的功力

  • Jetpack 插件

    WordPress 的Jetpack 插件,是由automattic inc.开发的一个插件,automattic inc. 是美国旧金山的软件公司,wordpress.com的母公司。

    Jetpack 的mobile app可以通过Google Play 下载,如同wordpress mobile apo一样,不对中国开放。

  • wordpress mobile app

    因为这个app(v26.2)没有内置acme 的中间证书,所以服务器端需要配置成使用fullchain.cer,

    否则mobile app 的url测试失败。

  • Piwigo 站点维护

    有两个piwigo插件可用户维护工作:

    Check Files Integrity

    检查系统文件:插件和主题的完整性

    可据此,安装必须的插件或主题

    Check Uploads

    检查上传用户文件,与数据库是否保持一致

    可删除问题文件

  • ESXi6 虚拟机自动分配IPV6地址

    先决条件:

    网络IO直通

    其他配置:

    无特殊

    Openwrt 设置Static Leases

    IPv4,MAC,DUID(可选),IPV6 suffix

    客户机:

    cat /etc/network/interfaces:

    # The primary network interface
    allow-hotplug ens192
    iface ens192 inet dhcp
    iface ens192 inet6 dhcp
            accept_ra 2
            request_prefix 1
  • ESXi6 虚拟机 IO 直通

    客户端OS: Debian12 AMD64

    网络适配器: VMXNET 3

    虚拟机分配内存: 8G

    内存资源分配: 全部锁定

    Note:

    E1000 不支持直通

    虚拟机内存太小(4G),不支持直通,出现错误:已连接网络的状况阻止directpath i/o

  • 刚知道,VMWARE 已经Game Over了

    昨日,打算修改一个ESXi虚拟机的配置,WEB CLIENT下没找到修改的地方,就想启动Windows 客户端来试试,结果发现,已经无法下载客户端了。

    Google搜寻一下,才知道,VMware已于去年(2024年)被Broadcom博通收购了,呜呼哀哉,世界变化真快,前几年,VMware还雄心勃勃,想在私有云领域大展宏图呢!

    被博通收购,在我的脑海中,直观上就是完蛋了,博通只是一家芯片公司,而且主要是外设芯片,不是整机系统,缺乏软件基因。

    在路由器领域,相比于高通,MTK,对OPENWRT的支持最糟糕,所以,采用博通芯片的,全部避开。

    ESXi和VMware虚拟软件,是购置HP 的Gen8 MicroServer 时,随机赠送的,后来,就懒得改用开源的Docker或K8了,查看一下,发觉快满十年了。

    作为一个纯芯片公司,只有快速,当下的交易,没有持续服务的理念。

    4万台服务器要瘫?Tesco为啥这时候硬刚博通,VMware到底是啥,为啥能让超市急红眼?纯真世界存在吗

  • acme.sh with Google SSL certificate

    Acme.sh issue SSL certificate with Google

    Install acme.sh

        sudo su
        source ~/env.sh
        env|grep proxy|grep http
    
        curl https://get.acme.sh|sh
        exit
        sudo su
        source ~/env.sh
        source /root/.acme.sh/acme.sh.env
        acme.sh --set-default-ca --server google

    Generae EAB:

    # Must install Google Cloud SDK first
    gcloud publicca external-account-keys create

    Register Account:

    acme.sh --register-account -m admin@zhenglei.net --server google --eab-kid "your KeyId" --eab-hmac-key "your b64MacKey"

    Issue:

    sudo su
       
       # Stop services listen 80/443 port
       #/opt/local/etc/init.d/openresty stop
      
       source ~/env.sh
       source /root/.acme.sh/acme.sh.env
    
       # Only have IP v6 public Address
       acme.sh  --issue  -d blog.zhenglei.net  --standalone --listen-v6

  • Install Google Cloud SDK on Debian system

    Install google-cloud-cli

    sudo su
    
    source ~/proxy.sh
    env|grep proxy|grep http
    
    apt-get update
    apt-get install apt-transport-https ca-certificates gnupg  curl socat
    
    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
    
    echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
    
    apt-get update
    apt install google-cloud-cli
    gcloud init