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‑утилиты. В этой статье мы покажем, как превратить ваш смартфон в полностью функциональный VPN‑сервер на базе OpenVPN. После выполнения всех шагов вы сможете безопасно подключать к сети любые устройства, используя шифрование и аутентификацию.

Требования и подготовка

  • Устройство Android с установленным приложением Termux (Google Play или F-Droid).
  • Root‑доступ не обязателен, но может упростить настройку firewall.
  • Подключение к сети с публичным IP‑адресом (или настроенный проброс портов на роутере).
  • Минимум 500 МБ свободного места в хранилище.

Обновите пакеты Termux и установите необходимые инструменты:

pkg update && pkg upgrade -y
pkg install root-repo
pkg install wget tar proot-distro openssl openvpn iproute2 iptables-nft -y

Установка OpenVPN и генерация PKI

Для упрощения работы с сертификатами будем использовать скрипт easy-rsa. Скачайте и распакуйте его:

wget -O easy-rsa.tgz https://github.com/OpenVPN/easy-rsa/releases/download/v3.2.0/EasyRSA-3.2.0.tgz
mkdir -p $HOME/easy-rsa && tar -xzf easy-rsa.tgz -C $HOME/easy-rsa --strip-components=1
cd $HOME/easy-rsa

Инициализируйте PKI и создайте CA:

./easyrsa init-pki
./easyrsa --batch build-ca nopass

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

./easyrsa build-server-full server nopass

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

./easyrsa build-client-full client1 nopass

Сгенерируйте файл dh.pem (Diffie‑Hellman параметры) и TLS‑ключ:

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

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

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

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-auth ta.key 0
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 60
status openvpn-status.log
verb 3
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
EOF

Настройка iptables (firewall)

Для корректной маршрутизации включите пересылку пакетов и настройте NAT:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o $(ip route get 8.8.8.8 | awk '{print $5}') -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT

Если ваш телефон не имеет root‑прав, используйте termux-chroot и iptables-nft в пользовательском пространстве – они работают без привилегий, но требуют, чтобы приложение было запущено постоянно.

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

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

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

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

ps aux | grep openvpn

Логи находятся в файле openvpn-status.log внутри директории сервера.

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

Соберите все необходимые клиентские материалы в один .ovpn файл:

cat > $HOME/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
auth SHA256
key-direction 1
verb 3

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


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


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


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

EOF

Замените YOUR_PUBLIC_IP на ваш реальный публичный IP‑адрес (или DDNS‑имя).

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

Скопируйте файл client1.ovpn на клиентское устройство (ПК, ноутбук, другое Android‑устройство) и подключитесь через любой клиент OpenVPN. После установки соединения проверьте IP‑адрес:

curl ifconfig.me

Он должен отображать ваш публичный IP‑адрес, а не локальный.

Автоматический запуск при старте Termux

Добавьте в ~/.bashrc (или ~/.zshrc) строку, которая будет поднимать VPN при открытии сессии:

if ! pgrep -x "openvpn" > /dev/null; then
    openvpn --config $HOME/openvpn/server/server.conf --daemon
fi

Не забудьте сохранить iptables‑правила, добавив их в скрипт ~/.termux/boot/startvpn.sh и включив автозапуск Termux:Boot (плагин из F‑Droid).

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

  • Порт закрыт роутером. Откройте UDP‑порт 1194 в настройках NAT/Port Forwarding.
  • Проблемы с DNS. Добавьте в клиентский .ovpn секцию dhcp-option DNS 8.8.8.8 или укажите собственный DNS‑сервер.
  • Служба падает после перезагрузки. Убедитесь, что iptables‑правила сохраняются (например, через iptables-save) и скрипт автозапуска действительно исполняется.

Заключение

С помощью Termux вы можете быстро превратить Android‑устройство в надёжный VPN‑сервер, используя открытые инструменты OpenVPN и Easy‑RSA. Такая инфраструктура подходит как для личного использования, так и для небольших команд, которым нужен безопасный канал доступа к внутренним ресурсам.

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

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

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

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

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

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