Установим и настроим Wireguard за несколько минут
До недавнего времени я пользовался исключительно OpenVPN, о поднятии которого я писал ранее:
Быстрая установка OpenVPN на Ubuntu 16.04
И ввиду относительно невысокой скорости моего интернета я полагал, что мне его будет достаточно. Но все познается в сравнении.
Для общего развития решил поднять у себя Wireguard и был приятно удивлен. Например, скорость подключения Wireguard — она моментальная, тогда как OpenVPN требуется секунд 5-7. Ну и сама скорость соединения, конечно. С Wireguard я не вижу разницы — подключен VPN или нет, скорость практически одинаковая. На OpenVPN просадка была даже больше чем в 2 раза.
Как обстоят дела с высокоскоростными подключениями я на своем опыте не скажу, но никто не мешает взглянуть на многочисленные сравнения Wireguard с OpenVPN, о которых написано немало.
Теперь об установке. Можно все составлять руками, достаточно открыть документацию Wireguard. Но я нашел на гитхаб скрипт быстрой настройки конфига.
Для начала нужно добавить репозиторий WireGuard:
add-apt-repository ppa:wireguard/wireguard
И выполнить обновление пакетов:
apt-get update
Теперь установим Wireguard и другие необходимые пакеты:
apt-get install wireguard-tools mawk grep iproute2 qrencode
Затем качаем сам скрипт:
wget https://raw.githubusercontent.com/burghardt/easy-wg-quick/master/easy-wg-quick
И даем ему права на выполнение:
chmod +x easy-wg-quick
Теперь запустим скрипт командой:
./easy-wg-quick
После первого запуска скрипт создаст файл конфигурации для сервера и для одного клиента, а так же выведет QR код, который можно отсканировать в мобильном приложении WireGuard
Если нужно добавить еще клиентов — просто запускаем скрипт еще раз, конфиг будет создан.
Все конфиги будут лежать в том каталоге, откуда запускаем скрипт. Конфиги будут с именами wgclient_10.conf, wgclient_11.conf и т.д., по порядку.
Так же можно задать имя конфига при выполнении скрипта, для удобства:
./easy-wg-quick client_name
Теперь добавляем сервис WireGuard в автозапуск:
cp wghub.conf /etc/wireguard/wghub.conf systemctl enable wg-quick@wghub
И запускаем:
systemctl start wg-quick@wghub
Для просмотра подключений используется команда:
wg show
После добавления новых клиентов обновляем конфиг и выполняем перезагрузку сервиса:
cp wghub.conf /etc/wireguard/wghub.conf systemctl restart wg-quick@wghub
Обо всех остальных тонкостях можно почитать на странице этого скрипта github
Update 23.03.2022:
Все пользователи (peer) и их ключи перечислены в файле wghub.conf. Вот так он выглядит после создания первого:

Чтобы удалить определенного клиента — peer, удаляем запиь о нем (на скрине выше выделил красным) из файла wghub.conf
nano wghub.conf
Сохраняем, обновляем конфиг и перезапускаем WireGuard командами:
cp wghub.conf /etc/wireguard/wghub.conf systemctl restart wg-quick@wghub
Все настроил по инструкции. Но работает как-то странно. В браузере доступ только с фейсбуку, гуглю, может ещё к чему-то такому. Остальное все не работает почему-то.
Вы на vps делали? С него есть доступ на все остальное?
Да, на впске от Digital Ocean. OpenVPN на точно такой же впске нормально работает.
Значит нужно все же подправить конфиг. На гугловском впс все работает.
Знать бы еще, что править в конфиге. Правки DNS не помогли.
Хочется, конечно, разобраться.. Но это уже не «быстрая» установка. Чтобы быстро, попробуйте все те же манипуляции, но другой скрипт (если вы ставили скрипт из статьи, вам придется его удалить из сервисов и из автозапуска командами : sudo systemctl disable wg-quick@wghub и sudo rm /etc/wireguard/wghub.conf Затем перезагрузите sudo reboot и проверьте, что команда wg show вам не выдает информацию о подключении — надеюсь ничего не упустил) Лучше, конечно, попробовать на чистой машине. Сам скрипт. Скачиваем командой wget https://raw.githubusercontent.com/drew2a/wireguard/master/wg-ububtu-server-up.sh Затем даем права chmod +x ./wg-ububtu-server-up.sh И запускаем ./wg-ububtu-server-up.sh 1 где 1 это количество создаваемых конфигураций для клиентов. Если все прошло успешно —… Подробнее »
все сделал, wg show показывает. Но не понятно, как теперь получить qr код для подключения на телефоне?
qr код — это была фишка скрипта из статьи, вам придется вручную переписать настройки в телефон из client1.conf (как пример), лежащий в домашнем каталоге
попробовал сделать код с помощью # qrencode -t ansiutf8 < /etc/wireguard/wg0.conf но телефон говорит, что некорректный qr код
не понял из какого конфига? у меня в /root только старые какие-то файлы лежат, похожие на конфиг от старой инсталяции, а от сегодняшнего дня там ничего нет, кроме установочного скрипта.
Скрипт должен был создать конфиги для клиентов client1.conf, client2.conf и тд. Их нужно указать.
Сейчас попробовал на своих конфигах команду sudo qrencode -t ansiutf8 < wgclient_10.conf qr код приложение приняло, но пришлось поправить Endpoint ( конечная точка) на внешний белый Ip моего vps. Порт был указан верно
# qrencode -t ansiutf8 < /root/wireguard/client1.conf тоже qr код не воспринимается. Да, у меня убунта 18.0.4 на DO.
Все, wg show что-то вообще перестало что либо показывать. Ладно, не судьба похоже, останусь на OpenVPN. Как-то слишком тут все заморочено.
В свободное время подниму vps на Digital Ocean и попробую. У вас на Digital Ocean Ubuntu 16.04, верно?
Все переделал по изначальному способу, описанному в статье. Только запускаю сервис не через systemctl, а с помощью # wg-quick up ./wghub.conf Теперь все нормально работает.
Подскажите пожалуйста, как удалить учетную запись, которую создал для клиента? Чтобы он больше не смог подключаться по тем настройкам, по которым раньше подключался? Я удалил его conf файл, но все равно он может подключаться.
Здравствуйте! Добавил информацию в статью
Спасибо огромное!! Вы мне очень сильно помогли! 🙂
А могут ли как-то взломать Wireguard? Есть ли способы защиты?
Как можно защитить Ubuntu на VPS? Могут ли применить брутфорс?
Взломать можно практически все, была бы цель и желание. Брутфорс, конечно, маловероятен. По поводу настройки Ubuntu в плане безопасности в интернете есть много статей. Себе я дополнительно настраивал оповещение в Телеграм при входе root пользователя, есть у меня в блоге статья. Но, почему-то, не у всех работал скрипт.
В любом случае используйте сложные и уникальные пароли и не храните ничего важного на vps
Почему-то приложение Instagram долго начало грузить видео при включенном VPN (Wireguard). Хотя раньше было все норм.
А если заходить через браузер на сайт инстаграма, то все быстро грузится. В чем может быть проблема?
Может ли помочь смена DNS?
Сейчас так: DNS = 1.1.1.1
Как поменять его?
Всем клиентам придется перенастраивать VPN?
Предположу, что проблема на стороне Вашего vps, так как весь трафик идет через интернет провайдера хостера
Смена DNS не поможет?
А аренда VPS другой страны этого же хостера?
Попробуйте, метод исключения очень часто помогает) Кстати, у некоторых хостеров можно бесплатно запросить смену локации для уже купленного vps
Благодарю за ответы. Может порекомендуете VPS?
Тут каждый сам решает, рекламу не даю) Цены не такие кусачие, можно поэкспериментировать и найти подходящего под личные нужды.
Еще заметил, что через VPN не работают сайты СДЕК и авито.
Можно ли как то добавить эти сайты в ограничения Wireguard?
Видел такую опцию в клиенте OpenVPN на андроид, можно включить впн только для определенных приложений. В официальном клиенте Wireguard такой опции не нашел. Но это касается только андроид, на остальных ОС не доводилось настраивать, поэтому не подскажу.