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 для мобильных устройств

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

Что потребуется

  • Устройство под управлением Android 8.0+ с установленным Termux из Google Play или F-Droid.
  • Подключение к сети Wi‑Fi (рекомендовано для первоначальной настройки).
  • Базовые навыки работы в Linux‑терминале.
  • Порт 1194 (UDP) открыт на роутере, если планируется доступ из внешних сетей.

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

Запустите Termux и обновите репозитории:

pkg update && pkg upgrade -y

Установите openvpn, openssl и утилиту iptables:

pkg install openvpn openssl iptables -y

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

mkdir -p ~/openvpn/easy-rsa && cd ~/openvpn/easy-rsa

Генерация PKI (Public Key Infrastructure)

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

wget -O easy-rsa.tgz https://github.com/OpenVPN/easy-rsa/releases/download/v3.1.5/EasyRSA-3.1.5.tgz
 tar xzf easy-rsa.tgz --strip-components=1
 rm easy-rsa.tgz

Инициализируйте PKI:

./easyrsa init-pki

Создайте центр сертификации (CA):

./easyrsa build-ca nopass

Сгенерируйте серверный сертификат и ключ:

./easyrsa gen-req server nopass
 ./easyrsa sign-req server server

Создайте Diffie‑Hellman параметры (необходимо для безопасного обмена ключами):

./easyrsa gen-dh

Сгенерируйте TLS‑auth ключ (дополнительный уровень защиты):

openvpn --genkey --secret ta.key

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

Создайте файл server.conf в каталоге ~/openvpn со следующим содержимым:

port 1194
proto udp
dev tun
ca easy-rsa/pki/ca.crt
cert easy-rsa/pki/issued/server.crt
key easy-rsa/pki/private/server.key
dh easy-rsa/pki/dh.pem
tls-auth ta.key 0
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

Настройка iptables и форвардинга

Разрешите пересылку пакетов в ядре Android (нужен root‑доступ). Выполните:

su -c "sysctl -w net.ipv4.ip_forward=1"

Настройте правила NAT, чтобы клиентские сети выходили в Интернет через интерфейс вашего телефона:

su -c "iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o $(termux-wifi-connection-info | jq -r .interface) -j MASQUERADE"
su -c "iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT"
su -c "iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT"

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

Запустите сервер в фоне:

openvpn --config ~/openvpn/server.conf --daemon

Проверьте статус:

ps -ef | grep openvpn

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

Сгенерируйте запрос и подпишите сертификат для клиента (например, client1):

./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

Соберите файл client1.ovpn:

cat > ~/openvpn/client1.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-CBC
verb 3

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


$(cat easy-rsa/pki/issued/client1.crt)


$(cat easy-rsa/pki/private/client1.key)


$(cat ta.key)

key-direction 1
EOF

Скопируйте client1.ovpn на клиентское устройство (ПК, macOS, iOS) и импортируйте в приложение OpenVPN Connect.

Тестирование соединения

Подключитесь к VPN с клиентского устройства и проверьте ваш внешний IP:

curl ifconfig.me

IP‑адрес должен соответствовать публичному IP вашего Android‑устройства.

Устранение типовых проблем

  • Порт закрыт роутером: откройте проброс UDP‑порта 1194 в настройках вашего роутера.
  • Отсутствие root‑прав: без root‑прав iptables и форвардинг не работают. Рассмотрите использование Termux:API + vpn‑режима, однако полноценный NAT требует root.
  • Служба падает после перезагрузки: добавьте скрипт в ~/.bashrc или используйте cron (через crontab -e) для автоматического старта.

Заключение

Настройка собственного VPN‑сервера в Termux позволяет превратить Android‑устройство в надёжный шлюз для безопасного доступа к Интернету. При правильной конфигурации вы получаете полную контроль над шифрованием, маршрутизацией и политиками доступа, не полагаясь на сторонние сервисы.

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

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

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

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

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

Связаться со мной