折腾啥

  1. 某位群友的产品 帮忙👍一下差一点拿下今天的 ProductHunt #1,最后两小时了,群友们可以帮忙点一下 upvote 吗,感谢!离第一名就差 50 票

    某位群友的产品 帮忙👍一下

    差一点拿下今天的 ProductHunt #1,最后两小时了,群友们可以帮忙点一下 upvote 吗,感谢!

    离第一名就差 50 票


    https://www.producthunt.com/posts/openart-consistent-characters 🙏 OpenArt - where ideas becomes visual stories. | OpenArt AI | Product Hunt

    • 🔥3
    • 👍1
  2. iPhone 16e深度评测:苹果C1自研通信模块省电吗?信号如何?av114071814802232 • BV1ERPEeXEtR • 18:35👤 极客湾Geekerwan📅 2025-02-27 10:00:00

    iPhone 16e深度评测:苹果C1自研通信模块省电吗?信号如何?

    av114071814802232BV1ERPEeXEtR • 18:35
    👤 极客湾Geekerwan
    📅 2025-02-27 10:00:00
    等待已久的低阶iPhone终于更新了,这台新的iPhone 16e,最值得聊的莫过于首次亮相的苹果自研4G/5G通信模块C1了。相比iPhone以往采用的高通Modem,这次换用C1对iPhone的移动网络有多大影响?功耗能降低多少?能改善续航吗?信号又如何?为了一探究竟,我们自己搭建核心网,首次引入4G/5G通信测试,快来看看吧……
    Link preview image

  3. 使用脚本判断 Surge VPN 状态并重启macOS 上 Surge VPN 偶尔会断开此脚本将先尝试重载配置, 然后尝试重启 App可配合 Keyboard Maestro 自动化在唤醒系统后检测并重启

    使用脚本判断 Surge VPN 状态并重启

    macOS 上 Surge VPN 偶尔会断开
    此脚本将先尝试重载配置, 然后尝试重启 App

    可配合 Keyboard Maestro 自动化在唤醒系统后检测并重启

    #! /usr/bin/env bash

    # 检查 Surge 连接状态的函数
    check_surge_status() {
    # 获取 Surge 的网络服务名称
    local surge_service=$(networksetup -listallnetworkservices| grep Surge)

    # 获取 Surge 的网络服务状态
    local surge_status=$(networksetup -showpppoestatus "$surge_service")

    if [ "$surge_status" = "connected" ]; then
    echo 0
    else
    echo 1
    fi
    }

    if [ $(check_surge_status) -eq 0 ]; then
    echo " Surge 已连接"
    else
    # echo " Surge 未连接"
    echo "🔄 尝试重载配置"
    /Applications/Surge.app/Contents/Applications/surge-cli reload
    # echo "重载配置完成"
    sleep 2
    if [ $(check_surge_status) -eq 0 ]; then
    echo " Surge 已连接"
    else
    # echo " Surge 未连接"
    echo "🔄 尝试重启 Surge"
    /Applications/Surge.app/Contents/Applications/surge-cli stop
    open -a Surge
    osascript -e 'tell application "Surge" to set visible of its first window to false'
    sleep 2
    if [ $(check_surge_status) -eq 0 ]; then
    echo " Surge 已连接"
    else
    echo " Surge 未连接"
    fi

    fi
    fi


    macOS 合集 频道资源合集 恰饭推荐 群组

    #Mac #macOS #App #VPN #Surge

    • ❤️3
  4. LimTuber: YouTube Playlist Player(macOS)- 界面简洁- 体积小- 无广告- 无需谷歌账户- 没有 "are you still watching "的提示 官网 频道资源合集 恰饭推荐 群组 #Mac #macOS #App #YouTube #Playlist #Player #播放器

    LimTuber: YouTube Playlist Player(macOS)

    - 界面简洁
    - 体积小
    - 无广告
    - 无需谷歌账户
    - 没有 "are you still watching "的提示

    官网

    频道资源合集 恰饭推荐 群组

    #Mac #macOS #App #YouTube #Playlist #Player #播放器

    • ❤️1
    • 👍1
  5. 用 darkstat 统计 VPS 上的流量能看到在本VPS上, 还有指定IP上, 分别用到了什么端口(包括TCP UDP), 以及分别跑了多少流量.

    用 darkstat 统计 VPS 上的流量

    能看到在本VPS上, 还有指定IP上, 分别用到了什么端口(包括TCP UDP), 以及分别跑了多少流量.


    https://zelikk.blogspot.com/2025/02/darkstat.html

    感谢群友 @crazypeace 的分享

    频道资源合集 恰饭推荐 群组

    #监控 #VPS #服务器 #流量 #流量统计 #darkstat

    • 🎉3
  6. https://fxtwitter.com/megabits_mzq/status/1893980402055868767 Megabits 🛋️ (@Megabits_mzq)

    • ❤️1
  7. 从 0 搭建一个 AnyTLS 节点(Caddy 分流, 自动维护证书)- 使用 Caddy 通配符证书, mholt/caddy-l4 sni 分流- AnyTLS 不开 TLS, 靠 Caddy 自动维护证书▎mise官方文档curl

    从 0 搭建一个 AnyTLS 节点(Caddy 分流, 自动维护证书)

    - 使用 Caddy 通配符证书, mholt/caddy-l4 sni 分流

    - AnyTLS 不开 TLS, 靠 Caddy 自动维护证书

    ▎mise

    官方文档

    curl https://mise.run | sh

    echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc

    fish:
    echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish

    重启你的 shell 会话, 安装 go
    mise use -g go


    ▎caddy

    caddy 安装: 官方文档

    xcaddy 安装:
    go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

    mholt/caddy-l4(基于 SNI 转发) 安装:
    补充一点 如果想用最新的特性 可以用 xcaddy build master 但是可能也有新鲜的 bug 🐶
    xcaddy build latest --with github.com/mholt/caddy-l4 --with github.com/caddy-dns/cloudflare --output /usr/bin/caddy

    mholt/caddy-l4 文档

    caddy 配置(使用通配符证书, 需要配置 CLOUDFLARE_API_TOKEN )
    /etc/caddy/Caddyfile
    {
    log {
    output stdout
    format console
    level INFO
    }

    servers :443 {
    listener_wrappers {
    layer4 {
    @anytls tls sni a.foo.com
    route @anytls {
    tls
    proxy tcp/127.0.0.1:23556
    }
    }
    tls
    }
    }
    }

    # this block makes Caddy obtain a wildcard TLS certificate
    *.foo.com {
    tls {
    issuer acme {
    email [email protected]
    dir https://acme.zerossl.com/v2/DV90
    dns cloudflare {env.CLOUDFLARE_API_TOKEN}
    }
    issuer acme {
    dir https://acme-v02.api.letsencrypt.org/directory
    dns cloudflare {env.CLOUDFLARE_API_TOKEN}
    }
    }
    respond "Hello World!" 200
    }


    ▎服务端(对 我就喜欢用 mihomo 服务端)

    mihomo 官方文档中的 创建运行服务

    mihomo 配置(paddingScheme 是 vibe 的. 可以自定义. 顺便示范下如何 优先使用 IPv4. 其他配置省略, 自己加吧)
    proxies:
    - name: "direct"
    type: direct
    udp: true
    ip-version: ipv4-prefer
    listeners:
    - name: anytls-in
    type: anytls
    proxy: direct
    port: 23556
    listen: "127.0.0.1"
    users:
    root: "xYbpwdF9vIELWoLmdC"
    certificate: ""
    private-key: ""
    allow-insecure: true
    # https://github.com/anytls/anytls-go/blob/main/docs/protocol.md#cmdupdatepaddingscheme
    padding-scheme: |-
    stop=10
    0=38-72
    1=180-420,520-960
    2=1050-1320,c,260-620,c,760-1240,c,260-680,c,900-1350
    3=90-220,780-1180
    4=700-1240,c,220-520,c,900-1360
    5=160-420
    6=760-1280
    7=220-640
    8=900-1360
    9=180-480


    2. 客户端

    Sub-Store 内单行 JSON
    { "name": "节点名", "type": "anytls", "server": "服务器", "port": 443, "password": "xYbpwdF9vIELWoLmdC", "udp": true, "sni": "a.foo.com" } 

    或 Surge 格式
    节点名=anytls,服务器,443,password="xYbpwdF9vIELWoLmdC",sni=a.foo.com


    ▎相关阅读

    Caddy 使用 Redis 共享 storage

    相关: Sub-Store 自动设置服务端证书 SHA-256 指纹 自建节点证书相关说明

    GOST SNI 分流

    服务器合集 合集 群组 恰饭 联系推广

    #AnyTLS #mihomo #节点 #服务器 #协议 #Caddy

    • ❤️6
  8. 从 0 搭建一个 AnyTLS 节点🆕 更新: 可查看完整版 从 0 搭建一个 AnyTLS 节点(Caddy 分流, 自动维护证书)—- 官方 repo1. 服务端sing-box 和 mihomo 都支持了mihomo 官方文档中的 创建运行服务

    从 0 搭建一个 AnyTLS 节点

    🆕 更新: 可查看完整版 从 0 搭建一个 AnyTLS 节点(Caddy 分流, 自动维护证书)

    —-

    官方 repo

    1. 服务端

    sing-box 和 mihomo 都支持了
    mihomo 官方文档中的 创建运行服务

    自签证书与配置文件参考:

    openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout /etc/mihomo/server.key -out /etc/mihomo/server.crt -subj "/CN=bing.com" -days 36500

    配置文件

    mixed-port: 65222 # HTTP(S) 和 SOCKS 代理混合端口
    tcp-concurrent: true # TCP 并发连接所有 IP, 将使用最快握手的 TCP
    allow-lan: false # 允许局域网连接
    ipv6: true # 开启 IPv6 总开关,关闭阻断所有 IPv6 链接和屏蔽 DNS 请求 AAAA 记录
    log-level: info # 日志等级 silent/error/warning/info/debug

    rules:
    - MATCH,DIRECT

    listeners:
    - name: anytls-in
    type: anytls
    port: 443
    listen: "::"
    users:
    974fdc85: 0cdfe9f1b663
    certificate: ./server.crt
    private-key: ./server.key
    # padding-scheme: "" # https://github.com/anytls/anytls-go/blob/main/docs/protocol.md#cmdupdatepaddingscheme


    2. 客户端

    Sub-Store 内单行 JSON

    { "name": "节点名", "type": "anytls", "server": "服务器", "port": 443, "password": "0cdfe9f1b663", "client-fingerprint": "chrome", "udp": true, "sni": "bing.com", "skip-cert-verify": true }



    节点名=anytls,服务器,443,password="0cdfe9f1b663",sni=bing.com,skip-cert-verify=true


    相关: Sub-Store 自动设置服务端证书 SHA-256 指纹 自建节点证书相关说明

    服务器合集 合集 群组 恰饭 联系推广

    #AnyTLS #mihomo #节点 #服务器 #协议

    • ❤️3
  9. macOS 剪贴板 App 对比嘎嘎细 还有一项是是否支持复杂对象的复制粘贴(例如复制粘贴 Figma 元素, Raycast 剪贴板不支持此功能) 在线表格 频道资源合集 恰饭推荐 群组 #Mac #macOS #App #剪贴板

    macOS 剪贴板 App 对比

    嘎嘎细

    还有一项是是否支持复杂对象的复制粘贴(例如复制粘贴 Figma 元素, Raycast 剪贴板不支持此功能)

    在线表格

    频道资源合集 恰饭推荐 群组

    #Mac #macOS #App #剪贴板

    • ❤️5
  10. Sub-Store 小课堂: 域名解析多 IP 裂变节点更新 如果你的真实需求是解析出不同运营商/不同地区的不同 IP, 请把 Sub-Store 内置的域名解析这一步操作换成脚本操作, 内容为:

    折腾啥
    Sub-Store 小课堂: 域名解析多 IP 裂变节点 群友的需求 使用了域名解析功能,如果有一个域名解析出来多个ip,如何让每个ip都变成一个节点 1. 如果你的真实需求是解析出不同运营商/不同地区的不同 IP 1.1 请把 Sub-Store 内置的域名解析这一步操作换成脚本操作, 内容为: const server = 'https://223.6.6.6/dns-query'; // DoH 阿里和腾讯的可能会触发限速 可以换别的试试 const edns = [{ name: '联通', ip:…
    Sub-Store 小课堂: 域名解析多 IP 裂变节点更新

    如果你的真实需求是解析出不同运营商/不同地区的不同 IP, 请把 Sub-Store 内置的域名解析这一步操作换成脚本操作, 内容为:
    const server = 'https://223.6.6.6/dns-query'; // DoH
    const edns = ['140.207.122.197', '183.47.126.35']; // 不同运营商/地区的 IP, 作为 EDNS Client Subnet (ECS)
    const type = 'A'; // A 或 AAAA

    if (!ProxyUtils.isIP($server.server)) {
    const cache = scriptResourceCache;
    const resolve = async (url, domain, type, edns) => {
    const id = `${url}:${domain}:${type}:${edns}`;
    const cached = cache.get(id);
    // 使用缓存
    if (cached) return cached;
    const res = await ProxyUtils.doh({
    url,
    domain,
    type,
    edns,
    });
    const { answers } = res;
    if (!Array.isArray(answers) || answers.length === 0) {
    throw new Error('No answers');
    }
    const result = answers
    .filter((i) => i?.type === type)
    .map((i) => i?.data)
    .filter((i) => i);
    if (result.length === 0) {
    throw new Error('No answers');
    }
    cache.set(id, result);
    return result;
    };
    const result = await Promise.all(
    edns.map((i) => resolve(server, $server.server, type, i)),
    );
    $server._resolved_ips = [...new Set(result.flat())];
    }

    然后接着用裂变脚本

    原消息

    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #SubStore #Sub-Store #小课堂 #tips #域名解析 #裂变 #IP #节点

    • 👍4