Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save JohnyDeath/3f93899dc78f90cc57ae52b41ea29bac to your computer and use it in GitHub Desktop.
Save JohnyDeath/3f93899dc78f90cc57ae52b41ea29bac to your computer and use it in GitHub Desktop.
Инструкция по развертыванию собственного VPN-сервиса на базе Outline VPN

Установка Outline VPN на Ubuntu 20.04

Outline VPN - это бесплатный инструмент с открытым исходным кодом, позволяющий развернуть собственную VPN на Вашем собственном сервере или на машине облачного провайдера. Подробную информацию Вы можете узнать здесь и здесь.

В своем составе имеет как графические инструменты, так и средства работы через командную строку. Позволяет использовать VPN как на настольных компьютерах, так и на мобильных устройствах.

Прежде чем начать

Вам нужен сервер. Да, его нужно арендовать, учитывая его местоположение. Например, если Вам нужно получать доступ к ресурсам, которые недоступны в текущем местоположении, но доступны, например, в Канаде, то смело арендуйте виртуальную машину в AWS, Digital Ocean или любом другом месте.

Для простых задач, например открытие сайтов, обмена текстовыми сообщениями в мессенджерах и т.д., подойдет хост с минимальными ресурсами:

  • 1 ядро CPU.
  • 1 ГБ RAM (можно и меньше).
  • 10 GB HDD для файлов ОС в основном.

Стоимость аренды такого сервера от 3$ до 5$ в месяц, плюс-минус. По необходимости ресурсов можно добавлять поболее. Операционная система - Ubuntu 20.04, т.к. инструкция именно для нее :)

Как арендовать виртуальную машину тут рассматривать не будем, все зависит от провайдера.

Начальная настройка сервера

И так, виртуальная машина арендована, доступ к ней по SSH имеется, Ubuntu установлена. Далее устанавливаем последние обновления.

sudo apt update
sudo apt upgrade

Сделайте перезагрузку машины после этого, если есть необходимость после установки обновлений.

Сразу настроим брэндмауэр, чтобы защитить машину от несанкционированного доступа.

sudo ufw allow 443/tcp
sudo ufw allow 8080/tcp

Открываем доступ через SSH.

sudo ufw allow 22/tcp

Если у Вас статический IP, то для безопасности доступ по SSH можно разрешить только для него.

sudo ufw allow from <ВашПостоянныйIP> to any port 22

И включаем брэндмауэр.

sudo ufw enable

Отлично! Машина защищена. Идем дальше.

Установка Outline Server

Для установки воспользуемся готовыми скриптами из проекта outline-server компании Jigsaw.

Скрипт находится по адресу:

https://github.com/Jigsaw-Code/outline-server/blob/master/src/server_manager/install_scripts/install_server.sh

Для установки достаточно выполнить следующую команду.

sudo wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh | bash

Будет установлен Docker и службы самого Outline, а также все зависимости. При необходимости Вы можете установить Docker самостоятельно перед запуском скрипта.

sudo curl https://get.docker.com | sh

Когда скрипт закончит, то выведет примерно такое содержимое.

{ 
  "apiUrl": "https://0.0.0.0:0000/XXXXXXXXXXXX", 
  "certSha256": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
}

Сохраните это себе на будущее. По факту сервер Outline VPN уже установлен и нам лишь нужно его настроить для своих нужд.

Клиент для управления сервером

Управление серверном VPN, в т.ч. раздача доступов, осуществляется с помощью Outline Manager, доступной для Windows, Max и Linux.

При запуске нужно добавить сервер и выбрать "Настроить Outline где угодно". Появится инструкция по установке с помощью скрипта, который мы ранее запускали. А после поле для ввода ключа и адреса, который Вы до этого сохранили.

После этого у Вас появится доступ к управлению сервером.

Добавляем ключ

В Outline Manager добавляем новый ключ в управлении сервером. Программа покажет ссылку на инструкцию и сам ключ в виде строки:

ss://[email protected]:0/?outline=1

Скопируйте этот ключ, он понадобиться при запуске клиента Outline.

Клиент для подключения

И последний шаг - установка клиента для подключения. Есть приложения для Android, Windows, Chrome, iOS, MacOS, Linux.

При первом запуске нужно нажать "Добавить сервер" и вставить полученный выше ключ.

Готово!

Послесловие

Теперь Вы можете использовать Outline VPN. Надеюсь, что Вы будете его использовать без злого умысла.

Полезные ссылки

@igorshirinkin
Copy link

Всё? Заблокировали протокол? Ничего не помогает из вышеуказанного

Хм, пока всё работает. Может стоит снести и попробовать заново

Спасибо за ответ.
Да, действительно работает. Забыл выключить после установки протокол wireguard, поэтому был конфликт.

@KolinPower
Copy link

