https://github.com/akiyamov/singbox-ech-list
Список сайтов которые используют/не используют Encrypted Client Hello(ECH)
https://github.com/akiyamov/singbox-ech-list
amnezia amnezia-vpn ech sing-box sing-box-ruleset xray
Last synced: 24 days ago
JSON representation
Список сайтов которые используют/не используют Encrypted Client Hello(ECH)
- Host: GitHub
- URL: https://github.com/akiyamov/singbox-ech-list
- Owner: Akiyamov
- Created: 2024-10-19T13:38:57.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-05-03T06:17:28.000Z (about 2 months ago)
- Last Synced: 2026-05-03T08:33:52.953Z (about 2 months ago)
- Topics: amnezia, amnezia-vpn, ech, sing-box, sing-box-ruleset, xray
- Language: Go
- Homepage:
- Size: 17.6 KB
- Stars: 14
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# singbox-ech-list
Список сайтов которые используют/не используют Encrypted Client Hello(ECH)
## Contributors
* [mirdukkkkk](https://github.com/mirdukkkkk) переписал с нуля скрипт и добавил параллелизм, а также CI уже на самом гитхабе, так что теперь мой дженкинс может спать спокойно.
## Зачем
После того как Cloudflare включил ECH часть сайтов стала доступна без проксирования. Это получается из-за того, что ТСПУ видит домен cloudflare вместо настоящего домена сайта и, таким образом, ТСПУ не может отработать и пустить трафик. Для работы нужно использовать любой DoH/DoT DNS, желательно не из России, так как они могут попросту вырезать айпи.
Идея взята у [Ori с ntc.party](https://ntc.party/t/%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-esni-encrypted-sni-%D0%B2-%D1%80%D0%BE%D1%81%D1%81%D0%B8%D0%B8/68/58).
Скрипт перебирает домены из [Re:filter](https://github.com/1andrevich/Re-filter-lists) и с помощью `dig` отбирает домены без ech. После этого sing-box создает rule-set, который можно использовать для обхода.
## Как поставить
### Прямые ссылки на файлы
* V2fly/Xray DAT https://github.com/Akiyamov/singbox-ech-list/releases/latest/download/ech.dat
* Sing-box ECH Rule-set https://github.com/Akiyamov/singbox-ech-list/releases/latest/download/domains_ech.srs
* Sing-box NoECH Rule-set https://github.com/Akiyamov/singbox-ech-list/releases/latest/download/domains_noech.srs
* AmneziaVPN NoECH JSON https://github.com/Akiyamov/singbox-ech-list/releases/latest/download/amnezia.json
* DNSMasq+NFTables https://github.com/Akiyamov/singbox-ech-list/releases/latest/download/domains_noech_dnsmasq.lst
### Xray
Нажмите сюда, чтоб раскрыть
Закинуть [DAT файл](https://github.com/Akiyamov/singbox-ech-list/releases/latest/download/ech.dat) в /usr/share/xray и в конфиге `routing` прописать:
```json
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"outboundTag": "proxy",
"domain": [
"ext:ech.dat:domains_noech"
]
},
{
"type": "field",
"outboundTag": "freedom",
"domain": [
"ext:ech.dat:domains_ech"
]
}
]
}
```
### Sing-box
Нажмите сюда, чтоб раскрыть
Скрипт генерирует готовый [rule-set](https://sing-box.sagernet.org/configuration/rule-set/), поэтому достаточно его импортировать в ваш конфиг
rule-set для доменов без ech
```json
{
"route": {
"rule_set": [
{
"download_detour": "bypass",
"format": "binary",
"tag": "no_ech",
"type": "remote",
"url": "https://github.com/Akiyamov/singbox-ech-list/releases/latest/download/domains_noech.srs"
}
],
}
}
```
rule-set для доменов с ech
```json
{
"route": {
"rule_set": [
{
"download_detour": "bypass",
"format": "binary",
"tag": "ech",
"type": "remote",
"url": "https://github.com/Akiyamov/singbox-ech-list/releases/latest/download/domains_ech.srs"
}
],
}
}
```
### Amnezia
Нажмите сюда, чтоб раскрыть
Скрипт генерирует список для AmneziaVPN, который скачать можно [здесь](https://github.com/Akiyamov/singbox-ech-list/releases/latest/download/amnezia.json). Для этого в разделе "Раздельное туннелирование" нужно выбрать в выпадающем списке "Только адреса из списка должны открываться через VPN" и импортировать список. Самому приложению станет плохо. Очень плохо. После перезапуска приложение будет нормально работать. Все это настроено было у друга и лично не проверял.
### itdog/dnsmasq+nftables
Нажмите сюда, чтоб раскрыть
В данном способе сайты маршрутизируются по схеме от [itdog](https://habr.com/ru/articles/767464/), для настройки потребуется поменять родной скрипт getdomains. Он расположен в `/etc/init.d/getdomains`.
```sh
#!/bin/sh /etc/rc.common
START=99
start () {
# DOMAINS=https://raw.githubusercontent.com/itdoginfo/allow-domains/main/Russia/inside-dnsmasq-nfset.lst
count=0
while true; do
if curl -m 3 github.com; then
wget -qO /tmp/dnsmasq.d/domains.lst https://github.com/Akiyamov/singbox-ech-list/releases/latest/download/domains_noech_dnsmasq.lst
#curl -f $DOMAINS --output /tmp/dnsmasq.d/domains.lst
break
else
echo "GitHub is not available. Check the internet availability [$count]"
count=$((count+1))
fi
done
if dnsmasq --conf-file=/tmp/dnsmasq.d/domains.lst --test 2>&1 | grep -q "syntax check OK"; then
/etc/init.d/dnsmasq restart
fi
}
```
## Как запустить у себя
Нужно поставить следующие пакеты:
* wget
* jq
* parallel
* bind-tools
После этого можно запускать скрипт.