如何在安卓设备上搭建一个网络服务器

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

在Android上托管Web服务器的步骤

现在让我们直接进入在Android设备上托管Web服务器的步骤。

安装Termux和Hacker的键盘。

首先,在我们继续之前,我们将需要两个应用程序:Termux(它将帮助我们发出命令)和Hacker’s Keyboard(它将帮助我们使用通常在标准Android键盘上不可用的Ctrl,Esc,Alt等键)。

你可以从他们的官方网站或者Google Play商店下载Termux。

Termux From Playstore

您可以安装Hacker’s Keyboard,以便在Termux窗口内进行更好的导航。

Hacker's Keyboard From Google Playstore

2. 在 Termux 上安装软件包

现在我们需要在Termux上安装一些我们需要的软件包。打开应用并输入以下命令:

$ pkg update && pkg upgrade

这应该升级我们目前的系统。接下来,我们将需要使用以下命令安装一些必要的软件包:

$ pkg install apache2 git neovim wget curl

3. 通过SSH连接到Android设备

请注意,此部分完全可选。在这里,我们将安装一些额外的软件包,以帮助我们在整个过程中进行操作。

$ pkg install openssh neofetch fish nmap

首先,让我们启用SSH,这样我们就可以通过电脑连接到手机。

$ sshd

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

$ 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

下一步更改默认的Shell为:

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

此时,您可以从您的个人电脑终端向您的设备发出命令。

Connecting To Android Over SSH

在安卓上启动网络服务器。

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

$ apachectl 

默认情况下,网页托管在8080端口上。在浏览器上访问该端口,我们会看到以下信息:

The Page Hosted On Port 8080

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

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

让我们把index.html的内容改为:

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

刷新页面后,我们应该能够看到我们所做的更改被反映出来。

Our Changed HTML Page

在这一点上,你可以定制你的页面,使其呈现任何你想要的外观/功能。然而,为了进一步扩展我们的功能,我们可以使用ngrok来启用端口转发!

5. 使用Ngrok进行端口转发

首先,我们需要从官方网站获取压缩文件:

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

使用以下方法解压缩文件:

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

接下来,你需要在他们的网站上注册并获取授权令牌。

Ngrok

现在,你应该获取一个授权令牌。要将令牌添加到默认的配置文件中,请输入:

$ ./ngrok authtoken <token>

现在,我们应该可以访问更多的功能和更长的会话。最后,仍然运行着我们的网页服务器,输入:

$ ./ngrok http 8080
Port Forwarding With Ngrok

我们获得了一个ngrok链接,通过这个链接我们可以找到我们网站的主页。

Our Page Being Served Via Ngrok

现在,我们可以使用ngrok链接从我们的本地网络以外访问我们的服务器了!

結論

因此,以这种方式,我们可以将我们的Android手机用作Web服务器。在非Root的手机上,您可以在任何较高的端口上托管Web服务器,而在Root的手机上,您可以使用默认端口80。

发表回复 0

Your email address will not be published. Required fields are marked *