Здравствуйте, подскажите, а автоматические обновление предусмотрено в этом скрипте? Или как оно происходит? А если его нет, то как обновить Outline не потеряв настройки?

@sigra
Copy link

sigra commented May 21, 2024

Здравствуйте, подскажите, а автоматические обновление предусмотрено в этом скрипте? Или как оно происходит? А если его нет, то как обновить Outline не потеряв настройки?

Там автообновление из коробки работает — watchtower за это отвечает.

@KolinPower
Copy link

Здравствуйте, подскажите, а автоматические обновление предусмотрено в этом скрипте? Или как оно происходит? А если его нет, то как обновить Outline не потеряв настройки?

Там автообновление из коробки работает — watchtower за это отвечает.

Понял, большое спасибо за ответ.

@BessonovVyacheslav1
Copy link

У меня проблема. Настроил с Wi-Fi работы, всё работает кайфую. А вот пришел домой, раздал с телефона и ничего не работет, открываю в бразуере сайты и он пишет "ERR_NAME_NOT_RESOLVED" что делать!? Не открывает ни один сайт, ну кроме апаче сервера на самом впс. С одного айпишника (вайфай работы) работает, а с другого нет, с чем это может быть связано? (Уже пытался переустановить аутлайн, даже всю систему переустановил и запустил с нуля - то же самое)

@MaxKuklyaev
Copy link

MaxKuklyaev commented Aug 10, 2024 via email

@SaramaSaab
Copy link

Привет! Проблема. Был на сервере настроен openVpn, работал норм. Сегодня на этом же сервере настроила outline по инструкции выше - outline норм работает. Но полностью отвалился openVpn. Тотальная потеря пакетов и, как следствие, под openVpn интернет не работает. Совсем. Как-то можно исправить?

@Angel996
Copy link

Angel996 commented Aug 21, 2024

SaramaSaab, у меня тоже 3 часа назад перестал работать OpenVPN, к серверу коннектится, а входящего трафика нет. Просто "сам по себе" перестал работать, я ничего не делал. Установил сейчас Outline, он работает, но с какими-то тормозами... Сервер в Digital Ocean.

@dmitrysdr
Copy link

Сервер в digital ocean, wireguard отвалился. Поставил outline, надеюсь его не заблочат

@tryapkin
Copy link

Ребят, все сделал по инструкции, ничего не происходит после ввода команды, просто тишина
image

@SaramaSaab
Copy link

SaramaSaab, у меня тоже 3 часа назад перестал работать OpenVPN, к серверу коннектится, а входящего трафика нет. Просто "сам по себе" перестал работать, я ничего не делал. Установил сейчас Outline, он работает, но с какими-то тормозами... Сервер в Digital Ocean.

Забила на опенвпн. Возможно начинают блочить наши же. Пока тоже работает нормально оутлайн.

@voyagerD
Copy link

не работает через мобильный интернет на смартфоне, через wi fi все ок, пробовал добавить днс 8.8.8.8, не помогло

@tryapkin
Copy link

не работает через мобильный интернет на смартфоне, через wi fi все ок, пробовал добавить днс 8.8.8.8, не помогло

Не спеши с выводами. Вы скорее всего обновились до ios 18.1 beta. Это само ПО лагает, через 3-4 дня заработает снова.

@voyagerD
Copy link

не работает через мобильный интернет на смартфоне, через wi fi все ок, пробовал добавить днс 8.8.8.8, не помогло

Не спеши с выводами. Вы скорее всего обновились до ios 18.1 beta. Это само ПО лагает, через 3-4 дня заработает снова.

привет, у меня андроид 13, это не зависит от ОС, зависит от мобильных операторов, у моих клиентов разные ос и операторы и ни у кого не работает, хотя на домашнем вай фае работает

@SergeiOv
Copy link

Привет, а можно как-то настроить опцию, чтобы outline только для дискорда работал?

@ovmiev
Copy link

ovmiev commented Oct 15, 2024

Поднял свой сервер outline, все заблокированные сайты работают. Но делал это для одной игры на андроид, там почему то впн не работает как надо, должен появиться дополнительный функционал, а его нет. Если подтягиваю ключи outlinr Из интернета, там все работает. Что я делаю не так?

@igorshirinkin
Copy link

Привет, а можно как-то настроить опцию, чтобы outline только для дискорда работал?

Здесь поможет https://habr.com/en/articles/767464/

@ovmiev
Copy link

ovmiev commented Oct 17, 2024 via email

@SergeiOv
Copy link

Привет, есть приложение AmneziaVPN, ключи от outline подходят. Там можно настроить раздельное туннелирование для сайтов и приложений. Но это для андроид, для windows нужно пробовать. чт, 17 окт. 2024 г. в 08:12, Igor Shirinkin @.>:

