Skip to content

Instantly share code, notes, and snippets.

View consatan's full-sized avatar

Chopin Ngo consatan

  • Amoy, Fujian, China
View GitHub Profile
@consatan
consatan / mtls_with_cf.md
Last active February 5, 2023 04:03
通过 CloudFlare 进行 HTTPS 双向认证

通过 CloudFlare 进行 HTTPS 双向认证

首先配置 CF 与 服务端的 SSL,最低要求 Flexible 级别

并在 CF 上开启强制 HTTPS(登陆 CF 后,点击相应域名,SSL/TLSEdge Certificates,勾选 Always Use HTTPSAutomatic HTTPS Rewrites)

生成证书

还是在 SSL/TLS 菜单下,点击左侧的 Client Certificates,点击 Edit 按钮添加要双向认证的域名(手动输入子域名,或者选择全域名),保存后点击右侧的 Create Certificates

@consatan
consatan / vultr.vps.bench.md
Last active November 7, 2022 09:27
vultr vps bench

vultr 1c1g25g(nvme) amd hp(6$/m) at los angeles

root@test:/# curl -sL yabs.sh | bash
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2022-08-20                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
@consatan
consatan / wave_loading.html
Created September 3, 2022 10:46
wave loading
<!DOCTYPE html>
<html lang="en-us">
<head>
<style>
html, body {
width: 100%;
height: 100%;
}
.loading div {
@consatan
consatan / subscribeList
Created August 25, 2022 03:31 — forked from LordHumphrey/subscribeList
2022-08-18 13:29:59
https://bpjc.xyz/api/v1/client/subscribe?token=2116e2631f6dff0926594b6ff6ec64a5&flag=shadowrocket
https://paste.gg/p/anonymous/4297d3372dcf4f4ea11b351e27b9e801/files/f5763822b2304577a2665aa98619f812/raw
https://suo.yt/ZF2DaFO
https://www.gyy.pw/api/v1/client/subscribe?token=c591df25ee623806fb752d1943c8dfA2
https://xn--mesv7f5toqlp.club/api/v1/client/subscribe?token=54f417aecc83d39e0a2f362779376eb5
https://suo.yt/E2xzY8f
https://subscribe.arapi.top/api/v1/client/subscribe?token=aed89f63c84d291145e55d3972db6be2
https://dy.72img.xyz/api/v1/client/subscribe?token=a268a7bfc948a09f87a1d94a525717df
https://paste.centos.org/view/raw/2182ec4d
https://www.rerongtuliao.com/api/v1/client/subscribe?token=091112454770a3d7c84adec11be973ef
@consatan
consatan / listSevenZipFiles.go
Last active August 11, 2022 14:04
List 7z files
package main
import (
"regexp"
"os"
"os/exec"
)
var pattern = regexp.MustCompile(`(?m)^Path = (.+)$`)
@consatan
consatan / get_dockerfile_from_image.sh
Created May 7, 2022 10:15
get Dockerfile from docker image
docker image history --no-trunc --format '{{.CreatedBy}}' IMAGE_NAME:TAG | tac
@consatan
consatan / gzip_log_file_by_mtime.sh
Created February 23, 2022 01:56
find by mtime older than today midnight
#! /bin/bash
# v.a. https://unix.stackexchange.com/a/257966
# -daystart -mtime +0 表示文件的 mtime 时间在当天 0 点前(用于保留最新的一个文件)
# 如果没有 -daystart 的话,表示 文件的 mtime 时间在 24 小时前(用于保留最新的2个文件)
find ./ -maxdepth 1 -type f -name '*.log' -daystart -mtime +0 -exec gzip {} \;
@consatan
consatan / windows_optimize_vhd_file.txt
Created November 26, 2021 02:38
Windows release WSL2 and docker VHD file quota
WSL2 vhd location
C:\Users\{USERNAME}\AppData\Local\Packages\{DISTRO}\LocalState\{DISTRO_PACKAGE_NAME}\ext4.vhdx
Docker for Windows vhd location
C:\Users\{USERNAME}\AppData\Local\Docker\wsl\data\ext4.vhdx
# delete unuse volume
docker volume prune
exit docker for windows (Right-clicking the whale icon in the notification area (bottom right) > Quit Docker Desktop)
@consatan
consatan / redis_pop_multip_benchmark.php
Created November 25, 2021 07:59
Redis pop multip benchmark
<?php
// redis lua script use LRANGE and LTRIM
// redis-cli SCRIPT LOAD "local res; res = redis.call('LRANGE', KEYS[1], 0, ARGV[1] - 1); redis.call('LTRIM', KEYS[1], ARGV[1], -1); return res"
// script sha1: 163b2d3e271c4b0ca837426d9c0fffd9fc5bf591
// redis lua script use LPOP loop
// SCRIPT LOAD "local res = {}; for i=ARGV[1],1,-1 do table.insert(res, redis.call('LPOP', KEYS[1])); end; return res"
// script sha1: 015204a29f59eca28a9079f0246ec9a25871b031
// Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz 3.19 1x16G 2666MHz
@consatan
consatan / strtr.js
Created September 9, 2021 06:10
php strtr 函数的 js 实现,用于实现简单的自定义编码,如 自定义 base64 编码
// php strtr 函数的 js 实现 v.a. https://www.php.net/manual/en/function.strtr.php
// 只实现了 strtr(string $str, array $replace_pairs) 这种调用方法,且 replace_pairs 里只能是单个字符替换为单个字符
// 目的是为了做凯撒密码实现
String.prototype.strtr = function(dic) {
return this.toString().split('').map(char => dic[char] || char).join('');
}
// 调用
let str = '123321123';