웹사이트 검색

Android에서 웹 서버를 호스팅하는 방법


이 모듈에서는 이동 중에 유연한 웹 서버를 가질 수 있도록 Android에서 웹 서버를 호스팅하고 ngrok를 사용하여 포트 포워딩하는 방법을 살펴보겠습니다.

Android에서 웹 서버를 호스팅하는 단계

이제 Android 기기에서 웹 서버를 호스팅하는 단계로 바로 들어가겠습니다.

1. Termux 및 해커 키보드 설치

먼저 계속 진행하기 전에 Termux(명령을 내리는 데 도움이 됨) 및 해커의 키보드(Ctrl, Esc와 같은 키를 사용하는 데 도움이 됨)의 두 가지 응용 프로그램이 필요합니다. , 표준 Android 키보드에서는 일반적으로 사용할 수 없는 Alt)

Google Playstore에서 Termux를 다운로드할 수 있습니다.

Termux 창 내에서 더 나은 탐색을 위해 Hacker's Keyboard를 설치할 수도 있습니다.

2. Termux에 패키지 설치

이제 필요한 패키지 중 일부를 Termux에 설치해야 합니다. 앱을 열고 다음 명령을 입력합니다.

$ pkg update && pkg upgrade

이렇게 하면 현재 시스템이 업그레이드됩니다. 다음으로 필요한 패키지를 다음과 같이 설치해야 합니다.

$ pkg install apache2 git neovim wget curl

3. SSH를 통해 Android 장치에 연결

이 섹션은 완전히 선택 사항입니다. 여기에서 전체 프로세스 동안 우리를 돕기 위해 몇 가지 추가 패키지를 설치합니다.

$ pkg install openssh neofetch fish nmap

먼저 다음과 같이 PC를 통해 전화에 연결할 수 있도록 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

포트 번호가 있으면 PC로 전환하고 다음을 사용하여 장치에 연결합니다.

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

예를 들어 저에게 완전한 명령은 다음과 같습니다.

$ ssh -p 8022 u0_a147@192.168.0.105

다음으로 다음을 사용하여 기본 쉘을 변경하십시오.

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

이 시점에서 PC의 터미널에서 장치에 명령을 내릴 수 있습니다.

4. Android에서 웹서버 시작

이제 다음과 같이 서버를 시작할 수 있습니다.

$ apachectl 

기본적으로 웹 페이지는 포트 8080에서 호스팅됩니다. 브라우저에서 해당 포트를 방문하면 다음 메시지가 표시됩니다.

메시지를 편집하려면 vi 편집기로 index.html 파일을 변경해야 합니다.

$ 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을 사용할 수 있습니다.