Связанные руководства
VPN на Linux-сервере и для консольных утилит
Обновлено
На Linux два пути, в зависимости от задачи. Чтобы пустить через маршрут всю машину (загрузка образов Docker, сервисы, которым нужен доступ за рубеж, машины без присмотра), используйте OpenVPN: один профиль в /etc/openvpn/client/ с запуском при загрузке. Чтобы пустить только несколько команд (git, pip, npm, curl), используйте «Веб Прокси»: укажите адрес прокси в переменной http_proxy, и больше ничего не меняется. На настольном Linux можно ещё импортировать профиль через сетевой менеджер. В статье — все три варианта, файл с учётными данными и команды для проверки.
Путь первый: вся машина через маршрут (OpenVPN)
- Установите клиент. Debian/Ubuntu:
sudo apt install openvpnFedora:sudo dnf install openvpnArch:sudo pacman -S openvpn - Войдите на сайт и скачайте .ovpn нужного региона на странице OpenVPN. В профиль для Linux учётные данные не встроены (сетевые менеджеры отклоняют такие файлы), поэтому создайте файл с учётными данными: две строки — почта, указанная на сайте, и пароль. Затем ограничьте доступ, чтобы читать его могли только вы:
chmod 600 <credentials-file> - Скопируйте .ovpn в /etc/openvpn/client/<region>.conf (<region> — название региона) и впишите в нём путь к файлу с учётными данными после auth-user-pass.
- Включите и запустите:
sudo systemctl enable --now openvpn-client@<region>Проверьте состояние:systemctl status openvpn-client@<region>Проверьте выход — должен показываться выбранный регион:curl -s https://ipinfo.io/country - Для другого региона скачайте другой профиль и включите ещё один юнит; одновременно запускайте только один.
Путь второй: через маршрут только консольные утилиты («Веб Прокси»)
Адрес прокси со страницы «Веб Прокси» на нашем сайте и ваши учётные данные прописываются прямо в переменные окружения (спецсимволы в пароле нужно закодировать для URL): export https_proxy=https://user:password@proxy-address export http_proxy=$https_proxy После этого curl, wget, git, pip и npm в этой оболочке идут через маршрут, а больше ничего не затрагивается.
Демон Docker переменные оболочки не видит: пропишите строки Environment= в /etc/systemd/system/docker.service.d/proxy.conf и перезапустите docker; для apt задайте Acquire::https::Proxy в /etc/apt/apt.conf.d/proxy.conf.
На этом пути соединения, которое могло бы оборваться, нет в принципе; не нужны права root и не меняются маршруты — то, что надо для корпоративных серверов и когда нужно только ускорить загрузки; работает для программ, которые учитывают переменные прокси.
Путь третий: настольный Linux через сетевой менеджер
- Установите network-manager-openvpn-gnome (один клик на странице OpenVPN на нашем сайте открывает центр приложений).
- «Параметры» → «Сеть» → «VPN» → «+» → «Импортировать из файла» (Import from file), выберите .ovpn, введите почту, указанную на сайте, и пароль, сохраните.
- Включайте и выключайте VPN с верхней панели или из трея. Чтобы подключаться при загрузке, в настройках проводного или беспроводного подключения отметьте «Автоматически подключаться к VPN» (Automatically connect to VPN).
Проверка и неполадки
- Выход — в поле country должен быть выбранный регион:
curl -s https://ipinfo.io - DNS — у VPN-интерфейса должен быть DNS, который выдал маршрут:
resolvectl statusЕсли есть утечка, добавьте в профиль dhcp-option DNS или используйте скрипт update-systemd-resolved. - AUTH_FAILED: неверный файл с учётными данными или истёк срок аккаунта; после смены пароля обновите файл.
- TLS handshake timeout: UDP до сервера не проходит — смените регион или сеть; на облачных серверах разрешите исходящий UDP в группе безопасности.
- Сервер в Китае, которому китайские зеркала нужны напрямую: после подключения через маршрут уходит всё, так что направьте apt / pip / npm на китайские зеркала или используйте второй путь, чтобы пускать через маршрут только отдельные команды.
Что нужно знать
- Linux-машина считается одним устройством в лимите одновременно подключённых устройств вашего тарифа (2 на «Личном», 4 на «Семейном», 8 на «Корпоративном»), общем с другими вашими устройствами; «Веб Прокси» из второго пути тоже считается по подключениям.
- Профиль и файл с учётными данными — это ваш аккаунт: никогда не коммитьте их в git-репозиторий и не вшивайте в образ.
- Смена пароля сразу делает старые профили недействительными — так задумано; обновите файл с учётными данными.
- Использование маршрута на облачном сервере регулируется условиями облачного провайдера; сервис записывает только длительность подключения и общий объём трафика.
FAQ
Почему в профиль для Linux не встроены учётные данные?
Сетевые менеджеры отклоняют профили со встроенными учётными данными, и импорт не проходит, поэтому в профиле для Linux их нужно ввести самому; при запуске через systemd они хранятся в файле с учётными данными.
Можно ли пустить через маршрут только Docker?
Да — задайте демону Docker собственные переменные прокси (второй путь) или запустите контейнер с собственным OpenVPN (gluetun), чтобы через маршрут шли только определённые контейнеры.
А «Приватная» (Tailscale) на Linux?
Официальный скрипт ставит её одной строкой; затем войдите командой: tailscale up --login-server=<this site’s control server> (вместо текста в угловых скобках — адрес управляющего сервера нашего сайта). Подходит, когда к машине нужен доступ снаружи или она должна оставаться на связи после настройки; если нужны только более быстрые загрузки, проще OpenVPN или прокси.
С OpenWrt на роутере так же?
Установите в OpenWrt luci-app-openvpn и загрузите .ovpn — и через маршрут пойдёт вся локальная сеть; роутеру с прошивкой с нашего сайта ничего этого не нужно — достаточно войти с аккаунтом.