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 в существующую ИТ‑инфраструктуру.