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. Надеюсь, что Вы будете его использовать без злого умысла.

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

@silinalexandr
Copy link

стартанул докер руками но проблема не ушла: ubuntu@instance-20240205-1143:~$ cat /tmp/outline_logD79r2lzoNe Verifying that Docker is installed Verifying that Docker daemon is running \nSorry! 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_logD79r2lzoNe
в логе все тоже самое что в аутпуте команды

не устанавливается: ubuntu@instance-20240205-1143:~$ 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 .......... NOT INSTALLED
Would you like to install Docker? This will run 'curl https://get.docker.com/ | sh'. [Y/n] > Installing Docker ........................... Y
OK
Verifying Docker installation OK
Verifying that Docker daemon is running ..... ...............
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_logV9fnSqym0t

В логе похоже на проблему с запуском докера:

Verifying Docker installation Verifying that Docker daemon is running
............... \nSorry! 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.

Запускай так sudo wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh | sudo bash

Офигенно! похоже все отработало! Благодарю!

@silinalexandr
Copy link

Блин... не все так уж шолокадно оказалось. После того как скрипт отработал и я получил ссылку для Outline manager я получил ошибку

Outline manager error
Выключать фаервол пробовал.
Похоже что скрипт настроил айпишник внутренний который на VMке. Как можно его на внешний поменять?

@YOKARAMANE
Copy link

YOKARAMANE commented Feb 12, 2024

Блин... не все так уж шолокадно оказалось. После того как скрипт отработал и я получил ссылку для Outline manager я получил ошибку

Outline manager error Выключать фаервол пробовал. Похоже что скрипт настроил айпишник внутренний который на VMке. Как можно его на внешний поменять?

Включи порты на ВПСке которые тебе написало в консоль или ВПН перед добавлением сервера

@Golandzia
Copy link

Блин... не все так уж шолокадно оказалось. После того как скрипт отработал и я получил ссылку для Outline manager я получил ошибку

Outline manager error Выключать фаервол пробовал. Похоже что скрипт настроил айпишник внутренний который на VMке. Как можно его на внешний поменять?

Решил проблему с помощью GPT, вводил следующие команды, если что понтия не имею что они значат но всё заработало

sudo iptables -I INPUT -p tcp --dport 1024:65535 -j ACCEPT

sudo netfilter-persistent save

sudo service iptables save

sudo ufw allow 1024:65535/tcp

sudo ufw reload

@silinalexandr
Copy link

Блин... не все так уж шолокадно оказалось. После того как скрипт отработал и я получил ссылку для Outline manager я получил ошибку
Outline manager error Выключать фаервол пробовал. Похоже что скрипт настроил айпишник внутренний который на VMке. Как можно его на внешний поменять?

Решил проблему с помощью GPT, вводил следующие команды, если что понтия не имею что они значат но всё заработало

sudo iptables -I INPUT -p tcp --dport 1024:65535 -j ACCEPT

sudo netfilter-persistent save

sudo service iptables save

sudo ufw allow 1024:65535/tcp

sudo ufw reload

Спасибо! Помогло. Странно вроде тут в гаде указано что нужно открыть конкретные порты и мы это делаем. Наверно от ОС зависит как это сделать правильно.

@igorshirinkin
Copy link

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

@Golandzia
Copy link

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

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

@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 .

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

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