Как стать автором
Поиск
Написать публикацию
Обновить

Обходим блокировку VPN

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров76K

Мой провайдер помимо замедления (читай полная блокировка) YouTube так же стал блокировать соединения с моими рабочими VPN. Работодатель не очень любит, когда на встречах на вопрос о прогрессе, я неделю отвечаю, что у меня не работает VPN! Своими действиями, мой провайдер сам меня подтолкнул к поиску обходных путей.

Сразу скажу, обходной путь придумал не сам, мне его подсказал автор проекта zapret, а точнее его комментарий, более того, я использую его проект, чтоб смотреть нормально YouTube. Спасибо огромное!

Добавлю, я использую nftables и nfqws, если этот вариант работает у меня — это не значит, что заработает и у вас! Возможно, вам придётся изменить некоторые параметры.

Первое, очень внимательно читаем комментарий по ссылке выше и штудируем, как портировать правила iptables в nftables.

$ iptables-translate -A OUTPUT -t mangle -o wlan0 -p udp --dport 443 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 220 --queue-bypass

получилось:

$ nft 'add rule ip mangle OUTPUT oifname "wlan0" udp dport 443 mark and 0x40000000 != 0x40000000 counter queue num 220 bypass'
  • wlan0 — интерфейс, через который мы ходим в сеть

  • 443 — порт подключения к VPN сервису

  • меняем OUTPUT на output

итоговая строка получается:

$ nft 'add rule ip mangle output oifname "wlan0" udp dport { 443, 18189 } mark and 0x40000000 != 0x40000000 counter queue num 220 bypass'

у меня два VPN коннекта, отсюда и два порта!

Перед запуском, проверим, что у нас есть таблица ip mangle:

$ nft list tables

если нет, создаём её и цепочку output

$ nft add table ip mangle
$ nft 'add chain ip mangle output { type filter hook output priority 0 ; }'

Смотрим, что всё создалось:

$ nft -a list table ip mangle

теперь запускаем строку с добавлением нового правила и снова проверяем, что внутри таблицы.

и последнее, запускаем демон, который маскирует пакеты отправленные на требуемые порты

$ /opt/zapret/nfq/nfqws --uid 2 --qnum=220 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d2 --dpi-desync-repeats=10 --dpi-desync-ttl=5 --daemon

обратите внимание, значение ttl у вас может отличаться. Своё я подглядел через ps aux | grep nfqws, которое стоит в демоне от zapret.

Понятно, что всё можно автоматизировать и не запускать всё руками, но мне надо было срочно. Самое главное, работает!

Теги:
Хабы:
Всего голосов 36: ↑34 и ↓2+39
Комментарии81

Публикации

Ближайшие события