GitHub - snltty/linker: 极具特色的,P2P打洞(UDP+TCP、IPV4+IPV6) + 服务器转发,实现的异地组网、内网穿透。让你那些散落在世界各地的联网设备就像在隔壁房间一样轻松访问。
极具特色的,P2P打洞(UDP+TCP、IPV4+IPV6) + 服务器转发,实现的异地组网、内网穿透。让你那些散落在世界各地的联网设备就像在隔壁房间一样轻松访问。 - snltty/linker
GitHub (github.com)
UDP P2P
极具特色的,P2P打洞(UDP+TCP、IPV4+IPV6) + 服务器转发,实现的异地组网、内网穿透。让你那些散落在世界各地的联网设备就像在隔壁房间一样轻松访问。 - snltty/linker
GitHub (github.com)
UDP P2P
bluetooth mesh chat, IRC vibes. Contribute to permissionlesstech/bitchat development by creating an account on GitHub.
GitHub (github.com)
蓝牙 去中心化 mesh 通讯
[color=#FF4D4D]环境:Debian 13 Nginx1.31.1[/color]
nano auto_zstd_nginx.sh
#!/usr/bin/env bash
# ==============================================================================
# 脚本名称: auto_zstd_nginx.sh
# 适用系统: Debian 12/13 / Ubuntu
# 功能描述: 具备智能缓存检测的全功能 Nginx Zstd 动态模块编译与全自动更新脚本
# ==============================================================================
set -e # 遇到致命错误立即停止执行
# 颜色输出定义
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
log_info() { echo -e "${GREEN}[INFO] $1${NC}"; }
log_warn() { echo -e "${YELLOW}[WARN] $1${NC}"; }
log_err() { echo -e "${RED}[ERROR] $1${NC}"; exit 1; }
SRC_DIR="/usr/src"
CACHE_META="${SRC_DIR}/.nginx_zstd_cache.meta"
MODULES_INSTALL_DIR="/usr/lib/nginx/modules"
# 1. 权限检查
if [ "$EUID" -ne 0 ]; then
log_err "请使用 root 用户或通过 sudo 运行此脚本!"
fi
# 2. 检测当前运行的 Nginx 状态
if ! command -v nginx &> /dev/null; then
log_err "未检测到系统安装了 Nginx,请先安装 Nginx 主程序!"
fi
# 动态提取当前 Nginx 版本号 (例如: 1.31.0)
NGINX_VER=$(nginx -v 2>&1 | awk -F/ '{print $2}' | cut -d' ' -f1)
NGINX_ARGS=$(nginx -V 2>&1 | grep "configure arguments:" | sed 's/configure arguments://')
log_info "当前系统运行的 Nginx 版本: ${NGINX_VER}"
# 自动修正模块安装路径
if [ ! -d "$MODULES_INSTALL_DIR" ]; then
MODULES_INSTALL_DIR="/etc/nginx/modules"
fi
# 3. 智能检测远端 Zstd 库的最新版本(无需提前克隆)
log_info "正在检测 Facebook Zstd 官方仓库最新动态..."
if ! command -v git &> /dev/null; then
# 如果没有 git,临时安装以便检测
apt-get update -y || true
apt-get install -y git wget awk
fi
# 获取远程最新 Commit ID
REMOTE_ZSTD_COMMIT=$(git ls-remote https://github.com/facebook/zstd.git HEAD | awk '{print $1}')
if [ -z "$REMOTE_ZSTD_COMMIT" ]; then
log_err "无法连接到 GitHub 获取 Zstd 版本,请检查网络连接。"
fi
# 4. 缓存验证:比对版本与文件完整性
NEED_BUILD_ZSTD=true
NEED_BUILD_MODULE=true
if [ -f "$CACHE_META" ]; then
# 读取缓存的元数据
# shellcheck disable=SC1090
source "$CACHE_META"
# 检查本地动态库文件是否存在
if [ -f "/usr/local/lib/libzstd.so" ] && [ "$LAST_ZSTD_COMMIT" == "$REMOTE_ZSTD_COMMIT" ]; then
NEED_BUILD_ZSTD=false
log_info "✨ 检测到本地 Zstd 核心库已是最新版本 (${REMOTE_ZSTD_COMMIT:0:7}),跳过拉取与编译。"
fi
# 检查 Nginx 动态模块文件是否存在并比对版本
if [ -f "${MODULES_INSTALL_DIR}/ngx_http_zstd_filter_module.so" ] && \
[ -f "${MODULES_INSTALL_DIR}/ngx_http_zstd_static_module.so" ] && \
[ "$LAST_NGINX_VER" == "$NGINX_VER" ] && \
[ "$NEED_BUILD_ZSTD" == "false" ]; then
NEED_BUILD_MODULE=false
fi
fi
# 如果一切都未改变,直接退出
if [ "$NEED_BUILD_ZSTD" == "false" ] && [ "$NEED_BUILD_MODULE" == "false" ]; then
log_info "🚀 [完美缓存] 当前 Nginx 编译环境与 Zstd 模块均无任何更新,无需重复编译!"
exit 0
fi
# 5. 解决 APT 签名错误并安装依赖
log_info "正在准备同步系统依赖包..."
# 核心容错:使用 || true 允许非关键性源(如 MySQL 签名过期)报错,不中断脚本
apt-get update -y || log_warn "部分第三方软件源同步失败(例如系统的 MySQL 密钥未找到),脚本将忽略并尝试继续..."
log_info "正在安装与更新必要的编译工具链..."
apt-get install -y build-essential git libpcre3-dev zlib1g-dev libssl-dev debhelper wget
# 如果系统残留了旧的发行版自带库,予以清除以防冲突
if dpkg -l | grep -q libzstd-dev; then
log_warn "清理系统自带的旧版 libzstd-dev 以防链路冲突..."
apt-get remove -y libzstd-dev libzstd1 || true
fi
# 6. 【按需编译】最新的 Zstd 核心库
cd ${SRC_DIR}
if [ "$NEED_BUILD_ZSTD" == "true" ]; then
log_info "正在下载/更新 Zstd 官方源码并进行编译..."
if [ ! -d "zstd" ]; then
git clone --depth 1 https://github.com/facebook/zstd.git
fi
cd zstd
git fetch --depth 1 origin
git reset --hard origin/dev || git reset --hard origin/master # 适配官方默认主分支
log_info "开始编译 Zstd 核心库..."
make -j$(nproc)
make install
ldconfig
log_info "Zstd 核心库编译并安装成功。"
fi
# 7. 【按需编译】Nginx Zstd 动态模块
cd ${SRC_DIR}
if [ "$NEED_BUILD_MODULE" == "true" ]; then
log_info "正在同步 Nginx 源码与动态模块源码..."
# 清理旧的 Nginx 源码目录确保干净编译
rm -rf "nginx-${NGINX_VER}" "nginx-${NGINX_VER}.tar.gz"
wget -c "http://nginx.org/download/nginx-${NGINX_VER}.tar.gz"
tar -zxf "nginx-${NGINX_VER}.tar.gz"
if [ ! -d "zstd-nginx-module" ]; then
git clone https://github.com/tokers/zstd-nginx-module.git
fi
cd zstd-nginx-module && git pull && cd ..
log_info "配置 Nginx 模块环境,无缝继承原生 Nginx 编译参数..."
cd "nginx-${NGINX_VER}"
# 注入原生参数与定制的 Zstd include 路径
eval "./configure ${NGINX_ARGS} --add-dynamic-module=${SRC_DIR}/zstd-nginx-module --with-cc-opt='-I/usr/local/include' --with-ld-opt='-L/usr/local/lib -Wl,-rpath,/usr/local/lib'"
log_info "并行编译 Nginx Zstd 动态模块..."
make modules
log_info "将编译产物自动替换至 Nginx 目录..."
mkdir -p ${MODULES_INSTALL_DIR}
cp objs/ngx_http_zstd_filter_module.so ${MODULES_INSTALL_DIR}/
cp objs/ngx_http_zstd_static_module.so ${MODULES_INSTALL_DIR}/
chmod 644 ${MODULES_INSTALL_DIR}/ngx_http_zstd_*.so
# 检查模块语法
if nginx -t &>/dev/null; then
log_info "Nginx 配置文件语法检查通过,正在平滑重启服务..."
systemctl reload nginx || log_warn "Nginx 重载失败,请手动检查系统服务状态。"
else
log_warn "检测到 Nginx 配置当前存在异常,未自动重载,请执行 'nginx -t' 排查。"
fi
fi
# 8. 写入/更新本地编译缓存元数据
cat > "$CACHE_META" <<EOF
LAST_NGINX_VER="${NGINX_VER}"
LAST_ZSTD_COMMIT="${REMOTE_ZSTD_COMMIT}"
EOF
log_info "=================================================="
log_info "🎉 全功能自动 Nginx Zstd 模块部署/更新任务成功完成!"
log_info "当前缓存状态:Nginx [${NGINX_VER}] | Zstd [${REMOTE_ZSTD_COMMIT:0:7}]"
log_info "=================================================="
chmod +x auto_zstd_nginx.sh
# 执行两次测试版本缓存
sudo ./auto_zstd_nginx.sh
Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote. - DietrichGebert/ponytail
GitHub (github.com)
UDP2CAL 是一个双向、低延迟的局域网音频串流系统。支持 Android 手机麦克风采集发送到 Windows 虚拟声卡(正向),同时 PC 扬声器音频回传到手机播放(反向)。Opus 编解码、零软件降噪、声学回声消除、立体声/单声道自适应。全链路零堆分配,生产-消费双协程,P2P 独占通信防抢占。 - Raven777777/UDP2CAL
GitHub (github.com)
VPS重装脚本
一键DD/重装脚本 (One-click reinstall OS on VPS). Contribute to bin456789/reinstall development by creating an account on GitHub.
GitHub (github.com)
三三水这样问我,我认真的思考了一下:你觉得我们应该相信第一印象不
额我就拿我个人为例吧(?)
我是一个不看第一印象的人,我的习惯就是不带评价的去观察人(至少是与我不相干不会实际上冒犯到我的人)
即使我看到一个人,比如你XXXXXX,我也不会下意识的去给人贴标签
我承认人的多样和复杂这样的客观事实,我承认这些经历会导致一些可能的坏事或者好事
但是额由于我接触到的可以说是纯坏或者不可理喻而且将这种不可理喻(以一种令我不愉快的方式)施加到我身上的人几乎为零
大家对我都挺好的,所有我其实潜意识里认为世界上是好人多的(经历导致)
冒犯到我的人额那就另说了,我对此和希特勒持相同态度()
我觉得这个是否应该相信第一印象,是一个复杂的命题
像我的生活环境,是不怎么需要去判断一个人的好坏的,我接触的人也很少,所以我可以不去看第一印象
但是如果生活动荡,实际上的生活环境接触到的对自己不利的人的可能大的话,应该使用第一印象去进行一些排除
但是我觉得这个根本的命题可能是:
我们该如何避开那些潜在的人际威胁(?)
我们该如何在社交中选择潜在的“好人”(?)
但是这其实很难,正如我所说,人是很复杂的,就像你,无论你是怎么看待自己的,或者你是如何对待别人,你在对待我(某些特定的人的时候)又是不一样的,是好的
所以我的结论是,额
如果自己是一个会被别人以第一印象来评判的人,也就是额第一印象差的人,应该用第一印象去评价别人,因为会造成这样第一印象的环境本身就是不安定的,这时候使用第一印象评价法是可以有效的避开那些风险和威胁的
如果自己是一个不会被人以第一印象评判的人,那也不用去用第一印象去评价别人,因为你的生活环境既然塑造了这样的你,你接触那些风险和威胁的可能本来就是极小的
但是说到底,如果一个人带着敌意,隐藏,不可见人的目的与你接触,该被拐去棉被还是得被拐去棉被,和你是否使用第一印象去规避风险没多大关系我感觉
当然我的社交范围很小啊,这个是前提,如果大家可以在面对冒犯直白的坦言,互相沟通,无法沟通和互相理解就各自保持距离,真心换真心才是最优解吧()保持自我的独立性,不被他人左右(谈何容易()
Simple tool to configure Windows Filtering Platform (WFP) which can configure network activity on your computer. - henrypp/simplewall
GitHub (github.com)
Umami is a modern, privacy-focused analytics platform. An open-source alternative to Google Analytics, Mixpanel and Amplitude. - umami-software/umami
GitHub (github.com)