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
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 - TxThinking
A network app designed for those who value their time. Global and China Optimized. Focus on Stability. 一个为在乎时间的人而设计的网络 App。全球及中国优化,专注高端、稳定。
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
How I turned every web page into GitHub Markdown Style with Brook
https://www.txthinking.com/talks/articles/brook-clean-the-web-en.article
使用 Brook 净化互联网
https://www.txthinking.com/talks/articles/brook-clean-the-web.article
https://www.txthinking.com/talks/articles/brook-clean-the-web-en.article
使用 Brook 净化互联网
https://www.txthinking.com/talks/articles/brook-clean-the-web.article
# Brook v20240606
## CLI
- Each subcommand has a
-
-
-
-
-
-
-
-
-
-
-
-
## GUI
- support
- support
- Fake DNS and Block Google Secure DNS module have been enabled by default.
## tun2brook v20240607
https://github.com/txthinking/tun2brook
## Documentation
https://brook.app
## CLI
- Each subcommand has a
--example
argument, for example brook server --example
-
brook link --token
: A token represents a user's identity. A string encoded in hexadecimal. Server needs to have --userAPI enabled. Note that: Only supported by the brook GUI(except for OpenWrt) and tun2brook. However, it is more recommended to use the user system to build token with brook link, such as brook-user-system.-
brook --userAPI
: When you build your own user system, Brook Server will send GET request to your userAPI to check if token is valid, for example: https://your-api-server.com/a_unpredictable_path. Yes, it is recommended to add an unpredictable path to your https API, of course, you can also use the http api for internal network communication. The request format is https://your-api-server.com/a_unpredictable_path?token=xxx. When the response is 200, the body should be the user's unique identifier, such as user ID; all other status codes are considered to represent an illegitimate user, and in these cases, the body should be a string describing the error. It should be used with --serverLog and server/wsserver/wssserver/quicserver with brook protocol. For more information, please read https://github.com/txthinking/brook/blob/master/protocol/user.md-
brook --userAPIValidCacheTime
: Once a token is checked and valid, the userAPI will not be requested to validate again for a certain period (s). A reasonable value must be set, otherwise it will affect the performance of each incoming connection (default: 3600)-
brook --userAPIInvalidCacheTime
: Once a token is checked and invalid, the userAPI will not be requested to validate again for a certain period (s). A reasonable value must be set, otherwise it will affect the performance of each incoming connection. Note that this may affect the user experience, when you change the user status from invalid to valid in your user system. (default: 1800)-
brook --tag
: Tag can be used to the process, will be append into log or serverLog, such as: 'key1:value1'. All tags will also be appended as query parameters one by one to the userAPI-
brook --pid
: A file path used to store pid. Send SIGUSR1 to me to reset the --serverLog file on unix system-
brook --blockDomainList
: One domain per line, suffix match mode. https://, http:// or local file absolute path. Like: https://raw.githubusercontent.com/txthinking/brook/master/programmable/list/example_domain.txt. Works with server/wsserver/wssserver/quicserver-
brook --blockCIDR4List
: One CIDR per line, https://, http:// or local file absolute path, like: https://raw.githubusercontent.com/txthinking/brook/master/programmable/list/example_cidr4.txt. Works with server/wsserver/wssserver/quicserver-
brook --blockCIDR6List
: One CIDR per line, https://, http:// or local file absolute path, like: https://raw.githubusercontent.com/txthinking/brook/master/programmable/list/example_cidr6.txt. Works with server/wsserver/wssserver/quicserver-
brook --blockGeoIP
: Block IP by Geo country code, such as US. Works with server/wsserver/wssserver/quicserver-
brook --blockListUpdateInterval
: Update list --blockDomainList,--blockCIDR4List,--blockCIDR6List interval, second. default 0, only read one time on start (default: 0)-
brook link --udpoverstream
: When server is brook quicserver, UDP over Stream. Under normal circumstances, you need this parameter because the max datagram size for QUIC is very small. Note: only brook CLI and tun2brook suppport for now (default: false)## GUI
- support
brook link --fragment
- support
brook link --token
. However, it is more recommended to use the user system to build token with brook link, such as brook-user-system- Fake DNS and Block Google Secure DNS module have been enabled by default.
## tun2brook v20240607
https://github.com/txthinking/tun2brook
## Documentation
https://brook.app
Because Google plans to shut down the Cloud Source Repositories service on June 17, 2024, I have to migrate the existing build system. During this process, there may be some fluctuations in the api of my products, for which I apologize. I will carry out the migration in small steps to keep the fluctuations to a minimum.
How to Use Shiliew to Unlock TikTok
https://www.txthinking.com/talks/articles/shiliew-tiktok-en.article
如何使用 Shiliew 解锁 TikTok
https://www.txthinking.com/talks/articles/shiliew-tiktok.article
https://www.txthinking.com/talks/articles/shiliew-tiktok-en.article
如何使用 Shiliew 解锁 TikTok
https://www.txthinking.com/talks/articles/shiliew-tiktok.article
mad v20240923
https://github.com/txthinking/mad/releases/tag/v20240923
- bugfix
- add
- add
- add
- add
- Deprecated:
- add
- add
https://github.com/txthinking/mad/releases/tag/v20240923
- bugfix
- add
mad ca --start
: Certificate valid start time, such as: '2024-09-22T13:07:38+08:00'. If empty, it is the current time- add
mad ca --end
: Certificate valid end time, such as: '2024-09-22T13:07:38+08:00'. If empty, it is start time add 10 years- add
mad cert --start
: Certificate valid start time, such as: '2024-09-22T13:07:38+08:00'. If empty, it is the current time- add
mad cert --end
: Certificate valid end time, such as: '2024-09-22T13:07:38+08:00'. If empty, it is start time add 10 years- Deprecated:
mad cert --ca_key
- add
mad cert --caKey
: ROOT Key file path (default: "ca.key.pem")- add
mad cert --commonName
: If empty, the first domain or IP will be usedGitHub
Release v20240923 · txthinking/mad
bugfix
add mad ca --start: Certificate valid start time, such as: '2024-09-22T13:07:38+08:00'. If empty, it is the current time
add mad ca --end: Certificate valid end time, such as: '2...
add mad ca --start: Certificate valid start time, such as: '2024-09-22T13:07:38+08:00'. If empty, it is the current time
add mad ca --end: Certificate valid end time, such as: '2...