Обход блокировки OpenVPN в Египте — актуализация 2026
автор оригинала: UserAd (UserAd)
Обход блокировки OpenVPN в Египте
Архивное переиздание с актуализацией. Оригинал опубликован на Habr (≈2020), автор — UserAd (UserAd). оригинал скрыт на Habr (HTTP 403/451), доступен только через Wayback Machine Снимок: Wayback Machine. Ниже — редакция ноября 2026: что работает сейчас, что изменилось и как правильно повторить рецепт сегодня. Полный текст оригинала — в конце, без купюр.
TL;DR — версия 2026
OpenVPN для обхода блокировок в 2026 не годится — сигнатуры известны DPI. Но как корпоративный remote-access за TLS-фронтендом или на порту 443/tcp он жив и поддерживается.
Оригинал был написан, когда OpenVPN был синонимом слова «VPN». В 2026 у него узкая, но честная роль: корпоративный доступ, там, где обфускация не нужна, а нужна зрелость — PKI, MFA, аудиты, клиент под каждую платформу. Для обхода цензуры он проигрывает по всем пунктам: ТСПУ (DPI-боксы) стоят у всех крупных российских провайдеров и умеют резать VPN-хендшейки WireGuard, OpenVPN и «голый» Shadowsocks, а классический OpenVPN-хендшейк — первый в их списке: Египет, Иран, Китай и РФ режут его годами. фактическим стандартом антицензурного туннелирования в 2026 стал VLESS + REALITY (Xray-core): он маскируется под обычный HTTPS-трафик к крупному сайту и не требует собственного домена и сертификата.
Статус оригинала
- URL: https://habr.com/ru/post/652289/
- Статус на Habr: СКРЫТА (403)
- Снимок: http://web.archive.org/web/20240228134101/https://habr.com/ru/articles/652289/
- Картинки: 0/0 сохранено локально
Куда мигрировать, если задача — антицензура
Простая табличка 2026: обфусцированный туннель = AmneziaWG; маскировка под HTTPS = VLESS+REALITY; корпоративный remote access = OpenVPN/TLS или Headscale/Tailscale поверх WG; мобильные сотрудники = AmneziaVPN self-hosted. Оригинальные shell-скрипты «openvpn-do-安装» в 2026 почти все мертвы — авторы их удалили вместе со статьями.
Что оставить из оригинального гайда
Всё про PKI честно и сейчас: корневой CA, сертификаты сервера/клиента, CRL — та же связка easy-rsa 3, что и в статье. tls-crypt вместо tls-auth (скрывает сам факт OpenVPN на порту), data-ciphers AES-256-GCM:CHACHA20-POLY1305, топология subnet, push "block-outside-dns" для Windows-клиентов — базовый скелет 2026 тот же.
Что менять срочно
- UDP/1194 → TCP/443 за nginx/stunnel, либо
shared secretв cloaking; tls-auth→tls-crypt(метаданные рукопожатия больше не видны);- директивы
cipherв старых конфигах игнорируются OpenVPN 2.6+ — всё задаётсяdata-ciphers; - добавьте MFA (pam + TOTP или Keycloak), парольные фразы сертификатов в 2026 не защита;
- Docker-сети из «админ удаленку облегчал»-статей — проверяйте
--cap-add NET_ADMINи подсеть не конфликтует с k8s CNI.
Что изменилось с ≈2020 года
- OpenVPN 2.6/2.7:
data-ciphers,tls-cryptпо умолчанию ожидаемо, поддержка DCO (ускорение в ядре) - EasyRSA 3.2,
/etc/openvpn/easy-rsaпереехал — пути из старых статей не совпадают - провайдеры VPS массово закрывают 1194/udp для новых аккаунтов
- старые клиенты OpenVPN Connect не понимают современные конфиги без обновления
- в тексте оригинала: Python 2 мёртв с 2020 года
- в тексте оригинала: shadowsocks-libev почти не развивается — актуален sing-box/Xray
- в тексте оригинала: классический OpenVPN легко детектится DPI (используется в корпсредах, но не для обхода блокировок)
Чек-лист 2026
- TCP/443 + tls-crypt
- data-ciphers без устаревших CBC
- MFA на подключение
- CRL и автоматический отзыв
- логи — минимум, и не в РФ-юрисдикцию
Вердикт
Если вы читаете это, чтобы «настроить VPN как в статье» — не надо: берите WireGuard/AWG или VLESS. Если вы админ и вам нужен remote-access с PKI и аудитом — оригинальная статья после микро-правок выше всё ещё рабочий документ.
ОРИГИНАЛ СТАТЬИ (без изменений)
Во время поездки в отпуск в Египет я приобрел сим карту местного оператора и решил посмотреть как быстро будет (по сравнению с традиционно медленным wifi отеля) работать интернет включая подключение к нашей внутренней инфраструктуре.
Поскольку власти Египта используют DPI для блокирования VPN стандартный OpenVPN не работает, так как блокируются авторизационные пакеты как по tcp, так и по UDP.
Для подключения к VPN мы используем OpenVPN работающий поверх UDP и в некоторых случаях TCP. Конфигурация практически одинаковая, за исключением диапазонов IP адресов.
Поскольку OpenVPN является основным транспортом для меня я не смотрел на другие VPN решения.
Настройки для тестирования
Для тестирования скорости был использован iperf со стандартными настройками. Под debian и ubuntu он устанавливается пакетом iperf
#Установка
sudo apt install iperf
#Запуск
iperf -s
Модификации конфигурации openvpn конфига для клиента
Для соединений без SOCKS5 были изменены следующие параметры:
;3444 - порт на котором находится выход туннеля
remote 127.0.0.1 3443 tcp
; VPN_SERVER - адрес VPN сервера, так что трафик на него будет идти напрямую
route VPN_SERVER_IP 255.255.255.255 net_gateway
Для соединений с SOCKS5 были изменены следующие строки:
socks-proxy-retry
; 10194 - порт на котором socks сервер слушает соединения
socks-proxy 127.0.0.1 10194
; VPN_SERVER - адрес VPN сервера, так что трафик на него будет идти напрямую
route VPN_SERVER_IP 255.255.255.255 net_gateway
Софт для обхода блокировок
Были рассмотрены следующие пакеты сокрытия openvpn:
ssh tunnel
obfsproxy
stunnel
shadowsocks
SSH Tunnel
Является самым простым методом и работает по принципу заворачивания траффика в через SSH
ssh -L 1443:127.0.0.1:1443 VPN_SERVER
obfsproxy
Является частью TOR project, работает как SOCKS5 прокси и обфусцирует все пакеты внутри.
Установка требует python 2.X ветки, так как пакет не обновлен еще.
pip install obfsproxy
На сервере необходимо запустить серверную часть:
obfsproxy --log-file=obfsproxy.log --log-min-severity=info obfs2 --dest=127.0.0.1:1443 --shared-secret=SOMESHAREDSECRET123 server 0.0.0.0:21194
А на клиенте часть к которой будет подключаться OpenVPN
obfsproxy --log-file=obfsproxy.log --log-min-severity=info obfs2 --shared-secret= SOMESHAREDSECRET123 socks 127.0.0.1:10194
stunnel
Инструмент общего назначения предназначенный для заворота любого вида траффика в SSL туннель, поддерживает множественные эндпоинты.
Для установки под debian и ubuntu надо установить пакет stunnel:
sudo apt install stunnel4
На сервере необходимо создать файл конфигурации stunnel.conf в директории /etc/stunnel4/ cсо следующим содержимым:
pid = /var/run/stunnel4/stunnel.pid
output = /var/log/stunnel4/stunnel.log
setuid = stunnel4
setgid = stunnel4
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
options = NO_SSLv2
options = SINGLE_ECDH_USE
options = SINGLE_DH_USE
[openvpn]
cert=/etc/letsencrypt/live/vpn.example.com/fullchain.pem
key=/etc/letsencrypt/live/vpn.example.com/privkey.pem
accept = 0.0.0.0:3443
connect = 127.0.0.1:1443
Сертификаты могут быть как самоподписанные так и от letsencrypt
На клиенте надо создать файл клиента со следующим содержимым:
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
options = NO_SSLv2
options = SINGLE_ECDH_USE
options = SINGLE_DH_USE
[openvpn]
sni = nothing.interesting.here.example.com
client = yes
accept = 127.0.0.1:3443
connect = VPN_SERVER_IP:3443
shadowsocks
Для установки необходимо поставить пакет shadowsocks-libev
sudo apt install shadowsocks-libev
Конфигурационный файл /etc/shadowsocks-libev/config.json для сервера надо привести к следующему виду:
{
"server":["0.0.0.0"],
"mode":"tcp_only",
"server_port":7433,
"local_port":8043,
"password":"SOME_BIG_RANDOM_PASSWORD",
"timeout":60,
"method":"chacha20-ietf-poly1305"
}
Для клиента я на MacOS использовал ShadowsocksX-NG
Результаты тестирования
Для тестирования iperf был размещен на том-же сервере что и OpenVPN.
Транспорт
Скорость
% от скорости без VPN
SSH Tunnel
807 Kbit/sec
7.14%
stunnel
6.53 Mbit/sec
57.79%
shadowsocks
3.91 - 6.31 Mbit/sec
34.6% - 55.84%
obfsproxy
1.85 Mbit/sec
16.37%
| Транспорт | Скорость | % от скорости без VPN | | SSH Tunnel | 807 Kbit/sec | 7.14% | | stunnel | 6.53 Mbit/sec | 57.79% | | shadowsocks | 3.91 - 6.31 Mbit/sec | 34.6% - 55.84% |
| obfsproxy | 1.85 Mbit/sec | 16.37% |
|---|
Наилучшие результаты показали stunnel и shadowsocks.
Выбор метода зависит от ситуации и, возможно, в других условиях могут отличаться результаты.
Данное исследование было проведено исключительно из-за необходимости иметь доступ к инфраструктуре.