Предыдущие части здесь:
Часть 1, Часть 2, Часть 3.
Если попасть в Ютуб и Телеграм кое-как получается с разными обходами, просто подбирая настройки, то с Session все оказалось сложнее. Он открывает соединения не как обычный HTTPS, использует свой routing, часто задействует UDP и потому легче распознается DPI.
Придется попасть в него другим путем, хотя у других сработали обходы, когда клиентом была Amnezia.
Буду использовать сервер, на котором установлен Ubuntu. Для начала хочу устанавливать программу WireGuard:
apt install -y wireguard
Далее узнаем имя своего сетевого интерфейса:
ip a
Вам нужно увидеть что-то типа eth0, ens3, ens18 или enpls0, у меня получился eth0:
![]()
На сервере командой генерируем ключи:
wg genkey | tee /root/server_private | wg pubkey > /root/server_public
А затем проверяем, что он получились:
cat /root/server_private
и:
cat /root/server_public
А затем делаем файл с ключами, где строка 1 → server_private, а строка 2 → server_public:
cat /root/server_private /root/server_public > /root/wg_keys.txt
и получаем их через FileZilla в папке /root/ :

Создаем конфиг из чистого текстового файла под названием wg0.conf и через Visual Code помещаю в него следующую программу, заменяя слова приватным ключом:
[Interface]
Address = 10.10.0.1/24
ListenPort = 40000
PrivateKey = ВАШ_PRIVATE_КЛЮЧ_СЕРВЕРА
PostUp = sysctl -w net.ipv4.ip_forward=1
PostUp = iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE
[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА
AllowedIPs = 10.10.0.2/32

Конфиг помещаем на сервер в папку /etc/wireguard/

Возвращаемся на сервер и в командной строке запускаем права конфигу:
chmod 600 /etc/wireguard/wg0.conf
А затем запускаем сервис несколькими командами:
systemctl enable wg-quick@wg0
и:
systemctl start wg-quick@wg0
а затем проверяем:
wg
если не стартанул – узнаем причину:
systemctl status wg-quick@wg0 --no-pager

У меня ключ имел неверный формат, один лишний символ ломает конфиг, исправляю, перезапускаю:
systemctl restart wg-quick@wg0
и снова проверяю:
wg

Теперь скачиваю клиент wireguard windows, точнее wireguard-installer.exe.

а на андроиде нужен WireGuard

Нажимаю «добавить пустой тунель» — не из файла, откроется окно, где уже заполнен сгенерированный клиентом ключ.

Даем название, меняем содержимое , ключ клиента не трогаем, остальное так, вместo текста ставим ключ из второй строки и ip вашего сервера:
[Interface]
PrivateKey = ВАШ_КЛИЕНТСКИЙ_PRIVATE_КЛЮЧ
Address = 10.10.0.2/24
DNS = 8.8.8.8, 1.1.1.1
MTU = 1280
[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА
Endpoint = IP_СЕРВЕРА:40000
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 15
Сохраняю, затем жму «подключить» — и интернет у меня благополучно отваливается

А все потому, что сервер еще не знаком с нашим клиентов и ему нужно скормить тот самый ключ, который клиент сам сгенерировал. Потому сначала заходим в наш конфиг в папку /etc/wireguard/wg0.conf через FileZilla. В конфиге добавляем в самом низу команду:
[Peer]
PublicKey = сгенерированный_клиентом_ключ
AllowedIPs = 10.10.0.2/32
Сохраняем, заливаем обратно и перезапускаем программу на сервере:
systemctl restart wg-quick@wg0
Но лучше сразу перезагрузить интерфейс, чтоб сервер увидел изменения:
systemctl stop wg-quick@wg0
затем:
systemctl start wg-quick@wg0
и проверяем:
wg
У нас должна появиться строка peer со своим ключом:

Кстати порт мне пришлось менять – в конфиге, клиенте, и выставить 40000, потому на скринах отображается другой, если тоже будете подбирать, то вот команды перезапуска программы
1
wg-quick down wg0
2
wg-quick up wg0
3
wg
Если после подключения интернет пропадает – вводим команду на сервере для проверки FORWARD:
iptables -L FORWARD –n
Если вам выдает policy DROP – жмем
iptables -P FORWARD ACCEPT
И сохраняем наше созданное правило:
apt install -y iptables-persistent
после чего сервер перезагрузится, очаровав вас надписью на фиолетовом:

В боковой панели жму «yes» и жду окончания обновлений:

Затем снова запускаю клиент и проверяю айпи и скорость интернета, а затем проверяю все через поход в Session. Финальный вариант в клиенте у меня выглядит так:

И после сохранения:

И теперь самое интересное: после месяца головняка с серверами у меня уже спортивный интерес слепить новый обход. Но мне до сих пор не удается некоторым пояснить разницу меду клиентом и ВПН. Потому мне придется вместо настроек дать человеку на тест готовый обход.
Для этого в клиенте правой кнопкой мыши выбираю экспорт всех туннелей в zip-архив, а потом пересылаю его себе на телефон или человеку, а он уже загружает и открывает через WireGuard. Это не совсем верно, потому сделаю иначе.
Для тех, кто не любит архивы и предпочитает QR – код, покажу, как можно его сделать.
Для начала делаю новый конфиг из текстового документа под названием client1.conf
Вставляю копированием в него с помощью Visual Code все, что у нас находится тут:

Затем сохраняю и помещаю с помощью FileZilla в папку /root

На сервере в командной строке выполняю следующую команду:
qrencode -o client1.png client1.conf
Для начала ставлю программу на сервере командой:
apt install -y qrencode
И проверяем командой:
ls
Должны увидеть client1.png, но у меня там стоит другой обход, потому прямо в терминале получаю qr-код командой:
qrencode -t ansiutf8 < client1.conf
Он у меня получился какой-то кривой, потому client1.png открываю в FileZilla и нахожу там файл:

Открываю его и нахожу готовый qr-код, которым уже можно делиться. На телефоне открываю WireGuard и сканирую им код, программа просит у меня дать имя туннелю. Рандомно ввожу, что хочу, например, цифру и подключаюсь. В Session зайти можно, а большего от него и не требовалось, хотя сработал, как полноценный обход.
ПРОКСИ ДЛЯ ТЕЛЕГРАМ
И по многочисленным просьбам трудящихся на фоне текущих замедлений отдельно опишу создание прокси для Телеграмм.
Для начала устанавливаю командой программу MTProto
Так как у меня AlmaLinux то устанавливаю программу MTProto через Podman:
dnf install -y podman
Проверяем:
podman –version
И затем проверяем порт, например 8888:
ss -ltnp | grep :8888
И запускаем контейнер MTProto:
сначала генерим secret в файл (потом взять через FileZilla:
openssl rand -hex 16 > /root/mtproto_secret.txt
затем запускаем контейнер:
podman run -d --name mtproto -p 8888:443 \
-e SECRET=$(cat /root/mtproto_secret.txt) \
docker.io/telegrammessenger/proxy
Смотрим лог и получаем ссылку для телеграмм:
podman logs mtproto

Так как копировать неудобно, а переписывать лень, то создаю документ с ссылкой, которую потом тоже возьму через FileZilla:
echo "tg://proxy?server=109.94.209.252&port=443&secret=aec905e2311056d6b1c85e52f6e2fa82" > /root/tg_proxy.txt
И получаю ссылку в FileZilla в папке:
/root/tg_proxy.txt

Ссылку помещаю в избранное, создаю себе чат и отправляю себе же, а затем открываю, нажимаю «включить прокси» — и Телеграмм умирает…

Если подключение не удалось, его отключают, зайдя в настройки Телеграмм, продвинутые настройки и отключают ненужное прокси. У меня Телеграмм подключиться предложил на 443 порту, а обход должен был быть на 8888.
Проверяю:
podman ps
и нахожу там уже известную Amnezia, начинаю чинить:
podman stop mtproto
затем:
podman rm mtproto
И после этого уже запускаю на 8899 порту нашу программу:
podman run -d --name mtproto -p 8899:443 \
-e SECRET=$(cat /root/mtproto_secret.txt) \
docker.io/telegrammessenger/proxy
затем создаю новую ссылку:
echo "tg://proxy?server=109.94.209.252&port=8899&secret=$(cat /root/mtproto_secret.txt)" > /root/tg_proxy_fixed.txt
И забираю ее через FileZilla.
/root/tg_proxy_fixed.txt

Если у вас получилось любое подключение с первого раза – жизнь ваша, конечно, хорошая, но скушная…

Теперь у меня все работает, очень надеюсь, что у вас тоже.

Ели же у вас Ubuntu/Debian, то набор команд немного другой, но принцип тот же – надо поставить MTProto:
apt update
и:
apt install -y docker.io openssl
Затем запуск:
systemctl enable --now docker
и проверка:
docker –version
Проверяю тот же порт, что и на прошлом сервере:
ss -ltnp | grep :8899
А далее как раньше:
Сначала надо сгенерировать секрет в файл (чтобы брать через FileZilla):
openssl rand -hex 16 > /root/mtproto_secret.txt
Затем запускаю MTProto proxy контейнер:
docker run -d --name mtproto --restart=always -p 8899:443 -e SECRET=$(cat /root/mtproto_secret.txt) telegrammessenger/proxy
Проверяете порт в firewall (если UFW включён, у меня был выключен еще с момента проверки под создание других вариантов):
ufw status
Когда аctive:
ufw allow 8899/tcp
И снова делаю ссылку в текстовый файл для FileZilla:
echo "tg://proxy?server=IP_СЕРВЕРА&port=8899&secret=$(cat /root/mtproto_secret.txt)" > /root/tg_proxy.txt
И забираю ссылку в FileZilla из файла tg_proxy.txt в папке:
/root/tg_proxy.txt
Надеюсь, что подключение в Телеграмм вы уже освоили.
Но если вы захотите поделиться ссылкой, то не забывайте, что у вас виден айпи сервера. Его лучше заменить на свой домен, а ссылка будет работать. Такой айпи все равно вычислить можно, просто он не бросается в глаза.
айпи.server это proxy.твойподдомен.домен.com с серым облаком, который указывает на твой сервер – и можем даже поделиться с семьей. Важно помнить: для каждого отдельного устройства нужно заново подключать прокси на Телеграмм, а выключить можно просто перезагрузив устройство

С предыдущими частями можно ознакомиться здесь:
Часть 1, Часть 2, Часть 3.
Отправить ответ
Для отправки комментария вам необходимо авторизоваться.