Termux – это мощный терминал для Android, позволяющий запускать полноценные Linux‑утилиты. В этой статье мы покажем, как превратить ваш смартфон в полноценный VPN‑сервер, используя два самых популярных протокола: OpenVPN и WireGuard. Такой сервер может обеспечить безопасный доступ к домашней сети, обход гео‑блокировок и защиту при работе в публичных Wi‑Fi.
Подготовка устройства
- Установите приложение Termux из Google Play.
- Для работы VPN‑сервера потребуется root‑доступ (для настройки iptables/NAT). Если ваш телефон не рутован, можно использовать
termux-wifi-auto‑скрипты, но функциональность будет ограничена. - Убедитесь, что у вас есть стабильное подключение к Интернету (например, 4G/5G).
Обновление и базовая настройка Termux
pkg update && pkg upgrade -y
pkg install -y wget curl git proot-distro
Установим необходимые пакеты и убедимся, что система готова к работе.
Настройка OpenVPN
Установка пакетов
pkg install -y openvpn easy-rsa iproute2 iptables
Создание PKI (Public Key Infrastructure)
Для генерации сертификатов будем использовать easy-rsa:
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa build-server-full server nopass
./easyrsa build-client-full client1 nopass
Полученные файлы находятся в ~/openvpn-ca/pki. Скопируем их в рабочую директорию сервера:
mkdir -p ~/openvpn-server
cp pki/ca.crt pki/private/server.key pki/issued/server.crt pki/dh.pem ~/openvpn-server/
Конфигурация сервера
Создаём файл server.conf:
cat > ~/openvpn-server/server.conf <<'EOF'
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA256
cipher AES-256-CBC
persist-key
persist-tun
keepalive 10 120
user nobody
group nogroup
persist-tun
topology subnet
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
log-append /data/data/com.termux/files/home/openvpn-server/openvpn.log
verb 3
EOF
Настройка NAT и IP‑forwarding
Разрешим пересылку пакетов и настроим маскарадинг:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o wlan0 -j MASQUERADE
Для сохранения правил после перезагрузки можно добавить их в ~/.bashrc или использовать iptables-save и iptables-restore.
Запуск OpenVPN‑сервера
openvpn --config ~/openvpn-server/server.conf &
Процесс будет работать в фоне. Проверить статус можно командой ps aux | grep openvpn.
Создание клиентского конфигурационного файла
Соберём клиентский .ovpn файл, включив в него сертификаты:
cat > ~/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
auth SHA256
cipher AES-256-CBC
verb 3
$(cat ~/openvpn-ca/pki/ca.crt)
$(cat ~/openvpn-ca/pki/issued/client1.crt)
$(cat ~/openvpn-ca/pki/private/client1.key)
EOF
Скопируйте client1.ovpn на клиентское устройство (Android, Windows, macOS) и импортируйте в приложение OpenVPN Connect.
Настройка WireGuard
Установка пакетов
pkg install -y wireguard-tools iproute2 iptables
Генерация ключей
umask 077
wg genkey | tee ~/wg_privatekey | wg pubkey > ~/wg_publickey
Для клиента генерируем отдельный набор ключей, например client_privatekey и client_publickey.
Конфигурация сервера (wg0.conf)
cat > ~/wg0.conf <<'EOF'
[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = $(cat ~/wg_privatekey)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o wlan0 -j MASQUERADE
[Peer]
# client1
PublicKey = CLIENT_PUBLIC_KEY_PLACEHOLDER
AllowedIPs = 10.200.200.2/32
EOF
Замените CLIENT_PUBLIC_KEY_PLACEHOLDER на публичный ключ клиента.
Конфигурация клиента
cat > client1.conf <<'EOF'
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY_PLACEHOLDER
Address = 10.200.200.2/24
DNS = 8.8.8.8, 8.8.4.4
[Peer]
PublicKey = $(cat ~/wg_publickey)
Endpoint = YOUR_PUBLIC_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
EOF
Опять же замените CLIENT_PRIVATE_KEY_PLACEHOLDER на соответствующий ключ.
Запуск WireGuard
wg-quick up wg0
Для остановки используйте wg-quick down wg0. Статус можно проверить командой wg show.
Тестирование и отладка
- Проверьте подключение с клиента:
ping 10.8.0.1(OpenVPN) илиping 10.200.200.1(WireGuard). - Убедитесь, что внешний IP меняется: откройте ifconfig.me в браузере клиента.
- Для диагностики используйте логи:
cat ~/openvpn-server/openvpn.logиwg show. - Если сервер не стартует, проверьте наличие прав root для
iptablesи корректностьsysctlпараметров.
Рекомендации по безопасности
- Используйте сильные пароли и, по возможности, двухфакторную аутентификацию в клиентском приложении.
- Регулярно обновляйте пакеты Termux:
pkg upgrade -y. - Ограничьте входящие соединения только с нужных IP (iptables
-s). - Включите журналирование соединений для быстрого обнаружения подозрительной активности.
Заключение
Termux предоставляет полноценную Linux‑среду на Android‑устройстве, позволяя развернуть надёжный VPN‑сервер как на базе OpenVPN, так и на более лёгком и быстром WireGuard. Следуя приведённым шагам, вы получаете полностью управляемый сервер, который можно использовать для защиты трафика, доступа к домашней сети и обхода ограничений.
Если вам требуется профессиональная поддержка, настройка масштабных VPN‑инфраструктур или интеграция с корпоративными решениями, обращайтесь в RybinskLab. Мы предоставляем услуги по разработке, аудиту и обслуживанию VPN‑систем, а также обучающие курсы по работе с Termux и сетевой безопасностью.