Closed antontkv closed 1 year ago
Доброго дня, спасибо за Ваш комментарий
Вы пробывали Ваши правки? Они работают? Если так, то жду Ваш Pull Request
И спасибо за посильное участие.
Да, работают. Для себя я сделал две быстрые правки.
Здесь переделал строку.
-host=$(echo "${line}" | sed 's/^.*\.\(.*\.\w\{2,6\}\)$/\1/')
+host=$(echo "${line}")
Чтобы не удалять поддомены при добавление в dnsmasq.
И здесь:
-echo "${host}" | grep -q '\*' && test_it=0 || test_it=1
+echo "${host}" | grep -q '\*' && test_it=0 || test_it=0
Чтобы убрать проверку для хостов у которых нет * в начале, если у них не назначен IP.
Для проверки можно использовать команду traceroute -p 443 host
, на подключенном к роутеру компьютеру, чтобы узнать через какой шлюз идет маршрут до определенного хоста. Если через шлюз VPN, значит обход работает, если через шлюз провайдера, значит обход не работает.
Например возьмем twimg.com
с конфигом в dnsmasq:
ipset=/twimg.com/unblock
server=/twimg.com/127.0.0.1#9153
Сам домен twimg.com
не имеет IP адрес, но у него есть несколько поддоменов, которые будут идти через VPN. То есть достаточно добавить родительский домен, чтобы все домены тоже шли через VPN.
$ traceroute -p 443 abs.twimg.com
traceroute to cs510.wpc.edgecastcdn.net (152.199.21.141), 64 hops max
1 192.168.1.1 0.687ms 0.517ms 0.505ms <-- роутер
2 10.3.0.1 148.710ms 148.295ms 149.836ms <-- шлюз VPN
traceroute -p 443 pbs.twimg.com
traceroute to cs672.wac.edgecastcdn.net (192.229.173.16), 64 hops max
1 192.168.1.1 0.657ms 0.469ms 0.536ms <-- роутер
2 10.3.0.1 148.525ms 148.539ms 148.301ms <-- шлюз VPN
Другой пример домен xsts.auth.xboxlive.com
с конфигом в dnsmasq:
ipset=/xsts.auth.xboxlive.com/unblock
server=/xsts.auth.xboxlive.com/127.0.0.1#9153
Родительский домен будет идти через провайдера:
$ traceroute -p 443 xboxlive.com
traceroute to xboxlive.com (20.53.203.50), 64 hops max
1 192.168.1.1 0.661ms 0.595ms 0.552ms <-- роутер
2 145.255.20.249 1.029ms 0.946ms 0.939ms <-- шлюз провайдера
Другой поддомен будет идти тоже через провайдера:
$ traceroute -p 443 auth.xboxlive.com
traceroute to auth360.trafficmanager.net (52.143.85.83), 64 hops max
1 192.168.1.1 0.629ms 0.536ms 0.464ms <-- роутер
2 145.255.20.249 1.076ms 0.914ms 0.923ms <-- шлюз провайдера
А вот конкретный домен xsts.auth.xboxlive.com
будет идти через VPN:
$ traceroute -p 443 xsts.auth.xboxlive.com
traceroute to xsts.auth.xboxlive.com.akadns.net (52.156.147.113), 64 hops max
1 192.168.1.1 0.625ms 0.507ms 0.506ms <-- роутер
2 10.3.0.1 148.077ms 148.323ms 148.449ms <-- шлюз VPN
Для нормального PR мои текущий "костыли" не подойдут, поэтому сам PR сделаю, когда подготовлю нормальную версию кода.
Отличная работа. Если не трудно - напишите мне на kvas собачка zeleza.ru
Здравствуйте.
У меня есть несколько замечаний, по текущей конфигурации dnsmasq, которые я считаю не совсем корректными.
Использования wildcard (*) для "ловли" поддоменов.
dnsmasq сама "ловит" поддомены, любого домена указного в ipset, server и тд. То есть если конфиг будет
ipset=/example.com/unblock
, в unblock также будут попадатьsub1.example.com
,sub2.example.com
,sub1.sub2.example.com
и любые другие поддомены любого уровня.Пример и описание из примера конфигурации из репозитория dnsmasq:
Использование же wildcard (*) больше приводит к ошибкам, таким как здесь.
Удаление поддоменов при добавлении домена в конфигурацию dnsmasq
При добавлении в конфиг dnsmasq у домена убираются все поддомены через регулярку.
Есть ли в этом какой-то смысл? Потому что я не могу понять для чего это сделано. У меня есть несколько примеров, где мне не нужно добавлять весь домен в обход блокировки, а только определенный поддомен. И сейчас, это не возможно сделать, не изменив исходники скриптов.
Несколько примеров:
Для ChatGPT мне нужно добавить поддомен
openaiapi-site.azureedge.net
, чтобы обойти его блокировку по стране. Так как сейчас все реализовано, в обход добавится весьazureedge.net
и все поддомены, а это огромный CDN, ширина VPN не у всех большая и из-за этого множество контента, который хостится на этом CDN будет грузиться медленно.Есть блокировка у Xbox, которая осуществляется при логине и выходит ошибка, что сервис не доступен в данном регионе. Если пустить
xsts.auth.xboxlive.com
домен через VPN, то ошибка пропадает. Опять же, с текущей реализацией весь доменxboxlive.com
и все его поддомены будут идти через VPN, что скажется на скорость всех сервисов, которые там хостятся.Если посчитаете, эти замечания достаточно важными, чтобы их исправить, то могу подготовить Pull Request с исправлениями.