Поиск по сайту:

Как разместить веб-сервер на 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 по умолчанию.