<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Владимир Ходаков</title><author><name>Владимир Ходаков</name></author><id>https://teletype.in/atom/hdkv</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/hdkv?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@hdkv?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=hdkv"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/hdkv?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-05-14T16:26:22.003Z</updated><entry><id>hdkv:vpn-2024</id><link rel="alternate" type="text/html" href="https://teletype.in/@hdkv/vpn-2024?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=hdkv"></link><title>Боремся с экстремизмом и дискриминацией: поднимаем VPN за полчаса</title><published>2024-02-05T18:43:03.479Z</published><updated>2024-02-05T18:43:16.363Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/5e/1b/5e1bef10-6734-4f53-9ba6-65785f81c1f4.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/57/b1/57b1d7df-83fd-4af2-a4be-00b0a8be31aa.png&quot;&gt;Важный и очень понятный дисклеймер. На момент публикации этого гайда (10 февраля 2024 года) обсуждение и использование личных средств обхода блокировок не является противозаконым. Автор свято чтит русское законодательство и не призывает вас к совершению противоправных действий. Всё, что вы делаете, вы делаете на свой страх и риск. Я предупредил.</summary><content type="html">
  &lt;p id=&quot;XYZh&quot;&gt;&lt;em&gt;Важный и очень понятный дисклеймер. На момент публикации этого гайда (5 февраля 2024 года) обсуждение и использование личных средств обхода блокировок не является противозаконным. Автор свято чтит русское законодательство и не призывает вас к совершению противоправных действий. Всё, что вы делаете, вы делаете на свой страх и риск. Я предупредил.  &lt;/em&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;0yaE&quot;&gt;Итак, ситуация. Вам нужно скачать драйвера для вашего чипсета Intel, вы заходите на официальный сайт и видите, что эта контора пидарасов повесила заглушку «мы остановили бизнес в России». &lt;/p&gt;
  &lt;figure id=&quot;U22R&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/57/b1/57b1d7df-83fd-4af2-a4be-00b0a8be31aa.png&quot; width=&quot;2632&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qTOi&quot;&gt;Знакомо, да? В 2023 году педерастия была объявлена экстремизмом в нашей стране — так давайте же бороться с экстремизмом вместе!&lt;/p&gt;
  &lt;h2 id=&quot;uqaj&quot;&gt;Хостинг&lt;/h2&gt;
  &lt;p id=&quot;Fjb5&quot;&gt;Для начала вам нужен собственный сервер. Это должна быть виртуальная машина (VPS) или выделенный сервер (VDS). Шаред-хостинги и прочее не подойдут — нам нужен полноценный линукс-компьютер, к которому мы имеем рут-доступ. В нынешние времена этот пункт самый сложный — мало того, что половина зарубежных хостингов выкинула россиян на мороз (кто-то из-за отсутствия возможности заплатить МИРом или криптой, кто-то — потому что &lt;s&gt;пидарасы&lt;/s&gt; экстремисты), так ещё и с 1 февраля 2024 года компаниям, не входящим в реестр РКН, &lt;strong&gt;запрещено&lt;/strong&gt; предоставлять услуги хостинга россиянам. Ни одна зарубежная компания в этот список не зарегистрировалась. &lt;/p&gt;
  &lt;p id=&quot;U5r4&quot;&gt;Помимо выбора компании, которая продаст вам доступ к линукс-машине, вам сразу надо будет выбрать одну определенную локацию, где она будет находиться. Здесь вам не коммерческий VPN, пощелкать в приложении среди пятидесяти стран не получится. Если вы находитесь за пределами нашего богоспасаемого отечества и хотите получить доступ к сайтам внутри России — арендуйте машину в России. В противном случае — арендуйте машину там, где ближе всего ваши любимые сайты. Для европейской части России отлично работают сервера в Нидерландах, Германии или Франции.  &lt;/p&gt;
  &lt;p id=&quot;09uA&quot;&gt;Ссылок на хостинги по изложенным выше причинам давать не буду — в комментариях к моему каналу пользователи предложили свои варианты, выбирайте. Ну или гугл в помощь. Удачи.  &lt;/p&gt;
  &lt;h2 id=&quot;k0EK&quot;&gt;Софт&lt;/h2&gt;
  &lt;p id=&quot;wPHO&quot;&gt;VPN-решения для селфхоста делятся на два типа: «технические» и «для обычных пользователей». Первые требуют более полного погружения со стороны пользователя в процесс настройки, зато по итогу пользователь понимает, что конкретно обеспечивает работу его соединения и может довериться в какой-то мере ПО с открытым исходным кодом. Вторые же прячут всю техническую требуху за простым пользовательским интерфейсом — с одной стороны, обычному пользователю так удобней, с другой, безопасность и надёжность такого решения ненамного лучше, чем у просто коммерческих VPN. В общем, выбор за пользователем, а я освещу оба варианта.  &lt;/p&gt;
  &lt;h2 id=&quot;zFzl&quot;&gt;Amnezia VPN&lt;/h2&gt;
  &lt;p id=&quot;9Sil&quot;&gt;... идёт нахуй. Это ваш прямой пропуск в каталажку. Господа открыто сотрудничают с политическими диссидентами и в целом не вызывают доверия (а ещё я не сразу нашёл исходники, но они &lt;a href=&quot;https://github.com/amnezia-vpn&quot; target=&quot;_blank&quot;&gt;есть&lt;/a&gt;). Кроме того, они требуют полный доступ к вашему серверу: по сути, вы передаёте сервер в управление чужому дяде без гарантий и ответственности. Если завтра эти товарищи решат устроить из серверов, на которых установлена их программа, ботнет, атакующий Пентагон/Минобороны/Китай/кого там нынче модно будет атаковать — вы мало того, что ничего с этим и сделаете, так ещё и сами за это присядете, так как, выдав рут-доступ этому приложению, вы на всё согласились и начали нести ответственность.  &lt;/p&gt;
  &lt;p id=&quot;iUQZ&quot;&gt;В целом, важное правило безопасности: никогда не доверяйтесь системам, которые сотрудничают с политическими диссидентами, оппозицией (или властями) той или иной страны, и прочими товарищами, взаимодействие с которыми может привести рядового Васю Пупкина в состав Шторм Z. Опять же, я вас предупредил.&lt;/p&gt;
  &lt;h2 id=&quot;fwSO&quot;&gt;Outline VPN&lt;/h2&gt;
  &lt;p id=&quot;IXqs&quot;&gt;А вот этот софт пробовать можно. Ссылка: &lt;a href=&quot;https://getoutline.org&quot; target=&quot;_blank&quot;&gt;тыц&lt;/a&gt;. Исходники &lt;a href=&quot;https://github.com/Jigsaw-Code/?q=outline&quot; target=&quot;_blank&quot;&gt;в наличии&lt;/a&gt;, если есть желание провести аудит — пожалуйста. Диссидентскую прессу не рекламируют — и то хлеб. Впрочем, весь мой спич про ботнет выше вполне себе применим и к Outline VPN, так что этот способ рекомендуется исключительно тем, кто не хочет заморачиваться — и исключительно на чистой виртуалке, где больше ничего не установлено.&lt;/p&gt;
  &lt;p id=&quot;uoGH&quot;&gt;Итак, предположим, что вы нашли хостинг, и купили себе там виртуалку. Для дальнейших шагов будет использоваться следующая конфигурация:&lt;/p&gt;
  &lt;ul id=&quot;l3gh&quot;&gt;
    &lt;li id=&quot;43vi&quot;&gt;1 ядро CPU 2.3 GHz&lt;/li&gt;
    &lt;li id=&quot;4wiT&quot;&gt;2 гигабайта RAM&lt;/li&gt;
    &lt;li id=&quot;FPpn&quot;&gt;40 гигабайт SSD&lt;/li&gt;
    &lt;li id=&quot;0ne0&quot;&gt;Ubuntu 22.04 (последняя на данный момент LTS)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ACmN&quot;&gt;Машинка, конечно, весьма хилая, но для одного-двух пользователей VPN будет вполне достаточно. Для чистоты эксперимента автор воспользовался не собственной инфраструктурой, а завёл VPS на одном из рекомендованных пользователями сервисов.&lt;/p&gt;
  &lt;p id=&quot;bgbn&quot;&gt;Итак, я получил письмо с параметрами сервера, и запустил таймер на телефоне. Предположим, что у вас установлена Windows — в последних версиях Windows 10 и Windows 11 уже встроен SSH-клиент из консоли. Открываем Windows Terminal (правой кнопкой мыши по меню Пуск → Windows Terminal) и в открывшемся окне набираем:&lt;/p&gt;
  &lt;pre id=&quot;JHQz&quot;&gt;$ ssh root@&amp;lt;IP-адрес, который вам предоставил хостинг, например, 112.19.54.22&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;jwM4&quot;&gt;У вас попросят пароль — ввведите тот, что вам предоставил хостинг (или тот, что установили сами при установке ОС через панель управления хостинга). Нас встретит «дружелюбная» оболочка Ubuntu. Первым делом, обновляем систему — чаще всего, хостинги устанавливают ОС с готовых образов, которые обновляют раз в полгода. &lt;/p&gt;
  &lt;pre id=&quot;X5sA&quot;&gt; # apt update &amp;amp;&amp;amp; apt upgrade &amp;amp;&amp;amp; reboot&lt;/pre&gt;
  &lt;p id=&quot;gu3G&quot;&gt;На предложенный список пакетов для обновления отвечаем Y, после чего система автоматически обновится и перезагрузится. &lt;/p&gt;
  &lt;p id=&quot;w0BH&quot;&gt;Так как мы выбираем «хомячковый путь», то вся дальнейшая история опять же проходит через приложение поставщика VPN. Скачиваем его &lt;a href=&quot;https://getoutline.org/ru/get-started/&quot; target=&quot;_blank&quot;&gt;отсюда&lt;/a&gt; (Outline Manager), ну или с гитхаба. Приложение доступно под Windows, Linux и macOS.&lt;/p&gt;
  &lt;p id=&quot;zwD7&quot;&gt;После установки приложение встречает нас мастером настройки:&lt;/p&gt;
  &lt;figure id=&quot;8ahc&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b4/b6/b4b6823f-f700-4c75-b958-bb12072a6df8.png&quot; width=&quot;2500&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;gDrt&quot;&gt;Скорее всего, нас будет интересовать четвёртый пункт — «Настройте Outline где угодно». Выбираем его:&lt;/p&gt;
  &lt;figure id=&quot;azUP&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2b/52/2b52b2b6-3bfd-49a8-a793-4c89b3816f4c.png&quot; width=&quot;2500&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;cYST&quot;&gt;Нам предлагается запустить bash-скрипт для установки Outline на сервер. Скрипт можно (и нужно!) почитать вот &lt;a href=&quot;https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh&quot; target=&quot;_blank&quot;&gt;тут&lt;/a&gt; — запускать что попало на своих машинах не глядя, нельзя! &lt;/p&gt;
  &lt;p id=&quot;yjGS&quot;&gt;Открываем Windows Terminal (если вы его вдруг закрыли), после чего заходим на свой сервер по SSH:&lt;/p&gt;
  &lt;pre id=&quot;63nP&quot;&gt;$ ssh root@&amp;lt;IP-адрес&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;VqVz&quot;&gt;После того, как увидели приветствие Ubuntu в терминале, копипастим туда предложенную команду. Скрипт предложит установить Docker — соглашаемся. Установка Docker занимает пару минут. &lt;/p&gt;
  &lt;figure id=&quot;jnpn&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d9/3e/d93e3967-e909-49b0-a3f8-20a791c6d9fb.png&quot; width=&quot;2470&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Szp8&quot;&gt;В конце скрипт поздравит вас с установкой Outline и покажет зелёным текстом строку, которую надо скопировать в Outline Manager. Нажимаем «Готово», иии...&lt;/p&gt;
  &lt;figure id=&quot;Gjmd&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/95/e3/95e39ae3-3813-439c-a9df-15345126fd1b.png&quot; width=&quot;2500&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;dmHr&quot;&gt;Успех! ПО установлено.&lt;/p&gt;
  &lt;p id=&quot;F5vI&quot;&gt;А что же нам установил Outline? Так как это ПО работает в Docker, мы можем проверить запущенные контейнеры, выполнив в терминале нашей убунты команду &lt;code&gt;docker ps&lt;/code&gt;:&lt;/p&gt;
  &lt;pre id=&quot;QCEI&quot;&gt;# docker ps
CONTAINER ID   IMAGE                              COMMAND                  CREATED         STATUS                   PORTS      NAMES
8b3b05335449   containrrr/watchtower              &amp;quot;/watchtower --clean…&amp;quot;   3 minutes ago   Up 3 minutes (healthy)   8080/tcp   watchtower
bc485a0f8ee6   quay.io/outline/shadowbox:stable   &amp;quot;docker-entrypoint.s…&amp;quot;   3 minutes ago   Up 3 minutes
       shadowbox&lt;/pre&gt;
  &lt;p id=&quot;ZTKJ&quot;&gt;Как видим, запущены два контейнера: сам Outline и ватчдог, который следит за его состоянием. Исходники для них можно найти — это упражнение оставляю пытливому читателю.&lt;/p&gt;
  &lt;p id=&quot;dtby&quot;&gt;Командой &lt;code&gt;netstat -nlp&lt;/code&gt; в том же убунтовском терминале можно проверить открытые порты, которые слушает наш сервер:&lt;/p&gt;
  &lt;pre id=&quot;98n2&quot;&gt;# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      430/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      560/sshd: /usr/sbin
tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN      2519/prometheus
tcp        0      0 127.0.0.1:9092          0.0.0.0:*               LISTEN      2524/outline-ss-ser
tcp6       0      0 ::1:9091                :::*                    LISTEN      2508/node
tcp6       0      0 :::22                   :::*                    LISTEN      560/sshd: /usr/sbin
tcp6       0      0 :::55840                :::*                    LISTEN      2508/node
tcp6       0      0 :::36791                :::*                    LISTEN      2524/outline-ss-ser
udp        0      0 127.0.0.53:53           0.0.0.0:*                           430/systemd-resolve
udp6       0      0 :::36791                :::*                                2524/outline-ss-ser
raw6       0      0 :::58                   :::*                    7           388/systemd-network
...&lt;/pre&gt;
  &lt;p id=&quot;P7I5&quot;&gt;&lt;br /&gt;Пришло время устанавливать клиент — скачивается он &lt;a href=&quot;https://getoutline.org/ru/get-started/&quot; target=&quot;_blank&quot;&gt;там же&lt;/a&gt;, где и сервер. Клиенты есть под Android, iOS, Windows, Linux и macOS. После установки на ПК нас встретит вот такое окно:&lt;/p&gt;
  &lt;figure id=&quot;dgo9&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ae/5c/ae5ca05e-4117-453f-8c63-5c7caecf7d30.png&quot; width=&quot;359&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;crZw&quot;&gt;Предположим, что вы доверяете разработчикам Outline (иначе вы бы не дали им рут-доступ на предыдущем шаге, не так ли?). Нажимаем ОК.&lt;/p&gt;
  &lt;figure id=&quot;kWcS&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/74/99/74993cd4-f050-440a-aa17-57a6a2232a42.png&quot; width=&quot;359&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;V9FO&quot;&gt;Нажимаем «Добавить сервер». Приложение запросит ключ доступа — переходим в Outline Manager, и видим, что у нашего сервера внизу установлен один ключ доступа. Нажимаем кнопку Share рядом с ним и копируем ключ в буфер обмена. Клиент Outline автоматически прочитает ключ из буфера обмена, и вставит его &lt;em&gt;(ай-яй-яй, господа, прослушивать буфер обмена — нехорошо!).&lt;/em&gt;&lt;/p&gt;
  &lt;figure id=&quot;imo3&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/12/14/12141e81-21ed-4049-9fdc-e91cb57e2870.png&quot; width=&quot;359&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;K5bS&quot;&gt;Нажимаем «Добавить сервер». Сервер появляется в интерфейсе, и теперь осталось только нажать кнопку «Подключить». Готово, вы восхитительны!&lt;/p&gt;
  &lt;figure id=&quot;sjCR&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/70/60/7060efef-e161-4625-bfce-732e2927a7de.png&quot; width=&quot;2632&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;8Blo&quot;&gt;Время установки: около 10 минут.&lt;/p&gt;
  &lt;p id=&quot;jOWI&quot;&gt;Сложность: изи.&lt;/p&gt;
  &lt;p id=&quot;xCGD&quot;&gt;Плюсы:&lt;/p&gt;
  &lt;ul id=&quot;wq0P&quot;&gt;
    &lt;li id=&quot;TSiY&quot;&gt;быстрая установка&lt;/li&gt;
    &lt;li id=&quot;o9co&quot;&gt;не надо быть линукс-гуру&lt;/li&gt;
    &lt;li id=&quot;nVVA&quot;&gt;работает стабильно&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;eZn9&quot;&gt;Минусы:&lt;/p&gt;
  &lt;ul id=&quot;a084&quot;&gt;
    &lt;li id=&quot;3eVL&quot;&gt;вы доверяете свою виртуалку в прямое управление неизвестной группе лиц&lt;/li&gt;
    &lt;li id=&quot;J0HL&quot;&gt;политические риски (брендированный VPN-клиент могут искать на устройствах пользователей, например — причём не только с помощью личного визита товарища майора)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;sC7r&quot;&gt;Если указанные выше минусы вас устраивают — поздравляю, можете расслабиться и скачивать ваши драйвера с сайта Intel. Меня такой подход не устраивает, поэтому пришло время засучить рукава и погрузиться в колдовство с терминалом. Простенькое, но колдовство.&lt;/p&gt;
  &lt;h2 id=&quot;zNfD&quot;&gt;WireGuard&lt;/h2&gt;
  &lt;p id=&quot;A1H0&quot;&gt;Итак, вы решили немного покрасноглазить и установить самый популярный сервер VPN последних нескольких лет. И сразу же &lt;em&gt;важный дисклеймер&lt;/em&gt;: в некоторых сетях банят всех WireGuard-соединения без разбору, включая личные и даже рабочие. Я с таким не сталкивался, но предупредить должен.&lt;/p&gt;
  &lt;p id=&quot;8XoT&quot;&gt;Итак, возвращаемся в исходное положение — у нас есть чистый сервер с Ubuntu 22.04, конфиг которого я описал в разделе про &lt;a href=&quot;#fwSO&quot;&gt;Outline&lt;/a&gt;. Заходим на него по SSH, обновляем, перезагружаем...&lt;/p&gt;
  &lt;p id=&quot;7eP1&quot;&gt;У нас есть два пути: тяжёлый и полегче. Тяжёлый — это устанавливать руками wireguard-tools, бодаться с ключами, и так далее. Лёгкий — взять готовый докер-контейнер с конфигуратором, например, &lt;a href=&quot;https://github.com/wg-easy/wg-easy&quot; target=&quot;_blank&quot;&gt;тут&lt;/a&gt;. К контейнеру прилагается читаемый &lt;a href=&quot;https://github.com/wg-easy/wg-easy/blob/master/Dockerfile&quot; target=&quot;_blank&quot;&gt;Dockerfile&lt;/a&gt; и исходники админ-панели, идущей в комплекте. В этот раз мы пойдём лёгким путём.&lt;/p&gt;
  &lt;p id=&quot;BRhR&quot;&gt;Для начала, устанавливаем Docker последней версии. Для этого вводим в терминале Ubuntu команду:&lt;/p&gt;
  &lt;pre id=&quot;htBT&quot;&gt; # curl https://get.docker.com/ | sh&lt;/pre&gt;
  &lt;p id=&quot;7qXd&quot;&gt;Этот автоматический скрипт добавит репозиторий Docker в систему и установит его. Напоминаю, что перед запуском скриптов на своей машине в них лучше &lt;a href=&quot;https://get.docker.com/&quot; target=&quot;_blank&quot;&gt;заглянуть&lt;/a&gt;!&lt;/p&gt;
  &lt;p id=&quot;jHmh&quot;&gt;После завершения выполнения скрипта командой &lt;code&gt;docker info&lt;/code&gt; проверяем, что сервис установился. В ответ на команду в консоли должно появиться нечто подобное:&lt;/p&gt;
  &lt;pre id=&quot;MYeF&quot;&gt;# docker info
Client: Docker Engine - Community
 Version:    25.0.2
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.12.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.24.5
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 25.0.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 5.15.0-91-generic
 Operating System: Ubuntu 22.04.2 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 1.918GiB
 Name: p513342.kvmvps
 ID: 91998490-e43b-4dc4-ae64-f9a780389728
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false&lt;/pre&gt;
  &lt;p id=&quot;jOVR&quot;&gt;Следующим шагом будет написание файла Docker Compose: это специальный файл, который описывает запускаемый Docker-ом сервис с его параметрами. Написание таких файлов для запускаемых контейнеров — отличная идея. Он позволяет обеспечить автозапуск и управление сервисом простыми командами, без длинной колбасы параметров командной строки. Файл Docker Compose называется &lt;code&gt;docker-compose.yaml&lt;/code&gt;. Для его написания на сервере введите команду &lt;code&gt;nano ~/docker-compose.yaml&lt;/code&gt;&lt;/p&gt;
  &lt;figure id=&quot;GhWs&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/81/6c/816c6aa8-e6ef-4aac-b57d-a888089a143c.png&quot; width=&quot;2470&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;2vyL&quot;&gt;Откроется не самый дружелюбный в мире текстовый редактор Nano, который, впрочем, позволяет в себя спокойно копипастить — а большего нам, в целом и не требуется. Ваш файл &lt;code&gt;docker-compose.yaml&lt;/code&gt; должен выглядеть примерно вот так:&lt;/p&gt;
  &lt;pre id=&quot;yHfc&quot;&gt;version: &amp;quot;2.4&amp;quot;

services:
  wgeasy:
    container_name: wgeasy
    image: ghcr.io/wg-easy/wg-easy
    restart: unless-stopped
    environment:
      - LANG=ru
      - WG_HOST=&amp;lt;ваш IP адрес, который вам предоставил хостинг&amp;gt;
      - PASSWORD=&amp;lt;ваш суперсекретный пароль&amp;gt;
    volumes:
      - &amp;quot;~/.wgeasy:/etc/wireguard&amp;quot;
    ports:
      - &amp;quot;51820:51820/udp&amp;quot;
      - &amp;quot;51821:51821/tcp&amp;quot;
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv4.ip_forward=1&lt;/pre&gt;
  &lt;p id=&quot;9754&quot;&gt;Этот файл задаёт параметры контейнера: что за образ запускать, какие порты открыть, какие привилегии предоставить. Подробнее о синтаксисе файла можно прочитать &lt;a href=&quot;https://docs.docker.com/compose/compose-file/compose-file-v2/&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;. &lt;/p&gt;
  &lt;p id=&quot;5Kw8&quot;&gt;Сохранив файл, приступаем к первому запуску контейнера. Для этого набираем &lt;code&gt;docker compose up&lt;/code&gt;. В случае успеха у вас в терминале появится нечто подобное:&lt;/p&gt;
  &lt;figure id=&quot;eTAX&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/97/8d/978da8ef-5336-42ae-94e0-f821ed93db35.png&quot; width=&quot;2470&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;2FS3&quot;&gt;Если у вас появилась строка &lt;code&gt;Wireguard Config synced&lt;/code&gt;, первый запуск прошёл успешно. Останавливайте контейнер, нажав Ctrl-C — мы не хотим постоянно висящий терминал, который подключен к нашей виртуалке, поэтому мы должны запустить контейнер в «отвязанном» режиме — то есть, в фоне. Для этого выполняем команду:&lt;/p&gt;
  &lt;pre id=&quot;5JII&quot;&gt; # docker compose up -d&lt;/pre&gt;
  &lt;p id=&quot;jny4&quot;&gt;Ключ &lt;code&gt;-d&lt;/code&gt; в этой команде указывает Docker, что мы не хотим подключаться к логам контейнера, и хотим видеть его в фоне. Теперь, чтобы увидеть логи контейнера, мы можем запустить команду &lt;code&gt;docker compose logs&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;qecu&quot;&gt;Для следующего шага нам понадобится веб-браузер и тот пароль, что вы записали в файле &lt;code&gt;docker-compose.yaml&lt;/code&gt; ранее (вы же позаботились о том, чтобы он был надёжным, верно?). Открываем сайт с адресом &lt;code&gt;http://&amp;lt;IP вашей виртуалки&amp;gt;:51821&lt;/code&gt;. Да, именно так — http и с номером порта на конце. В случае успеха вас поприветствует интерфейс, который попросит пароль:&lt;/p&gt;
  &lt;figure id=&quot;kQq8&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d5/6e/d56ecef9-73e5-4204-ac5f-a2f27650e57a.png&quot; width=&quot;2632&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Iroq&quot;&gt;По умолчанию в наш WireGuard-сервер не добавлен ни один клиент. &lt;/p&gt;
  &lt;figure id=&quot;c6vh&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f7/a2/f7a26192-e035-48a5-839a-5518e653cf53.png&quot; width=&quot;2632&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;frCF&quot;&gt;Пара клиент-сервер обязательна для работы данного VPN, так что добавляем нашего первого клиента. Нажимаем New Client:&lt;/p&gt;
  &lt;figure id=&quot;ldo0&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/86/07/8607f17b-d119-41f5-9cfb-28f58c536b47.png&quot; width=&quot;2632&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;oHGh&quot;&gt;В поле Name вводим любое удобное имя — сейчас мы будем настраивать клиент для Windows, поэтому я назову клиент «windows». Нажимаем Create:&lt;/p&gt;
  &lt;figure id=&quot;LOjr&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/29/49/29490358-bb48-4841-87ef-83a614c54fc0.png&quot; width=&quot;2632&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ApdB&quot;&gt;Клиент создан. Теперь нам надо подключиться. Скачиваем официальное приложение WireGuard для Windows с &lt;a href=&quot;https://www.wireguard.com/install/&quot; target=&quot;_blank&quot;&gt;сайта&lt;/a&gt; проекта (кнопка Download Windows Installer в самом верху). Клиент запускается автоматически сразу после установки (и не даёт себя скриншотить). &lt;/p&gt;
  &lt;p id=&quot;e0Ld&quot;&gt;Возвращаемся в веб-браузер с нашей админкой Wireguard, где нажимаем кнопку скачивания рядом с нашим добавленным клиентом «windows». Открыв клиент Wireguard, нажимаем в основном окне кнопку «Импорт туннелей из файла». В открывшемся проводнике выбираем скачанный файл (в данном случае — «windows.conf»), нажимаем ОК и видим, что наш конфиг добавился в клиентское приложение. &lt;/p&gt;
  &lt;p id=&quot;Al50&quot;&gt;Нажимаем «Подключить» справа ближе к центру. Если ваш провайдер не страдает фигней и не блокирует весь WireGuard-трафик — готово, вы восхитительны!&lt;/p&gt;
  &lt;figure id=&quot;PF3b&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ed/c5/edc55bd4-348b-4724-84b8-17edbb865832.png&quot; width=&quot;2632&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ggo9&quot;&gt;Процедура настройки WireGuard на телефоне ещё более простая: устанавливаем клиент из &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.wireguard.android&quot; target=&quot;_blank&quot;&gt;Google Play&lt;/a&gt;, в веб-интерфейсе нашего WireGuard-сервера добавляем клиента, нажимаем рядом с ним кнопку с изображением QR-кода, открываем WireGuard на телефоне, нажимаем плюсик, сканируем код, радуемся жизни.&lt;/p&gt;
  &lt;figure id=&quot;zySz&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/80/36/80366fc3-1887-4f7e-857e-6edc8c3ef939.png&quot; width=&quot;540&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;YxNt&quot;&gt;Ну как «радуемся», скорость оно режет примерно на половину от той, что рекламирует хостинг виртуалки, но для своих задач — вполне подойдёт. Общее время установки VPN и настройки двух клиентов — где-то 15-20 минут.&lt;/p&gt;
  &lt;h2 id=&quot;kUT6&quot;&gt;Пара слов про фаерволы&lt;/h2&gt;
  &lt;p id=&quot;BY4d&quot;&gt;Во время написания этого гайда я ни разу не упомянул настройку фаерволов. Дело в том, что большинство хостинг-провайдеров не имеют фаервола на своей стороне, и в целом не препятствуют никакому трафику, исходящему от ваших виртуальных машин. Однако это верно не для всех провайдеров — а кроме того, вы можете захотеть настроить себе фаервол самостоятельно — так что могут возникать ситуации, когда трафик вашего VPN-сервера блокируется. Так как гайд уже разросся в простыню, я оставлю настройку фаервола на своей виртуалке за скобками (отличная идея для статьи уважаемому @coweram, кстати). Ну а если вам попался хостинг, у которого есть свой внешний фаервол — здоровья погибшим, время ковыряться в их панели управления или общаться с техподдержкой. &lt;/p&gt;
  &lt;h2 id=&quot;aT2L&quot;&gt;Заключение&lt;/h2&gt;
  &lt;p id=&quot;OHL3&quot;&gt;Надеюсь, этот гайд был вам полезен. В этой части я затронул достаточно простые (как для установки, так и для блокировки со стороны провайдера) виды VPN — в дебри ShadowSocks и прочих шаманств я, пожалуй, погружусь в следующий раз. Для большинства пользователей одного из двух представленных выше вариантов должно хватить за глаза — во всяком случае пока. Дерзайте, и помните — за селфхостом будущее.&lt;/p&gt;
  &lt;p id=&quot;w2xy&quot;&gt;&lt;em&gt;Поблагодарить автора можно &lt;a href=&quot;https://boosty.to/leaveitru&quot; target=&quot;_blank&quot;&gt;тут&lt;/a&gt;, а подписаться — &lt;a href=&quot;https://t.me/leaveitru&quot; target=&quot;_blank&quot;&gt;тут&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</content></entry><entry><id>hdkv:russian-linux</id><link rel="alternate" type="text/html" href="https://teletype.in/@hdkv/russian-linux?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=hdkv"></link><title>О проблеме отечественного линуксостроения</title><published>2023-03-31T10:45:50.223Z</published><updated>2023-04-01T05:07:43.594Z</updated><summary type="html">На дворе 2023 год, мы уже год живём под разного рода санкциями, которые имеют тенденцию к усилению, и вопрос собственной базовой ОС для десктопов, серверов и рабочих станций становится принципиальным.</summary><content type="html">
  &lt;p id=&quot;e0tm&quot;&gt;На дворе 2023 год, мы уже год живём под разного рода санкциями, которые имеют тенденцию к усилению, и вопрос собственной базовой ОС для десктопов, серверов и рабочих станций становится принципиальным.&lt;/p&gt;
  &lt;p id=&quot;7Q6x&quot;&gt;Обзор рынка отечественных ОС полгода назад я делал на ливитру (&lt;a href=&quot;https://t.me/leaveitru/20&quot; target=&quot;_blank&quot;&gt;тыц&lt;/a&gt;), за последние полгода в этом плане поменялось не так уж и много: на данный момент единственный дистрибутив, обладающий технологической независимостью от зарубежного апстрима — Альт. &lt;/p&gt;
  &lt;h2 id=&quot;Scyw&quot;&gt;Что не так с Альтом&lt;/h2&gt;
  &lt;p id=&quot;84pF&quot;&gt;Казалось бы, ставь Альт, настраивай и радуйся жизни?&lt;/p&gt;
  &lt;p id=&quot;0FHJ&quot;&gt;Увы и ах, концептуально Альт застрял в 2004 году, когда ещё не было Ubuntu, а установка линукса являлась испытанием для избранных. Основные проблемы главного русского дистрибутива:&lt;/p&gt;
  &lt;ul id=&quot;WK7X&quot;&gt;
    &lt;li id=&quot;XKuF&quot;&gt;Огромное множество различных редакций разной степени готовности. Конечному пользователю непонятно, где скачать дистрибутив и какой именно ISO ему нужен. &lt;/li&gt;
    &lt;li id=&quot;RHsT&quot;&gt;Древность софта в стабильных ветках такова, что Debian позавидует.&lt;/li&gt;
    &lt;li id=&quot;LvXC&quot;&gt;В стартеркитах окружения захламлены тонной левого ПО, которое может и не потребоваться конечному пользователю. Отдельная беда с этим ПО в том, что оно написано на устаревших фреймворках, не подхватывает системную тёмную тему и не умеет в HiDPI (в 2023 году!)&lt;/li&gt;
    &lt;li id=&quot;7Cyb&quot;&gt;Из live-режима стартеркита невозможна установка. Для перехода в инсталлятор требуется перезагрузка и выбор установщика в меню загрузки LiveCD. Ubuntu избавилась от такого атавизма 17 лет назад, в релизе 6.06!&lt;/li&gt;
    &lt;li id=&quot;YIhI&quot;&gt;Инсталлятор по UX напоминает таковой у Debian Lenny — но в некоторых аспектах (например, разметка диска) работает даже хуже инсталлятора стабильного дебиана тринадцатилетней давности. Автору так и не удалось установить Альт на программный зашифрованный raid с файловой системой btrfs.&lt;/li&gt;
    &lt;li id=&quot;An3X&quot;&gt;Не наблюдается движений к современным тенденциям Linux (контейнеризация, изоляция, воспроизводимость/иммутабельность). Про ostree разработчики Альта узнают, видимо, лет через 20.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;rYUb&quot;&gt;Все эти пункты приводят к тому, что современный пользователь линукса не будет даже рассматривать Альт, как систему для собственного пользования, если ему это не навязано извне государственной регуляцией. &lt;/p&gt;
  &lt;h2 id=&quot;mtYI&quot;&gt;А нам точно нужен российский линукс? Апстрим-то все равно мировой&lt;/h2&gt;
  &lt;p id=&quot;Ebqr&quot;&gt;Проблема мирового апстрима в том, что он живёт в условиях санкционного давления и патентных ограничений. С некоторыми разработчиками, которым «повезло» работать в подсанкционных компаниях, апстрим не хочет взаимодействовать уже сегодня. Кроме того, сетевые и юридические ограничения могут подставить конечных пользователей, которым однажды может приехать обновление, отключающее работу их сервера/десктопа в определённой геолокации — слава богу, прямо сейчас такие практики в опенсорсе порицаются, но кто знает, как к этому будут относиться, если геополитическая обстановка в других частях света (см. Китай/Тайвань) начнёт накаляться, и сепарация IT-сообществ по своим «многополярным» кучкам ускорится?&lt;/p&gt;
  &lt;p id=&quot;ximc&quot;&gt;Таким образом, уже сейчас надо думать о том, чтобы взять какую-то из уже существующих мировых платформ создания дистрибутивов, клонировать её инфраструктуру (благо, в большинстве случаев она открыта), и на её основе начинать развивать современный линукс с независимой, устойчивой к санкционному давлению инфраструктурой. &lt;/p&gt;
  &lt;h2 id=&quot;Hon8&quot;&gt;Какой фундамент выбрать?&lt;/h2&gt;
  &lt;p id=&quot;f7Cs&quot;&gt;В первую очередь надо понимать, что отечественный линукс не должен изобретать велосипед — это неэффективно с точки зрения быстрого старта проекта и с точки зрения траты человеческих ресурсов. Тот же Альт в своё время начинался именно как развитие Мандрейка — и сегодня тот, кто должен заменить Альт в качестве главного русского дистрибутива должен выбрать себе надёжный фундамент, от которого сможет отпочковаться и развиваться дальше.&lt;/p&gt;
  &lt;p id=&quot;Ub7k&quot;&gt;В качестве вариантов я предлагаю рассмотреть Debian, Fedora и Arch Linux.&lt;/p&gt;
  &lt;h3 id=&quot;dd4d&quot;&gt;Debian/Ubuntu&lt;/h3&gt;
  &lt;p id=&quot;pNLU&quot;&gt;Debian не преследует цели «двигать линукс-десктоп» вперёд, и может являться отличной базой для серверных/специализированных дистрибутивов (привет, Астра!), но обладает достаточно переусложнённым форматом пакетов (deb тащит за собой 20 лет легаси). Постройка современного десктоп-окружения на основе Debian требует массы усилий, особенно, если речь идёт не о KDE. &lt;/p&gt;
  &lt;p id=&quot;bjsz&quot;&gt;В плане стандартов построения иммутабельных дистрибутивов — для Debian есть инструмент работы с OSTree, которым пользуется Endless OS, но он отстаёт в развитии от rpm-ostree и не поддерживает загрузку в OCI-контейнер на данный момент.&lt;/p&gt;
  &lt;p id=&quot;m1Ry&quot;&gt;Если же смотреть на Ubuntu, то её главная проблема зарегистрирована на острове Мэн и называется Canonical. Фанатичное движение против всех линукс-мейнстрима со snap-пакетами, которые навязываются пользователям втихую, обновляются без спроса и без возможности обновления отключить и поставляются из единственного проприетарного стора, однажды закопает данный дистрибутив для всех юзкейсов, кроме IoT.&lt;/p&gt;
  &lt;h3 id=&quot;2MZD&quot;&gt;Arch Linux&lt;/h3&gt;
  &lt;p id=&quot;RN7p&quot;&gt;У Arch простой формат пакетов и сборочной системы, свежее ПО в репозиториях (вечный роллинг), с его помощью легко построить современный линукс-десктоп. В плане серверной же системы все преимущества Arch превращаются в его недостатки — если не брать юзкейс тонкой, постоянно обновляемой системы, в которой любой серверный софт крутится исключительно под Docker в контейнерах.&lt;/p&gt;
  &lt;p id=&quot;X8yo&quot;&gt;Единственным значимым недостатком Arch как базы для построения нового дистрибутива является отсутствие в данный момент стабильного/кем-либо используемого инструментария для иммутабельного/воспроизводимого дистрибутива. Существуют попытки использовать ostree с пакетным менеджером Arch, но неизвестно об успешности их применения.&lt;/p&gt;
  &lt;h3 id=&quot;609l&quot;&gt;Fedora&lt;/h3&gt;
  &lt;p id=&quot;jKjY&quot;&gt;Дистрибутив, который развивается главной линукс-конторой мира (Red Hat), естественно, является флагманов всех изменений в линукс-экосистеме. У данного дистрибутива уже налажено производство иммутабельных систем (в том числе — с помощью стандартизированных OCI-контейнеров), самые свежие наработки линуксового десктопа и так далее.&lt;/p&gt;
  &lt;p id=&quot;xE4Q&quot;&gt;Однако, Fedora так же обладает своим набором недостатков. В первую очередь это rpm, так же, как и deb, тащащий в себе двадцать лет легаси, которые переусложняют формат пакета. Кроме того, Fedora соблюдает все санкции и законы США, что приводит к усложнению взаимодействия русских разработчиков с дистрибутивом, сложностями с установкой проприетарных драйверов и удалением из поставки кодеков и аппаратного декодирования из-за боязни патентных споров. Немаловажно, что само сообщество разработчиков Fedora является весьма токсичным, особенно его русскоязычная часть, представленная разработчиками из Прибалтики и Украины. FESCo знаменит попытками натянуть сову на глобус и попытаться перестроить мир вокруг себя (например, они пытались поставлять программы, написанные на Go, динамически слинкованными с зависимостями, что прямо противоречит тулкиту языка).&lt;/p&gt;
  &lt;h2 id=&quot;TUFC&quot;&gt;Что делать дальше?&lt;/h2&gt;
  &lt;p id=&quot;1dW1&quot;&gt;Данный документ представлен как request for comments: читателю предлагается ответить на два вопроса:&lt;/p&gt;
  &lt;ul id=&quot;tJYB&quot;&gt;
    &lt;li id=&quot;TjeQ&quot;&gt;Нужен ли новый русский дистрибутив Linux, с независимой от апстрима инфраструктурой?&lt;/li&gt;
    &lt;li id=&quot;Cc94&quot;&gt;Если на первый вопрос ответ «да» — от какой основы он должен отпочковаться, чтобы получить в итоге современный дистрибутив, готовый к употреблению конечным пользователям, не желающим ковыряться в системе, чтобы начать с ней работать?&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;6go0&quot;&gt;Возможно, итогом этого обсуждения станет новый проект, который будет призван создать в России дистрибутив-базу, которая перетащит отечественный линукс в двадцать первый век.&lt;/p&gt;

</content></entry></feed>