<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Владимир Ходаков</title><generator>teletype.in</generator><description><![CDATA[Владимир Ходаков]]></description><image><url>https://img2.teletype.in/files/1a/41/1a4101ae-cf93-483f-8ea1-61e97a6b9e7c.png</url><title>Владимир Ходаков</title><link>https://teletype.in/@hdkv</link></image><link>https://teletype.in/@hdkv?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=hdkv</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/hdkv?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/hdkv?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Thu, 14 May 2026 16:26:17 GMT</pubDate><lastBuildDate>Thu, 14 May 2026 16:26:17 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@hdkv/vpn-2024</guid><link>https://teletype.in/@hdkv/vpn-2024?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=hdkv</link><comments>https://teletype.in/@hdkv/vpn-2024?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=hdkv#comments</comments><dc:creator>hdkv</dc:creator><title>Боремся с экстремизмом и дискриминацией: поднимаем VPN за полчаса</title><pubDate>Mon, 05 Feb 2024 18:43:03 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/5e/1b/5e1bef10-6734-4f53-9ba6-65785f81c1f4.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/57/b1/57b1d7df-83fd-4af2-a4be-00b0a8be31aa.png"></img>Важный и очень понятный дисклеймер. На момент публикации этого гайда (10 февраля 2024 года) обсуждение и использование личных средств обхода блокировок не является противозаконым. Автор свято чтит русское законодательство и не призывает вас к совершению противоправных действий. Всё, что вы делаете, вы делаете на свой страх и риск. Я предупредил.]]></description><content:encoded><![CDATA[
  <p id="XYZh"><em>Важный и очень понятный дисклеймер. На момент публикации этого гайда (5 февраля 2024 года) обсуждение и использование личных средств обхода блокировок не является противозаконным. Автор свято чтит русское законодательство и не призывает вас к совершению противоправных действий. Всё, что вы делаете, вы делаете на свой страх и риск. Я предупредил.  </em></p>
  <hr />
  <p id="0yaE">Итак, ситуация. Вам нужно скачать драйвера для вашего чипсета Intel, вы заходите на официальный сайт и видите, что эта контора пидарасов повесила заглушку «мы остановили бизнес в России». </p>
  <figure id="U22R" class="m_column">
    <img src="https://img2.teletype.in/files/57/b1/57b1d7df-83fd-4af2-a4be-00b0a8be31aa.png" width="2632" />
  </figure>
  <p id="qTOi">Знакомо, да? В 2023 году педерастия была объявлена экстремизмом в нашей стране — так давайте же бороться с экстремизмом вместе!</p>
  <h2 id="uqaj">Хостинг</h2>
  <p id="Fjb5">Для начала вам нужен собственный сервер. Это должна быть виртуальная машина (VPS) или выделенный сервер (VDS). Шаред-хостинги и прочее не подойдут — нам нужен полноценный линукс-компьютер, к которому мы имеем рут-доступ. В нынешние времена этот пункт самый сложный — мало того, что половина зарубежных хостингов выкинула россиян на мороз (кто-то из-за отсутствия возможности заплатить МИРом или криптой, кто-то — потому что <s>пидарасы</s> экстремисты), так ещё и с 1 февраля 2024 года компаниям, не входящим в реестр РКН, <strong>запрещено</strong> предоставлять услуги хостинга россиянам. Ни одна зарубежная компания в этот список не зарегистрировалась. </p>
  <p id="U5r4">Помимо выбора компании, которая продаст вам доступ к линукс-машине, вам сразу надо будет выбрать одну определенную локацию, где она будет находиться. Здесь вам не коммерческий VPN, пощелкать в приложении среди пятидесяти стран не получится. Если вы находитесь за пределами нашего богоспасаемого отечества и хотите получить доступ к сайтам внутри России — арендуйте машину в России. В противном случае — арендуйте машину там, где ближе всего ваши любимые сайты. Для европейской части России отлично работают сервера в Нидерландах, Германии или Франции.  </p>
  <p id="09uA">Ссылок на хостинги по изложенным выше причинам давать не буду — в комментариях к моему каналу пользователи предложили свои варианты, выбирайте. Ну или гугл в помощь. Удачи.  </p>
  <h2 id="k0EK">Софт</h2>
  <p id="wPHO">VPN-решения для селфхоста делятся на два типа: «технические» и «для обычных пользователей». Первые требуют более полного погружения со стороны пользователя в процесс настройки, зато по итогу пользователь понимает, что конкретно обеспечивает работу его соединения и может довериться в какой-то мере ПО с открытым исходным кодом. Вторые же прячут всю техническую требуху за простым пользовательским интерфейсом — с одной стороны, обычному пользователю так удобней, с другой, безопасность и надёжность такого решения ненамного лучше, чем у просто коммерческих VPN. В общем, выбор за пользователем, а я освещу оба варианта.  </p>
  <h2 id="zFzl">Amnezia VPN</h2>
  <p id="9Sil">... идёт нахуй. Это ваш прямой пропуск в каталажку. Господа открыто сотрудничают с политическими диссидентами и в целом не вызывают доверия (а ещё я не сразу нашёл исходники, но они <a href="https://github.com/amnezia-vpn" target="_blank">есть</a>). Кроме того, они требуют полный доступ к вашему серверу: по сути, вы передаёте сервер в управление чужому дяде без гарантий и ответственности. Если завтра эти товарищи решат устроить из серверов, на которых установлена их программа, ботнет, атакующий Пентагон/Минобороны/Китай/кого там нынче модно будет атаковать — вы мало того, что ничего с этим и сделаете, так ещё и сами за это присядете, так как, выдав рут-доступ этому приложению, вы на всё согласились и начали нести ответственность.  </p>
  <p id="iUQZ">В целом, важное правило безопасности: никогда не доверяйтесь системам, которые сотрудничают с политическими диссидентами, оппозицией (или властями) той или иной страны, и прочими товарищами, взаимодействие с которыми может привести рядового Васю Пупкина в состав Шторм Z. Опять же, я вас предупредил.</p>
  <h2 id="fwSO">Outline VPN</h2>
  <p id="IXqs">А вот этот софт пробовать можно. Ссылка: <a href="https://getoutline.org" target="_blank">тыц</a>. Исходники <a href="https://github.com/Jigsaw-Code/?q=outline" target="_blank">в наличии</a>, если есть желание провести аудит — пожалуйста. Диссидентскую прессу не рекламируют — и то хлеб. Впрочем, весь мой спич про ботнет выше вполне себе применим и к Outline VPN, так что этот способ рекомендуется исключительно тем, кто не хочет заморачиваться — и исключительно на чистой виртуалке, где больше ничего не установлено.</p>
  <p id="uoGH">Итак, предположим, что вы нашли хостинг, и купили себе там виртуалку. Для дальнейших шагов будет использоваться следующая конфигурация:</p>
  <ul id="l3gh">
    <li id="43vi">1 ядро CPU 2.3 GHz</li>
    <li id="4wiT">2 гигабайта RAM</li>
    <li id="FPpn">40 гигабайт SSD</li>
    <li id="0ne0">Ubuntu 22.04 (последняя на данный момент LTS)</li>
  </ul>
  <p id="ACmN">Машинка, конечно, весьма хилая, но для одного-двух пользователей VPN будет вполне достаточно. Для чистоты эксперимента автор воспользовался не собственной инфраструктурой, а завёл VPS на одном из рекомендованных пользователями сервисов.</p>
  <p id="bgbn">Итак, я получил письмо с параметрами сервера, и запустил таймер на телефоне. Предположим, что у вас установлена Windows — в последних версиях Windows 10 и Windows 11 уже встроен SSH-клиент из консоли. Открываем Windows Terminal (правой кнопкой мыши по меню Пуск → Windows Terminal) и в открывшемся окне набираем:</p>
  <pre id="JHQz">$ ssh root@&lt;IP-адрес, который вам предоставил хостинг, например, 112.19.54.22&gt;</pre>
  <p id="jwM4">У вас попросят пароль — ввведите тот, что вам предоставил хостинг (или тот, что установили сами при установке ОС через панель управления хостинга). Нас встретит «дружелюбная» оболочка Ubuntu. Первым делом, обновляем систему — чаще всего, хостинги устанавливают ОС с готовых образов, которые обновляют раз в полгода. </p>
  <pre id="X5sA"> # apt update &amp;&amp; apt upgrade &amp;&amp; reboot</pre>
  <p id="gu3G">На предложенный список пакетов для обновления отвечаем Y, после чего система автоматически обновится и перезагрузится. </p>
  <p id="w0BH">Так как мы выбираем «хомячковый путь», то вся дальнейшая история опять же проходит через приложение поставщика VPN. Скачиваем его <a href="https://getoutline.org/ru/get-started/" target="_blank">отсюда</a> (Outline Manager), ну или с гитхаба. Приложение доступно под Windows, Linux и macOS.</p>
  <p id="zwD7">После установки приложение встречает нас мастером настройки:</p>
  <figure id="8ahc" class="m_column">
    <img src="https://img4.teletype.in/files/b4/b6/b4b6823f-f700-4c75-b958-bb12072a6df8.png" width="2500" />
  </figure>
  <p id="gDrt">Скорее всего, нас будет интересовать четвёртый пункт — «Настройте Outline где угодно». Выбираем его:</p>
  <figure id="azUP" class="m_column">
    <img src="https://img3.teletype.in/files/2b/52/2b52b2b6-3bfd-49a8-a793-4c89b3816f4c.png" width="2500" />
  </figure>
  <p id="cYST">Нам предлагается запустить bash-скрипт для установки Outline на сервер. Скрипт можно (и нужно!) почитать вот <a href="https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh" target="_blank">тут</a> — запускать что попало на своих машинах не глядя, нельзя! </p>
  <p id="yjGS">Открываем Windows Terminal (если вы его вдруг закрыли), после чего заходим на свой сервер по SSH:</p>
  <pre id="63nP">$ ssh root@&lt;IP-адрес&gt;</pre>
  <p id="VqVz">После того, как увидели приветствие Ubuntu в терминале, копипастим туда предложенную команду. Скрипт предложит установить Docker — соглашаемся. Установка Docker занимает пару минут. </p>
  <figure id="jnpn" class="m_column">
    <img src="https://img2.teletype.in/files/d9/3e/d93e3967-e909-49b0-a3f8-20a791c6d9fb.png" width="2470" />
  </figure>
  <p id="Szp8">В конце скрипт поздравит вас с установкой Outline и покажет зелёным текстом строку, которую надо скопировать в Outline Manager. Нажимаем «Готово», иии...</p>
  <figure id="Gjmd" class="m_column">
    <img src="https://img2.teletype.in/files/95/e3/95e39ae3-3813-439c-a9df-15345126fd1b.png" width="2500" />
  </figure>
  <p id="dmHr">Успех! ПО установлено.</p>
  <p id="F5vI">А что же нам установил Outline? Так как это ПО работает в Docker, мы можем проверить запущенные контейнеры, выполнив в терминале нашей убунты команду <code>docker ps</code>:</p>
  <pre id="QCEI"># docker ps
