Как разместить веб-сервер на Android
В этом модуле мы рассмотрим, как мы можем разместить веб-сервер на Android и перенаправить его с помощью ngrok, чтобы у нас был гибкий веб-сервер на ходу.
Шаги по размещению веб-сервера на Android
Давайте приступим к шагам по размещению веб-сервера на наших устройствах Android.
1. Установите Termux и клавиатуру хакера
Во-первых, нам понадобятся два приложения, прежде чем мы продолжим: Termux (которое поможет нам вводить команды) и Hacker's Keyboard (которое поможет нам использовать такие клавиши, как Ctrl, Esc , Alt, которые обычно недоступны на стандартных клавиатурах Android)
Вы можете скачать Termux в их магазине Google Play.
Вы также можете установить Hacker’s Keyboard для лучшей навигации в окне Termux.
2. Установите пакеты на Termux
Теперь нам нужно установить некоторые пакеты, которые нам нужны в Termux. Откройте приложение и введите следующие команды:
$ pkg update && pkg upgrade
Это должно обновить нашу текущую систему. Далее нам нужно будет установить некоторые необходимые пакеты с помощью:
$ pkg install apache2 git neovim wget curl
3. Подключитесь к устройству Android через SSH
Обратите внимание, что этот раздел является необязательным. Здесь мы установим некоторые дополнительные пакеты, чтобы помочь нам в течение всего процесса:
$ pkg install openssh neofetch fish nmap
Сначала давайте включим ssh, чтобы мы могли подключиться к нашему телефону через наш ПК:
$ sshd
Затем проверьте свое имя пользователя и IP с помощью ifconfig:
$ whoami
u0_a147
$ ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.105 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::ce9f:7aff:fe81:3115 prefixlen 64 scopeid 0x20<link>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
txqueuelen 3000 (UNSPEC)
RX packets 227165 bytes 311846650 (297.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 82264 bytes 7912862 (7.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Теперь нам нужно проверить, на каком порту работает служба SSH. Вы можете проверить это с помощью:
$ nmap -sV 127.0.0.1
Starting Nmap 7.91 ( https://nmap.org ) at 2021-03-12 14:44 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0075s latency).
Not shown: 999 closed ports
PORT STATE SERVICE VERSION
8022/tcp open ssh OpenSSH 8.4 (protocol 2.0)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 4.87 seconds
Получив номер порта, переключитесь на свой ПК и подключитесь к своему устройству с помощью:
$ ssh -p <PORT> <USER>@<IP>
Например, для меня полная команда будет:
$ ssh -p 8022 u0_a147@192.168.0.105
Затем измените оболочку по умолчанию с помощью:
$ chsh /data/data/com.termux/files/usr/bin/fish
На этом этапе вы можете отдавать команды своему устройству с терминала вашего ПК.
4. Запустите веб-сервер на Android
Теперь мы можем запустить наш сервер с:
$ apachectl
По умолчанию веб-страница размещается на порту 8080. Посетив указанный порт в нашем браузере, мы находим следующее сообщение:
Чтобы отредактировать сообщение, нам нужно изменить файл index.html с помощью редактора vi:
$ vi $PREFIX/share/apache2/default-site/htdocs/index.html
Давайте изменим содержимое index.html на:
<html><body><h1>Android !</h1></body></html>
Обновив страницу, мы должны увидеть, что наши изменения отражаются:
На этом этапе вы можете настроить свою страницу так, чтобы она выглядела/делала все, что вы хотите. Однако, чтобы еще больше расширить наши функциональные возможности, мы можем включить переадресацию портов с помощью ngrok!
5. Переадресация портов с помощью Ngrok
Во-первых, нам нужно получить сжатый файл с официального веб-сайта с помощью:
$ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm64.tgz
Разархивируйте файл с помощью:
$ tar -xvzf ngrok-stable-linux-arm64.tgz
Затем вам нужно зарегистрироваться на их веб-сайте, чтобы получить токен авторизации.
Теперь вы должны получить токе авторизации. Чтобы добавить токен в файл конфигурации по умолчанию, введите:
$ ./ngrok authtoken <token>
Теперь у нас должен быть доступ к большему количеству функций и более длительным сеансам. Наконец, когда наш веб-сервер все еще работает, введите:
$ ./ngrok http 8080
Мы получаем ссылку ngrok, по которой можно найти домашнюю страницу нашего веб-сервера:
Теперь нам нужно получить доступ к нашему серверу из-за пределов нашей локальной сети, используя ссылку ngrok!
Заключение
Таким образом, мы можем использовать наши телефоны Android в качестве веб-серверов. На телефонах без рута вы можете разместить веб-сервер на любом из более высоких портов, а на телефонах с рутом вы можете использовать порт 80 по умолчанию.