如何在 Android 上托管网络服务器

在本模块中,我们将了解如何在Android上托管Web服务器,并使用ngrok进行端口转发,这样我们就可以在移动中拥有灵活的Web服务器。

Android上托管Web服务器的步骤

让我们现在就开始在我们的Android设备上托管Web服务器的步骤。

1.安装Termux和黑客键盘

首先,在继续之前,我们需要两个应用程序:_Termux _(它将帮助我们发出命令)和** Hacker‘s Keyboard** (它将帮助我们使用标准安卓键盘上通常不提供的Ctrl键、Esc键、Alt键)

您可以从他们的_官方网站 _或** 谷歌Playstore** ]获取Termux

来自Playstore

您也可以安装**Hacker‘s Keyboard** ,以便在Termux窗口中更好地导航。

谷歌Playstore

2.在Termux上安装包

现在,我们需要在Termux上安装一些所需的包。打开该应用程序,然后输入以下命令:

1$ pkg update && pkg upgrade

这将改善我们目前的系统。接下来,我们需要安装一些必要的软件包:

1$ pkg install apache2 git neovim wget curl

3.通过SSH连接到Android设备

请注意,此部分完全是可选的。在这里,我们将安装一些额外的包,以便在整个过程中对我们有所帮助:

1$ pkg install openssh neofetch fish nmap

首先,让我们启用ssh,这样我们就可以通过PC通过以下方式连接到手机:

1$ sshd

接下来,使用ifconfig:检查您的用户名和IP

 1$ whoami
 2u0_a147
 3$ ifconfig wlan0
 4wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 5        inet 192.168.0.105 netmask 255.255.255.0 broadcast 192.168.0.255
 6        inet6 fe80::ce9f:7aff:fe81:3115 prefixlen 64 scopeid 0x20<link>
 7        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
 8        txqueuelen 3000  (UNSPEC)
 9        RX packets 227165 bytes 311846650 (297.4 MiB)
10        RX errors 0 dropped 0 overruns 0 frame 0
11        TX packets 82264 bytes 7912862 (7.5 MiB)
12        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

现在我们需要检查[ssh服务]是running](/community/tutorials/ssh-command-linux-unix).的哪个端口您可以使用以下命令进行检查:

 1$ nmap -sV 127.0.0.1
 2Starting Nmap 7.91 ( https://nmap.org ) at 2021-03-12 14:44 IST
 3Nmap scan report for localhost (127.0.0.1)
 4Host is up (0.0075s latency).
 5Not shown: 999 closed ports
 6PORT STATE SERVICE VERSION
 78022/tcp open ssh OpenSSH 8.4 (protocol 2.0)
 8
 9Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
10Nmap done: 1 IP address (1 host up) scanned in 4.87 seconds

获得端口号后,切换到您的PC并通过以下方式连接到您的设备:

1$ ssh -p <PORT> <USER>@<IP>

例如,对于我来说,完整的命令将是:

1$ ssh -p 8022 [email protected]

接下来,使用以下命令更改默认外壳:

1$ chsh /data/data/com.termux/files/usr/bin/fish

此时,您可以从PC的终端向您的设备发出命令

通过SSH连接到Android

4.在Android上启动Web服务器

现在,我们可以使用以下命令启动我们的服务器:

1$ apachectl

默认情况下,该网页托管在端口8080上。访问我们浏览器上的上述端口,我们发现以下消息:

8080

要编辑消息,我们需要使用vi编辑器更改**index.html** 文件:

1$ vi $PREFIX/share/apache2/default-site/htdocs/index.html

让我们将_index.html _的内容更改为:

1<html><body><h1>Android !</h1></body></html>

刷新页面,我们现在应该看到我们的更改被反映出来:

Our更改的HTML页面

在这一点上,您可以定制您的页面来显示/执行您希望它做的任何事情。但是,为了进一步扩展我们的功能,我们可以使用ngrok

5.使用Ngrok进行端口转发

首先,我们需要从**官方网站** ,带:

1$ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm64.tgz

使用以下命令解压缩文件:

1$ tar -xvzf ngrok-stable-linux-arm64.tgz

接下来,您需要在他们的网站上注册以获得授权令牌。

Ngrok

现在,你应该拿到授权证了。要将令牌添加到默认配置文件,请键入以下内容:

1$ ./ngrok authtoken <token>

现在,我们应该有更多的功能和更长的会话时间。最后,在我们的Web服务器仍在运行的情况下,键入:

1$ ./ngrok http 8080

使用Ngrok

我们将获得一个**ngrok** 链接,在该链接中可以找到我们的Web服务器的主页:

![我们的页面正在通过Ngrok提供服务](https://cdn.jsdelivr.net/gh/andsky/tutorials-images/spaces/2021/03/Our Page-Being-via-Ngork.png "我们的页面正在通过Ngrok提供服务")

现在,我们需要使用ngrok链接从本地网络外部访问我们的服务器!

结论

因此,通过这种方式,我们可以使用我们的Android手机作为网络服务器。在非根电话上,您可以在任何更高的端口上托管Web服务器,而在根电话上,您可以使用默认端口80。

Published At
Categories with 技术
Tagged with
comments powered by Disqus