Termux предоставляет полноценный Linux‑окружение на Android‑устройствах, позволяя использовать широкий набор сетевых инструментов. В этой статье мы рассмотрим, как собрать продвинутый сетевой стек, пригодный для задач VPN, прокси‑серверов, фильтрации трафика и кастомного DNS.
Установка базовых пакетов
Для начала необходимо установить набор утилит, которые будут использоваться в дальнейшем.
pkg update && pkg upgrade -y
pkg install -y git curl wget nano net-tools iproute2
pkg install -y openvpn wireguard-tools tinyproxy squid dnsmasq
pkg install -y iptables nftables
Обратите внимание, что iptables и nftables могут конфликтовать; в большинстве случаев рекомендуется использовать nftables.
Настройка VPN
Для создания защищённого канала можно использовать OpenVPN или WireGuard. Ниже приведены базовые примеры.
OpenVPN
Скачайте конфигурационный файл от вашего провайдера и запустите клиент.
wget https://example.com/client.ovpn -O ~/client.ovpn
openvpn --config ~/client.ovpn --daemon
Для автозапуска создайте скрипт ~/.termux/boot/openvpn.sh и сделайте его исполняемым.
#!/data/data/com.termux/files/usr/bin/sh
openvpn --config ~/client.ovpn --daemon
chmod +x ~/.termux/boot/openvpn.sh
WireGuard
Создайте конфигурацию /data/data/com.termux/files/home/wg0.conf и запустите интерфейс.
cat > ~/wg0.conf <<'EOF'
[Interface]
PrivateKey = YOUR_PRIVATE_KEY
Address = 10.0.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
EOF
wg-quick up wg0
Для автоматического поднятия при загрузке добавьте в ~/.termux/boot/wg.sh:
#!/data/data/com.termux/files/usr/bin/sh
wg-quick up wg0
chmod +x ~/.termux/boot/wg.sh
Настройка прокси‑серверов
В зависимости от требований можно использовать tinyproxy (легковесный HTTP‑прокси) или squid (полнофункциональный). Ниже – базовая настройка.
Tinyproxy
mkdir -p $PREFIX/etc/tinyproxy
cp $PREFIX/share/tinyproxy/tinyproxy.conf $PREFIX/etc/tinyproxy/
sed -i 's/^Port 8888/Port 8080/' $PREFIX/etc/tinyproxy/tinyproxy.conf
sed -i 's/^#Allow 127.0.0.1/Allow 0.0.0.0\/0/' $PREFIX/etc/tinyproxy/tinyproxy.conf
tinyproxy -c $PREFIX/etc/tinyproxy/tinyproxy.conf -d
Squid
mkdir -p $PREFIX/etc/squid
squid -z -c $PREFIX/etc/squid/squid.conf
sed -i 's/^http_port 3128/http_port 3128 transparent/' $PREFIX/etc/squid/squid.conf
sed -i 's/^#acl localnet src 10.0.0.0\/8/acl localnet src 0.0.0.0\/0/' $PREFIX/etc/squid/squid.conf
squid -N -d 1 -c $PREFIX/etc/squid/squid.conf
Фильтрация трафика с iptables / nftables
Для ограничения доступа к определённым портам или протоколам используем правила.
# Пример: разрешить только HTTPS и SSH
iptables -F
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j DROP
Экспортировать правила в файл:
iptables-save > ~/iptables.rules
Для загрузки при старте:
#!/data/data/com.termux/files/usr/bin/sh
iptables-restore < ~/iptables.rules
chmod +x ~/.termux/boot/iptables.sh
Кастомный DNS с dnsmasq
dnsmasq позволяет быстро обслуживать локальные запросы и переадресовывать определённые домены.
mkdir -p $PREFIX/etc/dnsmasq.d
cat > $PREFIX/etc/dnsmasq.conf <<'EOF'
no-resolv
server=1.1.1.1
address=/local.test/192.168.1.100
EOF
dnsmasq --conf-file=$PREFIX/etc/dnsmasq.conf -d
Чтобы использовать dnsmasq в качестве системного резольвера, измените файл /etc/resolv.conf:
echo "nameserver 127.0.0.1" > $PREFIX/etc/resolv.conf
Автозапуск сервисов в Termux
Termux предоставляет директорию ~/.termux/boot, скрипты из которой выполняются при каждом запуске терминала (если включён termux-boot).
pkg install -y termux-services
termux-setup-storage
termux-boot
Поместите все ранее созданные скрипты (openvpn.sh, wg.sh, iptables.sh) в эту директорию и сделайте их исполняемыми.
Безопасность и отладка
- Регулярно проверяйте логи:
logcat | grep termuxили просматривайте файлы~/openvpn.log. - Используйте
tcpdump(установитьpkg install tcpdump) для анализа пакетов. - Для ограничения прав доступа к конфигурационным файлам применяйте
chmod 600.
Заключение
Настроенный продвинутый сетевой стек в Termux открывает широкие возможности: от безопасных VPN‑соединений до кастомных прокси‑серверов и локального DNS. Благодаря автозапуску и скриптам вы получаете полностью автоматизированную инфраструктуру прямо на мобильном устройстве.
Профессиональные IT‑услуги в Рыбинске оказывает компания RybinskLab. Мы поможем внедрить и поддержать любые решения, адаптированные под ваши бизнес‑задачи.