<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vladimir Avakumov</title>
    <description>The latest articles on DEV Community by Vladimir Avakumov (@vladimir_avakumov).</description>
    <link>https://dev.to/vladimir_avakumov</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2978377%2F6571c997-effa-4d58-a6e3-67cb173b59b4.png</url>
      <title>DEV Community: Vladimir Avakumov</title>
      <link>https://dev.to/vladimir_avakumov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vladimir_avakumov"/>
    <language>en</language>
    <item>
      <title>Установка WireGuard</title>
      <dc:creator>Vladimir Avakumov</dc:creator>
      <pubDate>Wed, 26 Mar 2025 12:11:56 +0000</pubDate>
      <link>https://dev.to/vladimir_avakumov/ustanovka-wireguard-o7i</link>
      <guid>https://dev.to/vladimir_avakumov/ustanovka-wireguard-o7i</guid>
      <description>&lt;p&gt;Будем устанавливать WireGuard на сервер и настраивать клиента. Сервер ubuntu 22.04, клиент manjaro linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  Серверная часть
&lt;/h2&gt;

&lt;p&gt;Обновляем пакеты&lt;br&gt;
&lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade -y&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Устанавливаем wireguard&lt;br&gt;
&lt;code&gt;apt install -y wireguard&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Перейдем для удобства в настройки wireguard&lt;br&gt;
&lt;code&gt;cd /etc/wireguard&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Генерируем приватный и публичный ключ wiregurd&lt;br&gt;
&lt;code&gt;wg genkey | tee /etc/wireguard/private.key | wg pubkey | tee /etc/wireguard/public.key&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Команда &lt;code&gt;tee&lt;/code&gt; принимает данные, записывает их в файл и отправляет их дальше в stdout. Таким образом у нас создадутся 2 файла private.key и public.key с ключами.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Создаем файл с конфигурацией&lt;br&gt;
&lt;code&gt;vim wg0.conf&lt;/code&gt; со следующим содержимым:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Interface]
PrivateKey = &amp;lt;Приватный ключ сервера из файла private.key&amp;gt;
Address = 10.0.0.1/24  # Внутренний IP сервера
ListenPort = 51820  # Порт для подключения
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

#[Peer]
#PublicKey = &amp;lt; Публичный ключ клиента 1&amp;gt;
#AllowedIPs = 10.0.0.2/32

#[Peer]
#PublicKey = &amp;lt; Публичный ключ клиента 2&amp;gt;
#AllowedIPs = 10.0.0.3/32
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;В этот файл мы должны вставить приватный ключ из private.key. Адрес 10.0.0.1/24 будет для сервера. Сервер будет доступен по этому адресу. Также у нас есть 2 клинта с адресами 10.0.0.3 и 10.0.0.2. Пока все что относится к клиентам закоментировано.&lt;/p&gt;

&lt;p&gt;Настройка проброски портов&lt;br&gt;
&lt;code&gt;echo "net.ipv4.ip_forward=1" &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Проверка &lt;code&gt;sysctl -p&lt;/code&gt; должна вывести &lt;code&gt;net.ipv4.ip_forward=1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Создаем службу wireguard&lt;br&gt;
&lt;code&gt;systemctl enable wg-quick@wg0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;После успешного создания стартуем&lt;br&gt;
&lt;code&gt;systemctl start wg-quick@wg0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Проверяем статус&lt;br&gt;
&lt;code&gt;systemctl status wg-quick@wg0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Начинаем добавлять клиентские ключи&lt;br&gt;
&lt;code&gt;wg genkey | tee /etc/wireguard/client1_private.key | wg pubkey | tee /etc/wireguard/client1_public.key&lt;/code&gt;&lt;br&gt;
&lt;code&gt;wg genkey | tee /etc/wireguard/client2_private.key | wg pubkey | tee /etc/wireguard/client2_public.key&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Раскомментируем в файле wg0.conf и вставим ключи из client1_public.key и client2_public.key&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Peer]
PublicKey = &amp;lt; Публичный ключ клиента 1&amp;gt;
AllowedIPs = 10.0.0.2/32

[Peer]
PublicKey = &amp;lt; Публичный ключ клиента 2&amp;gt;
AllowedIPs = 10.0.0.3/32
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Рестарт wireguard&lt;br&gt;
&lt;code&gt;systemctl restart wg-quick@wg0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;На этом настройка сервера закончена. Приступаем к клиенту.&lt;/p&gt;
&lt;h2&gt;
  
  
  Клиентская часть
&lt;/h2&gt;

&lt;p&gt;Создаем конфигурационный файл для клиента wireguard wg_client1.conf&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Interface]
PrivateKey = &amp;lt;Приватный ключ клиента 1&amp;gt;
Address = 10.0.0.2/32
DNS = 8.8.8.8

[Peer]
PublicKey = &amp;lt;Публичный ключ сервера&amp;gt;
Endpoint = &amp;lt;публичный адрес сервера&amp;gt;:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Создаем конфигурационный файл для клиента wireguard wg_client2.conf&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Interface]
PrivateKey = &amp;lt;Приватный ключ клиента 1&amp;gt;
Address = 10.0.0.3/32
DNS = 8.8.8.8

[Peer]
PublicKey = &amp;lt;Публичный ключ сервера&amp;gt;
Endpoint = &amp;lt;публичный адрес сервера&amp;gt;:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Для запуска можно использовать любые клиенты для android, windows, linux. Для запустка в linux manjaro устанавливаем клиента&lt;br&gt;
&lt;code&gt;sudo pacman -S wireguard-tools&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Копируем конфигурационныe файлы&lt;br&gt;
&lt;code&gt;sudo cp wg_client1.conf /etc/wirequard/client1.conf&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo cp wg_client2.conf /etc/wirequard/client2.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Запускаем клиента&lt;br&gt;
&lt;code&gt;sudo wg-quick up client1&lt;/code&gt; или &lt;code&gt;sudo wg-quick up client2&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Останавливаем&lt;br&gt;
&lt;code&gt;sudo wg-quick down client1&lt;/code&gt; &lt;/p&gt;

</description>
      <category>linux</category>
    </item>
  </channel>
</rss>
