We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Настройка полноценного VPN‑сервера в Termux для защищённого мобильного доступа

Мобильные устройства часто работают в публичных Wi‑Fi сетях, где защита передаваемых данных оставляет желать лучшего. Termux позволяет превратить Android‑телефон в полноценный Linux‑окружение и, используя его, создать собственный VPN‑сервер. В статье рассматривается пошаговая настройка OpenVPN в Termux, генерация сертификатов, конфигурация сервера и клиентских профилей.

Почему именно OpenVPN в Termux?

  • Open‑source, проверенный временем и аудируемый код.
  • Поддержка широкого набора шифров и алгоритмов аутентификации.
  • Гибкая настройка маршрутизации и firewall‑правил.
  • Отсутствие необходимости в дополнительных платных приложениях.

Предварительные требования

  • Устройство на Android 8.0+ с установленным Termux.
  • Свободный TCP/UDP порт (рекомендовано 1194 UDP) открытый в роутере или в мобильном операторе.
  • Минимум 1 ГБ свободного места для сертификатов и логов.
  • Базовые знания работы в командной строке Linux.

Установка необходимых пакетов

pkg update && pkg upgrade -y
pkg install openvpn easy-rsa iproute2 wget -y

Пакет iproute2 понадобится для настройки маршрутизации, а easy-rsa — для генерации PKI.

Создание PKI (Public Key Infrastructure)

Перейдём в каталог Easy‑RSA и инициализируем PKI:

mkdir -p $HOME/openvpn/easy-rsa
cp -r /data/data/com.termux/files/usr/share/easy-rsa/ $HOME/openvpn/easy-rsa/
cd $HOME/openvpn/easy-rsa
./easyrsa init-pki

Сгенерируем корневой сертификат (CA):

./easyrsa --batch build-ca nopass

Создадим серверный сертификат и ключ:

./easyrsa build-server-full server nopass

И клиентский сертификат (для примера – пользователь mobile):

./easyrsa build-client-full mobile nopass

Сгенерируем dh параметры и tls-crypt ключ (повышает безопасность от атак типа DoS):

openvpn --genkey --secret ta.key
./easyrsa gen-dh

Подготовка конфигурации сервера

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

mkdir -p $HOME/openvpn/server
cp pki/ca.crt pki/private/ca.key pki/issued/server.crt pki/private/server.key pki/dh.pem ta.key $HOME/openvpn/server/

Основной конфигурационный файл server.conf:

cat > $HOME/openvpn/server/server.conf <<'EOF'
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-crypt ta.key
cipher AES-256-GCM
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 60
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
status openvpn-status.log
log-append openvpn.log
verb 3
EOF

Убедитесь, что файл имеет права доступа 600:

chmod 600 $HOME/openvpn/server/

Запуск OpenVPN сервера

Для первого запуска используем:

openvpn --config $HOME/openvpn/server/server.conf

Если всё прошло успешно, в логах появятся строки Initialization Sequence Completed. Чтобы сервер работал в фоне, запустим его через nohup:

nohup openvpn --config $HOME/openvpn/server/server.conf &

Создание клиентского профиля

Соберём клиентский .ovpn файл, включив в него сертификаты и ключи:

cat > $HOME/openvpn/client/mobile.ovpn <<'EOF'
client
dev tun
proto udp
remote YOUR_PUBLIC_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
key-direction 1

$(cat $HOME/openvpn/easy-rsa/pki/ca.crt)


$(cat $HOME/openvpn/easy-rsa/pki/issued/mobile.crt)


$(cat $HOME/openvpn/easy-rsa/pki/private/mobile.key)


$(cat $HOME/openvpn/server/ta.key)

verb 3
EOF

Замените YOUR_PUBLIC_IP на ваш внешний IP‑адрес (или DDNS‑имя). Файл mobile.ovpn можно перенести на Android‑устройство через scp, adb pull или любую облачную службу.

Подключение клиента

Установите приложение OpenVPN for Android и импортируйте полученный .ovpn. После импорта нажмите «Connect» – соединение должно установиться, а в журнале появиться строка CONNECTED,SUCCESS.

Тестирование и отладка

  • Проверьте ваш публичный IP через curl ifconfig.me до и после подключения – они должны различаться.
  • Для трассировки маршрута используйте traceroute 8.8.8.8 и убедитесь, что трафик идёт через туннель.
  • Логи сервера находятся в $HOME/openvpn/server/openvpn.log. При ошибках ищите строки ERROR или WARN.

Автозапуск и повышение безопасности

Чтобы сервер автоматически стартовал после перезагрузки Termux, добавьте команду в ~/.bashrc:

echo "nohup openvpn --config $HOME/openvpn/server/server.conf &" >> ~/.bashrc

Для ограничения доступа к портам используйте iptables (встроенный в Termux как iptables-nft):

iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP

Не забудьте сохранить правила, чтобы они сохранялись между сессиями (например, скриптом save-iptables.sh).

Заключение

Развёртывание OpenVPN‑сервера в Termux позволяет превратить обычный Android‑телефон в надёжный шлюз для защищённого доступа к интернету в любой точке мира. При правильной настройке вы получаете:

  • Контроль над шифрованием и политиками доступа.
  • Гибкую маршрутизацию и возможность объединения нескольких мобильных устройств в единую VPN‑сеть.
  • Минимальные затраты – всё работает на уже имеющемся устройстве.

Если вам требуется более масштабное решение, настройка серверов в облаке, аудит безопасности или интеграция VPN‑сети с корпоративными сервисами, команда RybinskLab готова помочь. Мы предоставляем услуги по проектированию, внедрению и поддержке VPN‑инфраструктур любой сложности, а также обучаем персонал работе с Termux и Linux‑инструментами.

Свяжитесь с нами, и мы разработаем оптимальное решение под ваш бизнес.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен экспертом RybinskLab.

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю IT-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса.

Связаться со мной
Поддержать проект