zhen: 进程和定时任务管理器
老朋友知道,joker 是一个极简的进程管理工具,小巧在他不是 CS 架构,无依赖,也无需事先运行一个后台进程,随用随时一条命令。而 jinbe 可以轻巧的管理开机启动命令。最近写了些 jb 小脚本,需要定时任务去运行,再加上 群友 内对 joker 和 jinbe 的反馈,所以准备替换掉 jinbe。于是诞生了 zhen,名称取自 先轸,他同时拥有 joker 和 jinbe 的功能,以及对一些特殊场景做了优化,但目前仍然部分依赖 joker 命令的存在。系统需有 IPv6 栈。
https://www.txthinking.com/talks/articles/zhen.article
zhen: process and cron manager
Old friends know that joker is an ultra-minimalist process management tool. It is not CS architecture, no dependencies, and no need to run a background process in advance. Meanwhile, jinbe can easily manage startup commands.
Recently, I have written some jb scripts that require scheduled tasks to run. Coupled with feedback on joker and jinbe from the group, I am planning to replace jinbe. Thus, zhen was born, a name inspired by Xian Zhen. It possesses the functions of both joker and jinbe, along with optimizations for some special scenarios. However, currently it still partially relies on the existence of the joker command. The system requires an IPv6 stack.
https://www.txthinking.com/talks/articles/zhen-en.article
> To: TA and Brook Plus and Shiliew users
老朋友知道,joker 是一个极简的进程管理工具,小巧在他不是 CS 架构,无依赖,也无需事先运行一个后台进程,随用随时一条命令。而 jinbe 可以轻巧的管理开机启动命令。最近写了些 jb 小脚本,需要定时任务去运行,再加上 群友 内对 joker 和 jinbe 的反馈,所以准备替换掉 jinbe。于是诞生了 zhen,名称取自 先轸,他同时拥有 joker 和 jinbe 的功能,以及对一些特殊场景做了优化,但目前仍然部分依赖 joker 命令的存在。系统需有 IPv6 栈。
https://www.txthinking.com/talks/articles/zhen.article
zhen: process and cron manager
Old friends know that joker is an ultra-minimalist process management tool. It is not CS architecture, no dependencies, and no need to run a background process in advance. Meanwhile, jinbe can easily manage startup commands.
Recently, I have written some jb scripts that require scheduled tasks to run. Coupled with feedback on joker and jinbe from the group, I am planning to replace jinbe. Thus, zhen was born, a name inspired by Xian Zhen. It possesses the functions of both joker and jinbe, along with optimizations for some special scenarios. However, currently it still partially relies on the existence of the joker command. The system requires an IPv6 stack.
https://www.txthinking.com/talks/articles/zhen-en.article
> To: TA and Brook Plus and Shiliew users
👍6👏2
Windows 11 自带的 Terminal,安装 GitBash 时勾选上添加到 Terminal。Windows 系统终于有个凑活的命令行了。
☃2🦄2😁1
curl 稳定版终于支持 HTTP3 了
HTTP 代理和 Socks5 代理因为对 HTTP3 支持不好,终将退出历史舞台
https://www.txthinking.com/talks/articles/curl-http3.article
curl stable version supports HTTP3
HTTP proxies and Socks5 proxies, due to poor support for HTTP3, will eventually fade out of history
https://www.txthinking.com/talks/articles/curl-http3-en.article
nami install curl
curl --http3-only https://http3.ooo -v
HTTP 代理和 Socks5 代理因为对 HTTP3 支持不好,终将退出历史舞台
https://www.txthinking.com/talks/articles/curl-http3.article
curl stable version supports HTTP3
nami install curl
curl --http3-only https://http3.ooo -v
HTTP proxies and Socks5 proxies, due to poor support for HTTP3, will eventually fade out of history
https://www.txthinking.com/talks/articles/curl-http3-en.article
👍3🐳2🔥1👏1🤩1
tun2brook v20240101: see which application is creating TCP and UDP network connections
- Optimization: When exiting tun2brook, automatically restore the system DNS to its original state.
- New: See which program is creating TCP and UDP network connections.
- New: It also means that it is possible to use scripts to perform network control for specific applications.
- Tip: macOS, in Brook GUI and Shiliew App mode, appid is application bundle id
https://www.txthinking.com/talks/articles/tun2brook-v20240101-en.article
tun2brook v20240101: 可以知道是哪个程序在发起 TCP 和 UDP 网络连接
- 优化:当退出 tun2brook 时,自动将系统 DNS 恢复如初
- 新增:Linux, macOS, Windows 可以知道是哪个程序在发起 TCP 和 UDP 网络连接
- 新增:也意味着可以用脚本来针对具体应用程序来进行网络控制
- 提示:**macOS 上**,运行在沙盒里的 Brook 图形客户端 和 Shiliew 的 App 模式里的 appid 是应用的 bundle id
https://www.txthinking.com/talks/articles/tun2brook-v20240101.article
- Optimization: When exiting tun2brook, automatically restore the system DNS to its original state.
- New: See which program is creating TCP and UDP network connections.
- New: It also means that it is possible to use scripts to perform network control for specific applications.
- Tip: macOS, in Brook GUI and Shiliew App mode, appid is application bundle id
https://www.txthinking.com/talks/articles/tun2brook-v20240101-en.article
tun2brook v20240101: 可以知道是哪个程序在发起 TCP 和 UDP 网络连接
- 优化:当退出 tun2brook 时,自动将系统 DNS 恢复如初
- 新增:Linux, macOS, Windows 可以知道是哪个程序在发起 TCP 和 UDP 网络连接
- 新增:也意味着可以用脚本来针对具体应用程序来进行网络控制
- 提示:**macOS 上**,运行在沙盒里的 Brook 图形客户端 和 Shiliew 的 App 模式里的 appid 是应用的 bundle id
https://www.txthinking.com/talks/articles/tun2brook-v20240101.article
❤3🔥1🥰1
苹果又搞砸了,在 iOS 17 上当你使用 Xcode 使用 USB 连接真机调试时,你会发现 Xcode 无法连接你的 iPhone,即使你关闭了 VPN,但是 macOS 14 开启 VPN 的话,Xcode 仍然无法连接设备。
但是 macOS 14 + iOS 16,即使双端都连接了 VPN,Xcode 是可以连接设备的。
OK,那把 macOS 14 + iOS 17 都断开 VPN,Xcode 可以连接设备,但你会发现非常卡,因为即使你通过 USB 线缆连接 macOS 和 iPhone,iOS 17 仍然选择走无线通道。
已被抱怨:https://developer.apple.com/forums/thread/737875
但是 macOS 14 + iOS 16,即使双端都连接了 VPN,Xcode 是可以连接设备的。
OK,那把 macOS 14 + iOS 17 都断开 VPN,Xcode 可以连接设备,但你会发现非常卡,因为即使你通过 USB 线缆连接 macOS 和 iPhone,iOS 17 仍然选择走无线通道。
已被抱怨:https://developer.apple.com/forums/thread/737875
😐4😁1👾1
tun2brook v20240102
- 修复: 未自动 bypass bypassDNS IP
- New: auto bypass brooklinks IP from script
https://github.com/txthinking/tun2brook
- 修复: 未自动 bypass bypassDNS IP
- New: auto bypass brooklinks IP from script
https://github.com/txthinking/tun2brook
GitHub
GitHub - txthinking/tun2brook: Proxy all traffic just one line command. tun2socks, tun2brook. IPv4 and IPv6, TCP and UDP.
Proxy all traffic just one line command. tun2socks, tun2brook. IPv4 and IPv6, TCP and UDP. - txthinking/tun2brook
👍2👏1💘1
jb https://bash.ooo/china.js
从 Brook 或 Shiliew 的日常日志里自动增量生成自用的 bypass 模块:
生成模块:
从 Brook 或 Shiliew 的日常日志里自动增量生成自用的 bypass 模块:
jb https://bash.ooo/china.js auto
或,可以从 iOS/Android/Windows 复制出日志检查
jb https://bash.ooo/china.js /path/to/log/file
生成模块:
jb https://bash.ooo/china.js module
或
jb https://bash.ooo/china.js module_a
或
jb https://bash.ooo/china.js list
👍2👏2👌1
Is this docker file simpler than the one in documentation
https://hub.docker.com/r/txthinking/brook
FROM alpine
RUN wget -O /brook https://github.com/txthinking/brook/releases/latest/download/brook_linux_amd64
RUN chmod +x /brook
ENTRYPOINT ["/brook"]
https://hub.docker.com/r/txthinking/brook
Docker
txthinking/brook - Docker Image | Docker Hub
A cross-platform programmable network tool. https://github.com/txthinking/brook
👍4❤1🫡1
# Brook v20240214 and Shiliew v20240214 Released
https://github.com/txthinking/brook/releases/tag/v20240214
https://www.txthinking.com/shiliew.html
https://brook.app
# GUI:
- Removed proxy mode. All in TUN mode. Life is short, I use Brook
- Modularized all features
- Rewrote UI
- iOS: Memory optimization
- Linux/Windows: Disconnecting will automatically restore the system DNS to its original state. Other platforms do not have this concern.
- Linux/Windows: You can now identify which programs are initiating TCP and UDP network connections. This also means that you can use scripts to control network access for specific applications. This feature has been completed in the previous macOS version. There is no such API for iOS. Android can bypass the app.
- Windows: Package using the new msix format. Here and Here
- Windows: Developed and tested under Windows 11
- Linux: Optimized startup way
- Added Test IPv4 tool
- Added Test IPv6 tool
- ipk: Removed. Might write a new UI
- If you signin: Connect API over your Brook only Mode. You must ensure your Brook Server works.
- Updated documentation: https://brook.app
# GUI:
- 移除 proxy 模式。全端默认 TUN 模式。**人生苦短,我用 Brook**
- 将所有功能模块化
- 重写 UI
- iOS: 内存优化
- Linux/Windows: 断开自动将系统 DNS 恢复如初。其他端无此顾虑
- Linux/Windows: 可以知道是哪个程序在发起 TCP 和 UDP 网络连接。也意味着可以用脚本来针对具体应用程序来进行网络控制。macOS 端上一个版本已完成。iOS 端无此 API。Android 端可以 bypass app
- Windows: 使用新的 msix 格式打包。这里 和 这里
- Windows: 在 Windows 11 下开发测试
- Linux: 优化启动方式
- 新增 Test IPv4 工具
- 新增 Test IPv6 工具
- ipk: 移除. 可能,后续会写一个新的 UI
- If you signin: Connect API over your Brook only Mode. You must ensure your Brook Server works
- 文档更新: https://brook.app
# CLI
- brook tproxy: OpenWRT: 完美支持 IPv4/IPv6/TCP/UDP. Native IPv6
- brook tproxy: OpenWRT: Perfect support for IPv4/IPv6/TCP/UDP. Native IPv6
- brook --clientHKDFInfo: Do not use it unless you know what it is.
- brook --serverHKDFInfo: Do not use it unless you know what it is.
- brook ipcountry: Get the country of a specific IP.
https://github.com/txthinking/brook/releases/tag/v20240214
https://www.txthinking.com/shiliew.html
https://brook.app
# GUI:
- Removed proxy mode. All in TUN mode. Life is short, I use Brook
- Modularized all features
- Rewrote UI
- iOS: Memory optimization
- Linux/Windows: Disconnecting will automatically restore the system DNS to its original state. Other platforms do not have this concern.
- Linux/Windows: You can now identify which programs are initiating TCP and UDP network connections. This also means that you can use scripts to control network access for specific applications. This feature has been completed in the previous macOS version. There is no such API for iOS. Android can bypass the app.
- Windows: Package using the new msix format. Here and Here
- Windows: Developed and tested under Windows 11
- Linux: Optimized startup way
- Added Test IPv4 tool
- Added Test IPv6 tool
- ipk: Removed. Might write a new UI
- If you signin: Connect API over your Brook only Mode. You must ensure your Brook Server works.
- Updated documentation: https://brook.app
# GUI:
- 移除 proxy 模式。全端默认 TUN 模式。**人生苦短,我用 Brook**
- 将所有功能模块化
- 重写 UI
- iOS: 内存优化
- Linux/Windows: 断开自动将系统 DNS 恢复如初。其他端无此顾虑
- Linux/Windows: 可以知道是哪个程序在发起 TCP 和 UDP 网络连接。也意味着可以用脚本来针对具体应用程序来进行网络控制。macOS 端上一个版本已完成。iOS 端无此 API。Android 端可以 bypass app
- Windows: 使用新的 msix 格式打包。这里 和 这里
- Windows: 在 Windows 11 下开发测试
- Linux: 优化启动方式
- 新增 Test IPv4 工具
- 新增 Test IPv6 工具
- ipk: 移除. 可能,后续会写一个新的 UI
- If you signin: Connect API over your Brook only Mode. You must ensure your Brook Server works
- 文档更新: https://brook.app
# CLI
- brook tproxy: OpenWRT: 完美支持 IPv4/IPv6/TCP/UDP. Native IPv6
- brook tproxy: OpenWRT: Perfect support for IPv4/IPv6/TCP/UDP. Native IPv6
- brook --clientHKDFInfo: Do not use it unless you know what it is.
- brook --serverHKDFInfo: Do not use it unless you know what it is.
- brook ipcountry: Get the country of a specific IP.
👍3❤1🎉1💯1
总结 Brook 提供网关/路由的方案
- 使用 Brook 把 macOS 变成网关
- 使用 Brook 把 Linux 变成网关
- 使用 Brook 把 Windows 变成网关
- Brook 0penWRT: 完美支持 IPv4/IPv6/TCP/UDP
The gateway/router solutions provided by Brook
- Turn macOS into a Gateway with Brook
- Turn Linux into a Gateway with Brook
- Turn Windows into a Gateway with Brook
- Brook 0penWRT: Perfectly supports IPv4/IPv6/TCP/UDP
- 使用 Brook 把 macOS 变成网关
- 使用 Brook 把 Linux 变成网关
- 使用 Brook 把 Windows 变成网关
- Brook 0penWRT: 完美支持 IPv4/IPv6/TCP/UDP
The gateway/router solutions provided by Brook
- Turn macOS into a Gateway with Brook
- Turn Linux into a Gateway with Brook
- Turn Windows into a Gateway with Brook
- Brook 0penWRT: Perfectly supports IPv4/IPv6/TCP/UDP
👍4
Get appid from macOS app
jb https://bash.ooo/appid.js
jb https://bash.ooo/appid.js /Applications/Safari.app
com.apple.Safari
com.apple.Safari.CacheDeleteExtension
com.apple.Safari.SafariQuickLookPreview
com.apple.Safari.DiagnosticExtension
com.apple.Safari.SafariLinkExtension
com.apple.Safari.SafariWidgetExtension
com.apple.Safari.SandboxBroker
com.apple.Safari.ContentBlockerLoader
com.apple.Safari.BrowserDataImportingService
自动生成中国域名白名单
同时支持 GUI 日志和 CLI 日志
https://www.txthinking.com/talks/articles/china-list.article
同时支持 GUI 日志和 CLI 日志
https://www.txthinking.com/talks/articles/china-list.article
jb https://bash.ooo/china.js
Usage: jb https://bash.ooo/china.js [options]
Options:
--source <string> gui: 自动查找 GUI 日志; 或 /path/to/log (default: "")
--how <string> A: 从海外 IP 向海外 DNS 发起查询, 比如开启 GUI 的情况下或在服务器端运行, 缺点是如果域名同时有国内和海外 IP 则会被认为是海外域名; B: 从国内 IP 向阿里 DNS 发起查询, 开启 GUI 情况下也没
,GUI 默认 bypass 了阿里 DNS, 缺点是如果返回的污染 IP 是国内的 IP 就会错乱,但历史经验不会,
还有一个缺点是 Google 有一些域名有国内的 IP (default: "")
--china <string> 弥补 A 和 B 方案的不足,手动设置某个域名为国内域名 (default: "")
--global <string> 弥补 A 和 B 方案的不足,手动设置某个域名为国际域名 (default: "")
--delete <string> 移除某个域名. 如果想删除所有, 直接删除 rm -rf ~/.china.db (default: "")
--table 打印整个表 (default: false)
--list 打印列表 (default: false)
--module 打印 module, 让域名走 bypass DNS 来解析 (default: false)
--modulea 打印 module, 让域名走 bypass DNS 来解析出 A 记录,然后直接 bypass (default: false)
-h, --help display help for command
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
A SSH Terminal for iOS/Android/macOS/Windows
https://www.txthinking.com/ssh.html
- Manage multiple servers
- Supports opening multiple SSH sessions simultaneously
- Supports the shortcut Ctrl+N or Command+N
- Support password authentication
- Support private key authentication
https://www.txthinking.com/ssh.html
- Manage multiple servers
- Supports opening multiple SSH sessions simultaneously
- Supports the shortcut Ctrl+N or Command+N
- Support password authentication
- Support private key authentication
👍3🔥2👏1💯1
屏蔽豆瓣开屏广告(在 v7.66.0 测试)
https://raw.githubusercontent.com/txthinking/brook/master/programmable/modules/douban.tengo
https://raw.githubusercontent.com/txthinking/brook/master/programmable/modules/douban.tengo
👍3
Shiliew v20240404
https://www.txthinking.com/shiliew.html
- Simplify the editor when editing large script files
- Bugfix
Brook
I am adding some features to the CLI, it will take some time.
https://www.txthinking.com/shiliew.html
- Simplify the editor when editing large script files
- Bugfix
Brook
I am adding some features to the CLI, it will take some time.
Txthinking
Shiliew - Stable Network Services
Shiliew focuses on providing stable network services.
❤2🥰2🔥1👏1
Brook v20240404
https://brook.app
## CLI
- brook --speedLimit: Limit speed (b), such as 500kb/s: 500000, works with server/wsserver/wssserver/quicserver
- brook --ipLimitMax: Limit the number of client IP addresses, be careful when using this parameter, as the client may have dynamic IP. Works with server/wsserver/wssserver/quicserver
- brook --ipLimitInterval: Interval (s) for ipLimitMax
- brook --ipLimitWait: How long (s) to wait for recovery after exceeding ipLimitMax
- brook relayoverbrook --link
- brook dnsserveroverbrook --link
- brook wssclient --link
- brook link --fragment When server is brook wssserver, split the ClientHello into multiple fragments and then send them one by one with delays (millisecond). The format is min_length:max_length:min_delay:max_delay, cannot be zero, such as 50:100:10:50, Note that: This is an experimental feature, currently only supported by the brook CLI and tun2brook.
- brook --serverLog: Enable server log, traffic and more. A valid value is file path or 'console'. Mutually exclusive with the --log parameter. Works with server/wsserver/wssserver/quicserver
--serverLog format
You can tally traffic from --serverLog, for example by using a
- Support CAC configure file
We known this:
Then, create a file /root/any_name:
We can run it like this:
## GUI:
- New: Brook OpenWRT GUI
- Installing an ipk will automatically install dependencies.
- Connect and disconnect auto-configure OpenWRT, no need to manually configure some settings in OpenWRT as before.
- And some optimizations.
- bugfix
ZH
## CLI
- brook --speedLimit: 服务端限速
- brook --ipLimitMax: 限制客户端 IP 数量
- brook --ipLimitInterval: 周期
- brook --ipLimitWait: 周期内触及 --ipLimitMax 数量后等待多久恢复
- brook relayoverbrook --link
- brook dnsserveroverbrook --link
- brook wssclient --link
- brook link --fragment 当服务器是brook wssserver时,将ClientHello拆分成多个分片,然后逐个延迟发送(毫秒为单位)。格式为 min_length:max_length:min_delay:max_delay,值不能为零,例如 50:100:10:50。需要注意的是:这是一个实验性功能,目前仅由brook CLI和tun2brook支持。
- brook --serverLog: 服务端日志,包含每个连接的流量统计
--serverLog 格式如下
可以从 --serverLog 里统计流量,比如用 jb 脚本统计
- 支持 CAC 配置文件
我们知道这样:
现在, 创建一个文件
我们就可以这样:
## GUI:
- 新增:Brook OpenWRT 图形客户端
- 安装 ipk 时会自动安装依赖
- 连接和断开自动配置 OpenWRT,无需再向以前一样手动去 OpenWRT 里配置一些东西
- 以及一些细节的优化
- bugfix
https://brook.app
## CLI
- brook --speedLimit: Limit speed (b), such as 500kb/s: 500000, works with server/wsserver/wssserver/quicserver
- brook --ipLimitMax: Limit the number of client IP addresses, be careful when using this parameter, as the client may have dynamic IP. Works with server/wsserver/wssserver/quicserver
- brook --ipLimitInterval: Interval (s) for ipLimitMax
- brook --ipLimitWait: How long (s) to wait for recovery after exceeding ipLimitMax
- brook relayoverbrook --link
- brook dnsserveroverbrook --link
- brook wssclient --link
- brook link --fragment When server is brook wssserver, split the ClientHello into multiple fragments and then send them one by one with delays (millisecond). The format is min_length:max_length:min_delay:max_delay, cannot be zero, such as 50:100:10:50, Note that: This is an experimental feature, currently only supported by the brook CLI and tun2brook.
- brook --serverLog: Enable server log, traffic and more. A valid value is file path or 'console'. Mutually exclusive with the --log parameter. Works with server/wsserver/wssserver/quicserver
--serverLog format
{"bytes":"2190","dst":"8.8.8.8:53","from":"34.105.110.232:49514","network":"tcp","time":"2024-02-26T09:56:12Z"}
{"bytes":"2237","dst":"8.8.8.8:53","from":"34.105.110.232:49331","network":"udp","time":"2024-02-26T09:57:12Z"}You can tally traffic from --serverLog, for example by using a
jb script to sum up the traffic from the /tmp/brook.log log file.jb 'var s=0; read_file("/tmp/brook.log").trim().split("\n").map(v=>JSON.parse(v)).forEach(v=> s+= v.bytes ? parseInt(v.bytes) : 0); echo(s)'- Support CAC configure file
We known this:
brook server -l :9999 -p apple
Then, create a file /root/any_name:
server -l :9999 -p apple
We can run it like this:
brook /root/any_name
## GUI:
- New: Brook OpenWRT GUI
- Installing an ipk will automatically install dependencies.
- Connect and disconnect auto-configure OpenWRT, no need to manually configure some settings in OpenWRT as before.
- And some optimizations.
- bugfix
ZH
## CLI
- brook --speedLimit: 服务端限速
- brook --ipLimitMax: 限制客户端 IP 数量
- brook --ipLimitInterval: 周期
- brook --ipLimitWait: 周期内触及 --ipLimitMax 数量后等待多久恢复
- brook relayoverbrook --link
- brook dnsserveroverbrook --link
- brook wssclient --link
- brook link --fragment 当服务器是brook wssserver时,将ClientHello拆分成多个分片,然后逐个延迟发送(毫秒为单位)。格式为 min_length:max_length:min_delay:max_delay,值不能为零,例如 50:100:10:50。需要注意的是:这是一个实验性功能,目前仅由brook CLI和tun2brook支持。
- brook --serverLog: 服务端日志,包含每个连接的流量统计
--serverLog 格式如下
{"bytes":"2190","dst":"8.8.8.8:53","from":"34.105.110.232:49514","network":"tcp","time":"2024-02-26T09:56:12Z"}
{"bytes":"2237","dst":"8.8.8.8:53","from":"34.105.110.232:49331","network":"udp","time":"2024-02-26T09:57:12Z"}可以从 --serverLog 里统计流量,比如用 jb 脚本统计
/tmp/brook.log 日志里的流量总和jb 'var s=0; read_file("/tmp/brook.log").trim().split("\n").map(v=>JSON.parse(v)).forEach(v=> s+= v.bytes ? parseInt(v.bytes) : 0); echo(s)'- 支持 CAC 配置文件
我们知道这样:
brook server -l :9999 -p apple
现在, 创建一个文件
/root/any_name:server -l :9999 -p apple
我们就可以这样:
brook /root/any_name
## GUI:
- 新增:Brook OpenWRT 图形客户端
- 安装 ipk 时会自动安装依赖
- 连接和断开自动配置 OpenWRT,无需再向以前一样手动去 OpenWRT 里配置一些东西
- 以及一些细节的优化
- bugfix
GitHub
GitHub - TxThinkingInc/CAC: A configuration file format that is the same as command-line arguments.
A configuration file format that is the same as command-line arguments. - TxThinkingInc/CAC
❤2🔥1🥰1👏1