CONTAINER ID   IMAGE                              COMMAND                  CREATED         STATUS                   PORTS      NAMES
8b3b05335449   containrrr/watchtower              &quot;/watchtower --clean…&quot;   3 minutes ago   Up 3 minutes (healthy)   8080/tcp   watchtower
bc485a0f8ee6   quay.io/outline/shadowbox:stable   &quot;docker-entrypoint.s…&quot;   3 minutes ago   Up 3 minutes
       shadowbox</pre>
  <p id="ZTKJ">Как видим, запущены два контейнера: сам Outline и ватчдог, который следит за его состоянием. Исходники для них можно найти — это упражнение оставляю пытливому читателю.</p>
  <p id="dtby">Командой <code>netstat -nlp</code> в том же убунтовском терминале можно проверить открытые порты, которые слушает наш сервер:</p>
  <pre id="98n2"># 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
...</pre>
  <p id="P7I5"><br />Пришло время устанавливать клиент — скачивается он <a href="https://getoutline.org/ru/get-started/" target="_blank">там же</a>, где и сервер. Клиенты есть под Android, iOS, Windows, Linux и macOS. После установки на ПК нас встретит вот такое окно:</p>
  <figure id="dgo9" class="m_retina">
    <img src="https://img3.teletype.in/files/ae/5c/ae5ca05e-4117-453f-8c63-5c7caecf7d30.png" width="359" />
  </figure>
  <p id="crZw">Предположим, что вы доверяете разработчикам Outline (иначе вы бы не дали им рут-доступ на предыдущем шаге, не так ли?). Нажимаем ОК.</p>
  <figure id="kWcS" class="m_retina">
    <img src="https://img4.teletype.in/files/74/99/74993cd4-f050-440a-aa17-57a6a2232a42.png" width="359" />
  </figure>
  <p id="V9FO">Нажимаем «Добавить сервер». Приложение запросит ключ доступа — переходим в Outline Manager, и видим, что у нашего сервера внизу установлен один ключ доступа. Нажимаем кнопку Share рядом с ним и копируем ключ в буфер обмена. Клиент Outline автоматически прочитает ключ из буфера обмена, и вставит его <em>(ай-яй-яй, господа, прослушивать буфер обмена — нехорошо!).</em></p>
  <figure id="imo3" class="m_retina">
    <img src="https://img2.teletype.in/files/12/14/12141e81-21ed-4049-9fdc-e91cb57e2870.png" width="359" />
  </figure>
  <p id="K5bS">Нажимаем «Добавить сервер». Сервер появляется в интерфейсе, и теперь осталось только нажать кнопку «Подключить». Готово, вы восхитительны!</p>
  <figure id="sjCR" class="m_column">
    <img src="https://img4.teletype.in/files/70/60/7060efef-e161-4625-bfce-732e2927a7de.png" width="2632" />
  </figure>
  <p id="8Blo">Время установки: около 10 минут.</p>
  <p id="jOWI">Сложность: изи.</p>
  <p id="xCGD">Плюсы:</p>
  <ul id="wq0P">
    <li id="TSiY">быстрая установка</li>
    <li id="o9co">не надо быть линукс-гуру</li>
    <li id="nVVA">работает стабильно</li>
  </ul>
  <p id="eZn9">Минусы:</p>
  <ul id="a084">
    <li id="3eVL">вы доверяете свою виртуалку в прямое управление неизвестной группе лиц</li>
    <li id="J0HL">политические риски (брендированный VPN-клиент могут искать на устройствах пользователей, например — причём не только с помощью личного визита товарища майора)</li>
  </ul>
  <p id="sC7r">Если указанные выше минусы вас устраивают — поздравляю, можете расслабиться и скачивать ваши драйвера с сайта Intel. Меня такой подход не устраивает, поэтому пришло время засучить рукава и погрузиться в колдовство с терминалом. Простенькое, но колдовство.</p>
  <h2 id="zNfD">WireGuard</h2>
  <p id="A1H0">Итак, вы решили немного покрасноглазить и установить самый популярный сервер VPN последних нескольких лет. И сразу же <em>важный дисклеймер</em>: в некоторых сетях банят всех WireGuard-соединения без разбору, включая личные и даже рабочие. Я с таким не сталкивался, но предупредить должен.</p>
  <p id="8XoT">Итак, возвращаемся в исходное положение — у нас есть чистый сервер с Ubuntu 22.04, конфиг которого я описал в разделе про <a href="#fwSO">Outline</a>. Заходим на него по SSH, обновляем, перезагружаем...</p>
  <p id="7eP1">У нас есть два пути: тяжёлый и полегче. Тяжёлый — это устанавливать руками wireguard-tools, бодаться с ключами, и так далее. Лёгкий — взять готовый докер-контейнер с конфигуратором, например, <a href="https://github.com/wg-easy/wg-easy" target="_blank">тут</a>. К контейнеру прилагается читаемый <a href="https://github.com/wg-easy/wg-easy/blob/master/Dockerfile" target="_blank">Dockerfile</a> и исходники админ-панели, идущей в комплекте. В этот раз мы пойдём лёгким путём.</p>
  <p id="BRhR">Для начала, устанавливаем Docker последней версии. Для этого вводим в терминале Ubuntu команду:</p>
  <pre id="htBT"> # curl https://get.docker.com/ | sh</pre>
  <p id="7qXd">Этот автоматический скрипт добавит репозиторий Docker в систему и установит его. Напоминаю, что перед запуском скриптов на своей машине в них лучше <a href="https://get.docker.com/" target="_blank">заглянуть</a>!</p>
  <p id="jHmh">После завершения выполнения скрипта командой <code>docker info</code> проверяем, что сервис установился. В ответ на команду в консоли должно появиться нечто подобное:</p>
  <pre id="MYeF"># 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</pre>
  <p id="jOVR">Следующим шагом будет написание файла Docker Compose: это специальный файл, который описывает запускаемый Docker-ом сервис с его параметрами. Написание таких файлов для запускаемых контейнеров — отличная идея. Он позволяет обеспечить автозапуск и управление сервисом простыми командами, без длинной колбасы параметров командной строки. Файл Docker Compose называется <code>docker-compose.yaml</code>. Для его написания на сервере введите команду <code>nano ~/docker-compose.yaml</code></p>
  <figure id="GhWs" class="m_column">
    <img src="https://img1.teletype.in/files/81/6c/816c6aa8-e6ef-4aac-b57d-a888089a143c.png" width="2470" />
  </figure>
  <p id="2vyL">Откроется не самый дружелюбный в мире текстовый редактор Nano, который, впрочем, позволяет в себя спокойно копипастить — а большего нам, в целом и не требуется. Ваш файл <code>docker-compose.yaml</code> должен выглядеть примерно вот так:</p>
  <pre id="yHfc">version: &quot;2.4&quot;

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

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

]]></content:encoded></item></channel></rss>