@.
* commented on this gist. ------------------------------ Привет, а можно как-то настроить опцию, чтобы outline только для дискорда работал? Здесь поможет https://habr.com/en/articles/767464/ — Reply to this email directly, view it on GitHub https://gist.github.com/JohnyDeath/3f93899dc78f90cc57ae52b41ea29bac#gistcomment-5239426 or unsubscribe https://github.com/notifications/unsubscribe-auth/BDX43KQALVCNSO243473FXTZ35BKHBFKMF2HI4TJMJ2XIZLTSKBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDHNFZXJJDOMFWWLK3UNBZGKYLEL52HS4DFVRZXKYTKMVRXIX3UPFYGLK2HNFZXIQ3PNVWWK3TUUZ2G64DJMNZZDAVEOR4XAZNEM5UXG5FFOZQWY5LFVEYTCNJQGM3TONBQU52HE2LHM5SXFJTDOJSWC5DF . You are receiving this email because you commented on the thread. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub .

Спасибо, всё заработало

@moriccelli
Copy link

привет. У меня вот так это выглядит:
image

ни с телефона, ни с ubuntu не завдится интегрнет. При этом ssh соединение со всеми серверами сохраняется.

@Msik
Copy link

Msik commented Dec 7, 2024

можно ли как то настроить балансировщик, чтобы если один сервер отвалился, то трафик шел через другой сервер?

@Wurdeg
Copy link

Wurdeg commented Dec 25, 2024

Запустил сервер как написано. При подключении Outline Clietn к серверу и скорость инета равна около 0. В чем может быть причина и как ее можно решить?

@Dorfik12
Copy link

root@v357555767:~# sudo wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh | bash

Verifying that Docker is installed .......... OK
Verifying that Docker daemon is running ..... OK
Setting PUBLIC_HOSTNAME to external IP ...... OK
Creating persistent state dir ............... OK
Generating secret key ....................... OK
Generating TLS certificate .................. OK
Generating SHA-256 certificate fingerprint .. OK
Writing config .............................. OK
Starting Shadowbox .......................... FAILED

Unable to find image 'quay.io/outline/shadowbox:stable' locally
docker: Error response from daemon: Get "https://quay.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.
Sorry! Something went wrong. If you can't figure this out, please copy and paste all this output into the Outline Manager screen, and send it to us, to see if we can help you.
Full log: /tmp/outline_logw3mAGOtlWJ
Выдает ошибку, что не так? кто подскажет

@phq70rus
Copy link

phq70rus commented Jan 3, 2025

root@v357555767:~# sudo wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh | bash

Verifying that Docker is installed .......... OK
Verifying that Docker daemon is running ..... OK
Setting PUBLIC_HOSTNAME to external IP ...... OK
Creating persistent state dir ............... OK
Generating secret key ....................... OK
Generating TLS certificate .................. OK
Generating SHA-256 certificate fingerprint .. OK
Writing config .............................. OK
Starting Shadowbox .......................... FAILED

Unable to find image 'quay.io/outline/shadowbox:stable' locally docker: Error response from daemon: Get "https://quay.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers). See 'docker run --help'. Sorry! Something went wrong. If you can't figure this out, please copy and paste all this output into the Outline Manager screen, and send it to us, to see if we can help you. Full log: /tmp/outline_logw3mAGOtlWJ Выдает ошибку, что не так? кто подскажет

Не знаю, как. Но получилось.
Насчет команды:
sudo wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh | bash
Такое впечатление, что репозиторий, на который ссылается сценарий, в доступе не 24/7.
Завелось по принципу "утро вечера мудренее".
Пока работает. 03.01.2025

@halatik92
Copy link

halatik92 commented Jan 8, 2025

привет. У меня вот так это выглядит: image

ни с телефона, ни с ubuntu не завдится интегрнет. При этом ssh соединение со всеми серверами сохраняется.

Нашел статью что этот косяк из-за особенностей версии ubuntu, как починить пока не нашел (((((

В одном из обсуждений прочитал, что временным решением является отключение ipv6
Вроде еще можно использовать приложение v2raya из снапСтора

Решение через v2raya у меня сработало

@kssg4
Copy link

kssg4 commented Jan 9, 2025

В статье некорректный (или устаревший?) конфиг файервола.
Заместо sudo ufw allow 8080/tcp требуется sudo ufw allow 1024:65535/tcp.

@mrprogre
Copy link

mrprogre commented Jan 13, 2025

Сделал всё как надо, но в Инстаграме когда ввожу проверочный код после ввода логина и пароля, то получаю ошибку "feedback_required" и авторизация дальше не идёт.
С другим VPN на этом этапе захожу без проблем.. кто сталкивался? как чинить такое?
image

@nihosprop
Copy link

nihosprop commented Jan 14, 2025

а для чего Docker?
upd: а все вижу...работает в контейнере

@zdrpepe
Copy link

zdrpepe commented Feb 3, 2025

where the logs are stored

@atellmer
Copy link

You need to enable ipv6 for Outline

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment