Comments 59
Огромное Вам спасибо за ваш невероятно АКТУАЛЬНЫЙ труд...
Файл займет около 9Мб
Если прогнать через strip, то можно значительно уменьшить размер. По крайней мере версия для х86_64 худеет почти на 3 мегабайта.
Порт 1984, остроумно :)
Да, так разработчик придумал :)
Уже несколько лет существует коробочное решение от Amnezia VPN c клиентами для Windows, Mac, Linux, Android и iOS (iOS не поддерживает Cloak).
Немного не актуальная информация, так как поддержку Cloak (а именно OpenVPN over Cloak, который в том числе позволяет настроить связку SS + Cloak в родном клиенте SS и не только) давно ввели для iOS (с версии 3.0.7, если не ошибаюсь).
Подскажите, в shadowsocks-2022, как я понял, они исправили только производительность и безопасность, маскировка там та же, что и в оригинальном SS? То есть Cloak более перспективное решение, как и XTLS-Reality, но в отличие от последнего, попроще в настройке.
"save page as"
А хабр еще не завел себе зеркало в onion сети? Кажется самое время.
Друзья, подскажите, cloak работает только с ovpn и другими протоколами из доки или можно произвольный протокол в него завернуть? Очень пригодилось бы заворачивание в него корпоративный впн.
Насколько я знаю можно завернуть OpenVPN, Shadowsocks, а также видел, что кто-то пытался и WireGuard в него заворачивать, но не знаю, успешно ли...
Я заворачивал WireGuard через Shadowsocks скорость канала сильно проседает, чем больше накрываешь шифрованием, тем канал проседает
у меня скорость канала упал 15 - 20 %
тут не показывают какой получился результат канала после использования OpenVPN + Cloak
А не подскажете, какой был результат падения скорости в абсолютных цифрах? Сколько было и сколько стало? Какую именно реализацию Shadowsocks использовали? И пробовали после этого какие-то другие решения, тот же Cloak?
А то есть Wireguard канал между сервером в РФ и сервером за границей. Сейчас прокачивает 400-500 Мбит/с. Пока не падал, но другой Wireguard за другую границу с того же российского сервера уже пару раз отваливался, так что пора принимать меры.
Но все статьи концентрируются только на степени неуловимости всех этих новомодных протоколов, тесты скорости нашёл только из 2019 года, там немного не то и давно устарело. Хотелось бы хотя бы 300 Мбит/с сохранить, иначе грустно.
Вроде как UDP тоже добавили. "UDP support is experimental at the moment"
Правда, так и не нашел успешных примеров заворачивания WG
Вот с этим у меня wg прекрасно работает под Debian12 через cloak. Конфиг сервера от автора можно не трогать, единственно "RedirAddr" указать такой же, как "ServerName" у клиента . В конфиге интерфейса вайргард-сервера естественно указываем Listen=51000
deb-router ~ # cat /etc/cloak/ckclient.json
{
"Transport": "direct",
"ProxyMethod": "openvpn",
"EncryptionMethod": "plain",
"UID": "УИД клиента",
"PublicKey": "Пабкей сервера",
"ServerName": "dl.google.com",
"NumConn": 4,
"BrowserSig": "chrome",
"StreamTimeout": 300
}
deb-router ~ # cat /etc/systemd/system/cloak-client.service
[Unit]
Description=cloak-client
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
#Service variables
#Путь до конфига клиента
Environment=CONFIG="/etc/cloak/ckclient.json"
#Адрес VPSки с сервером cloak
Environment=SRVIPADDR=123.123.123.123
#Локальный ip-адрес на котором будет слушать cloak. В данном случае будет слушать на всех интерфейсах
Environment=LISTENLOCIP=0.0.0.0
#Локальный порт на котором будет слушать cloak. Его же прописываем как порт пира сервера в конфиге wireguard
Environment=LISTENPORT=51000
ExecStart=/usr/local/bin/ck-klient -u -i "$LISTENLOCIP" -l "$LISTENPORT" -s "$SRVIPADDR" -c "$CONFIG"
Restart=always
[Install]
WantedBy=multi-user.target
deb-router ~ # cat /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
PrivateKey =
MTU = 1380
PreUp = ip route add 123.123.123.123 via 192.168.1.1
PostUp = iptables -t nat -A POSTROUTING -o %i -s 192.168.1.0/24 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o %i -s 192.168.1.0/24 -j MASQUERADE
PostDown = ip route delete 123.123.123.123 via 192.168.1.1
#peer on cloak-server
[Peer]
PublicKey =
AllowedIPs = 0.0.0.0/0
Endpoint = 127.0.0.1:51000
PersistentKeepalive = 20
Всем рассказам про неподвластные РКН протоколы недостаёт главного - тестов скорости.
Вот в моём случае дано - OpenVPN от клиентов до российского сервера, Wireguard от российского до нероссийского. С последним вообще вопросов нет, заменю на что угодно по мере возникновения проблем, вопрос с первым. Обход блокировок там тоже есть, но как сугубо факультативная фича, основной смысл в доступе к внутренним ресурсам. А там, в т.ч., частное облако, куда иногда один сотрудник зальёт десяток-другой Гб, а у 5-10 других сотрудников они тут же начинают скачиваться... и неплохо бы, чтобы в синхронизированное состояние все они приходили через разумное время. В общем, вопрос скорости очень актуален.
Пока что, три раза "тьфу", всё это никакими тренировками РКН не затронуто и работает. Но есть планы (по другим причинам) VPN немного переделать, и учитывая все риски, неплохо бы заодно подложить соломки, чтобы на случай ковровых блокировок VPN и за границу, и внутри России, сотрудники не пострадали.
Так вот вопрос. Насколько тот же Cloak влияет на пропускную способность соединения? Зависит ли это от latency между клиентом и сервером? Можно, конечно, самому поднять тестовый сервер и проверить, но вдруг кто уже делал бенчмарки.
Вообще, 150 Мбит это очень скромно, если не сказать прямо: неприемлимо мало.
Сам пытался найти бенчмарки чтобы подобрать железо — нереально.
Спасибо за ответы. У меня такая ситуация, что пики совпадают по времени у клиентов в основном (я выше описал - частное файловое облако, очень много общих папок, в которые как один что-то выложил - сразу у всех начинает скачиваться), так что 150 Мбит/с на мои десяток пользователей - это, в целом, терпимо, но не особо радостно. Потестирую, подумаю над топологией VPN-сети, может продублирую VPN-сервер тупо через RR DNS, чтобы клиентов разнести.
А можете поделиться ссылкой на какой-нибудь гайд по BBR?
Cloak "режет" скорость примерно в два раза. Замеры делал оценочные. Сравнивал чистый openvpn и openvpn завернутый в cloak. Конечно, зависит от производительности железа с обоих сторон. Если железо не узкое место, то потери будут меньше. Как вариант, можно отключить шифрование в openvpn, cloak шифрует на своём транспортном уровне. Кроме того, если позволяет инфраструктура, можно заменить openvpn на wireguard. Он действительно быстрее в несколько раз. Проверял собственными замерами: там где openvpn выдавал 150Мбит, WG выдал 400Мбит. Но лично меня больше волнует другой вопрос - насколько cloak годится для многопользовательской работы под нагрузкой. И тут у меня большие сомнения. В гитхабе висит несколько issues с проблемами производительности, зависания, и утечки памяти. Все заявленные проблемы не разрешены, более того, автор практически не участвует в обсуждении. Репозитарий Cloak давно не обновляется. В общем, как персональное решение - сойдёт. А ставить ли его в продакшн - это большой вопрос.
Есть VPS (вне России). ОС на нём - Ubuntu server 22.04.3 LTS. На WordPress (nginx) там крутится не сильно нагруженный сайт. (На порту 443.) Есть доменное имя (типа server.com).
Туда же я присоседил сервер OpenVPN (на udp-порт). Клиентов у VPN-сервера... (одномоментно) штук до 10. Разумеется, в последнее время тот VPN стал попадать под ковровые блокировки РКН :((
Удастся ли по этому мануалу 1) прикрыть VPN Cloak`ом так, чтобы 2) все не VPN-запросы направлять на свой же сайт?
Судя по тому, что у вас в конфиге openvpn транспортом указан udp - правильно ли я понимаю, что cloak умеет пробрасывать (инкапсулировать) udp через tcp (tls)? Если так, то получается можно таким же макаром и более шустрый wireguard через всё это дело пустить? Глянул в гитхабе автора cloak примеры конфигов для openvpn, так у него там транспортом tcp указано. Очень интересует этот момент.
Здравствуйте, Cloak поддерживает OpenVPN UDP, наверняка можно и с Wireguard Cloak использовать, но я этот вопрос не изучал
Изучил. Wireguard прекрасно работает через cloak, но заметил одну интересную особенность - тестил всё это у себя через мобильный Теле2 и при указании некоторых популярных доменов как обманки в "ServerName" очень сильно троттлит трафик (по анализу SNI, видимо). Прописываешь один - скорость еле-еле и пинги космические, указываешь другой и даёт почти на всю ширину канала и пинги хорошие. Вообщем, нужно еще и доменное имя сервера-обманки хорошее подбирать. Ну и MTU оптимальный найти (у меня с 1380 нормально).
А нет того же самого но через docket?
спасибо за статью. Все получилось. Единственное что
Вы пишите: "В "BypassUID
" w2S8IMf/T4/TAC7MJZQlWw==
(при наличии нескольких пользователей каждый UID вводится в кавычках на отдельной строке, как в примере) "
Нужно еще дописать - "через запятую" иначе не работает.
Настраивал клиент под винду - Все запустилось.
Может кто то встречал описание установки cloak на андроид?
Я имею в виду чистый Cloak а не как плагин для Shadowsocks.
Спасибище! Очень вменяемый текст, редко такой встретишь. МТС последние месяцы меня просто преследовал. Облачный ВПН восстановлен - работает через Cloak. Но я админ-нуб и даже не понял, как сохранять ключи и uid для последующего ввода, пришлось считывать со скриншота. Зато файлы на сервер закачал заранее отредактированные через FileZilla. Там же определил реальное местоположение файлов OpenVPN (для sudo cat /etc/openvpn/server.conf )
А мне вот непонятно, чем плохо использовать настроенный локально или на роутере openwrt shadowsocks (и производные) клиент как socks5 прокси для подключения по openvpn в TCP режиме ?
Да, если на роутере то даже удобнее. Не надо про роутинг до SS сервера думать, чтоб мимо опенвпна шёл.
А если не хочеться строить свой SS сервер, в сети много бесплатных SS* серверов в любых странах, с неплохой скоростью.
PS: пробовал, работает отлично.
Похоже, в скрипте автозапуска клиента Cloak - /etc/init.d/cloak - одна строка обрезана:
вместо "procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${res" напрашивается "procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}"
Спасибо что заметили, исправил
Да, кроме того я в скрипте автозапуска клиента Cloak закомментировал строки
#starts after network starts
#stops before networking stops
и еще мне не удалось запустить через определение параметров как у автора (не понимаю почему) - в итоге я закомментировал и следующие строки:
#HOST="0.0.0.0"
#PORT="1984"
#CONFIG="/etc/config/cloak/ckclient.json"
В итоге строка
procd_set_param command "HOST" -u -l "CONFIG"
в моем случае выглядит так
procd_set_param command /usr/bin/ck-client -c /etc/config/cloak/ckclient.json -s xxx.xxx.xxx.xxx -u
где xxx.xxx.xxx.xxx соотв ip вашего сервера.
И еще пришлось добавить новое правило на фаервол , что lan может общаться с роутером а вот выходить в инет может только tun0
С такими изменениями все прекрасно заработало.
Огромное спасибо автору и всем кто помог!
РКН похоже научился блокировать вне зависимости от прокола - сегодня через Билайн не работает ни ss, ни cloak, ни v2ray (без сертификатов и CDN).
Несколько пакетов пролетает и дальше порт блокируется совсем для этого IP. Пока не понял на какой срок и с соседнего айпи доступ есть как будто оно срабатывает только после накопления статистики.
HOST="0.0.0.0"
Я бы в примере конфига изменил адрес на любой адрес предназначенный для примеров. Четыре нуля сбивают с толку.
Спасибо за статью и коментарии. По следам ещё одной старой статьи сделал схему
/-> openvpn/tcp (cloaked)
| -> openvpn/udp (cloaked)
| -> wireguard (cloaked)
ck-server -| /-> ssh
\->sslh (redir) -| -> https
\-> openvpn/tcp
Успешно работают все протоколы. Без обфускации openvpn и wireguard на моих операторах связи (проводной Интерсвязь и мобильный МТС в Челябинске) блокируются в данный момент. Так же попробовал такой вариант:
/-> openvpn/tcp
| -> http
sslh -| -> https /-> openvpn/tcp (cloaked)
| -> ck-server -| -> openvpn/udp (cloaked)
\-> ssh \-> wireguard (cloaked)
Тоже работают все протоколы, но оставил всё таки первый вариант в надежде на то, что ck-server
лучше знает как не палиться сенсорам (код не смотрел и не сравнивал)
Не хватает клиента cloak под андроид, чтобы имеющийся openvpn в него завернуть.
Amnezia глянул, но оно ставит свой vpn и cloak на сервере в контейнер при этом требуя возможность подключения по ssh root-ом с паролем. А задать параметры уже настроенного руками сервера в клиенте возможности нет.
Проксируем OpenVPN с помощью Cloak