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.