[Termux] 안드로이드 폰에 개발용 서버를 구축해보자.

전현준·2024년 3월 12일
0
post-thumbnail

☁︎ 클라우드 서버

내가 처음 프로젝트를 할 때 클라우드 서버를 한창 찾아다녔다.

팀원의 외부 접속이 편하려면 클라우드 서버가 짱이다. 내 노트북은 항상 들고 다녀야하니..

하지만 그것도 한,두달 정도라서 이민을 다니든, 돈을 내든, 대책을 세워야했다.

📱안드로이드 폰 우분투 설치

자체 서버 구축기 with Termux (대학생, 취준생이 EC2 프리티어를 쓰면 안되는 이유)

와 이런 쌈@뽕한 방법이 있었다니,, 바로 해보자!

우리 집에는 놀고 있는 노트9이 있다. 노트9이면 아직 현역이야~ 근데 이제 박살을 곁들인

✅나의 세팅 방법

Termux 설치는 아래의 글을 참고하자. 설치만 하고 읽어보자.
자체 서버 구축기 with Termux (대학생, 취준생이 EC2 프리티어를 쓰면 안되는 이유)


1. 패키지 업데이트
pkg update
pkg upgrade

2. SSH 설치 및 패스워드 설정
pkg install openssh
passwd


3. vim 설치 및 ssh 설정
pkg install vim
cd /data/data/com.termux/files/usr/etc/ssh/
vi sshd_config : 설정 변경
PermitRootLogin yes를 추가

  • 우리가 알고 있던 우분투의 루트 디렉토리가
    여기서는 /data/data/com.termux/files 이 루트 디렉토리와 같다고 하면 될 것 같다.


4. ssh 서버 실행
sshd : ssh 서버 실행
whoami : 나의 아이디 적어두기 u0_a864 대충 이런식일 텐데 이걸 알아두자.


5. [PC] ssh 접속
Termux의 ssh Port번호는 8022이다.
집에서 포트포워딩과 고정 IP를 해놓으면 편하다.
자체 서버 구축기 with Termux (대학생, 취준생이 EC2 프리티어를 쓰면 안되는 이유)
이 블로그 글의 아래 부분 [#포트포워딩] 설정하기 부터 보면 된다.

  • ssh 나의 아이디@외부 IP -p 8022
    예시 : ssh u0_a864@46.176.593.32 -p 8022

  • ❗혹시라도 로그인하려는데 PC에서 @@@ 권한없음 @@@
    대충 이런 내용 같다면 PC에서 C:\사용자\개인(PC마다 다름)\.ssh\knowns_host 파일을 지워보고 시도해보아라.


이젠 PC cmd에서 할 수 있다!

6. mariaDB
'pkg install mariadb'
사실 마리아DB가 뭔지 몰랐는데, Mysql도 사용 할 수 있는 것 같았다.
Mysql Workbench에서도 접속이 가능했다. 같은 RDBMS인 것 같다.


아래서 부터는 이 영상을 참고했다.
https://www.youtube.com/watch?v=Hv7PAGjCMEg&t=11s
https://drive.google.com/file/d/1RYoxnzjiD8K8Q_EhRZr_XHMSpCkj1uCD/view

[MariaDB 설치 -> DB 생성 까지] 참고하면 될 것 같다.

6-1. /data/data/com.termux/files/usr/etc/my.cnf 파일
아래를 추가하자. 나는 mysqld이 로컬에도 Port번호가 겹치기 때문에 Port 번호까지 바꾸었다.

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysaldump]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init-connect = 'SET collation_connection-utf8mb4_general_ci'
init-connect = 'SET NAMES utf8mb4' 
skip-character-set-client-handshake 

innodb_buffer_pool_size=268435456

7. Mysql Port 번호도 포트포워딩 해주어야한다!!

  • 포트포워딩 하지 않으면, 집 밖에서는 접속이 어렵다..

8. Mysql Workbench 접속

  • Hostname : 포트포워딩 했으면 외부 IP주소, 안 했다면 내부 IP 주소
    외부 IP주소는 네이버의 나의 ip 검색하면 나온다
  • Port : 설정한 포트번호
  • Username : 설정한 이름. 아까 위 사이트 참고해서 만들었을 것이다.

연결 테스트 해보면,,,! 성공이다! ㅜㅜ

✅추후 계획

  • 이젠 java도 설치하고, Flask도 설치하고, tensorflow도 설치하고,,,
    나만의 웹 서버를 구축하고 싶다!!

😢나의 실패들

1트 (2024/03/09)

우분투 설치, vim 설치, sudo 설치, ssh 설치, openjdk 설치 (java가 실행이 안되는데? 일단 더 해보자)

천천히 따라하다가 MySQL을 설치하고 외부 포트 허용을 해보자.

sudo ufw allow mysql

오? Error가 발생한다..

ERROR: Couldn’t determine iptables version

그래서 iptables이 무엇인지는 모르겠으나 iptables를 설치했다.
하지만, 이미 설치가 되어있었다.

심지어 환경 변수를 잘못 건들여서, 다른 기본적인 명령어도 안 먹는것이다..

일단 많이 쓸 것 같으니 포트포워딩만 해놓고, 휴대폰 ip도 고정ip로 할당하자

2트 (2024/03/09)

아 그래. openjdk 설치하고, ssh 설치하고, PC cmd에서 외부 접속 되고, java도 잘 되고

근데 또 Mysql이.. ㅜㅜ

ERROR: Couldn’t determine iptables version

여전히 같은 오류였다. 이렇게 4시간 동안 2트를 실패하고 다음을 기약했다.

3트 (2024/03/12)

2024/03/12 새벽 04시, 아 근데 Termux 해야 하지 않나? 싶어서 다시 시도하기로 했다.

초기화를 진행하고 처음부터 하려는데 이런 글을 봤다.

proot를 이용하여 Linux 디렉토리 구조로 바꾸면, Mysql이 실행이 안된다

위의 글에서 ubuntu를 설치하기 위해 proot를 사용하는데, 디렉토리 구조가 바뀌고,
우분투를 재실행 할때도 pid 1번이 안드로이드 OS이기 때문에 재실행 하는 명령어도 문제가 있었다.

그래서 ubuntu를 설치하지 않고, 그냥 Termux가 debian를 사용하기에 거기에서 사용하기로 했다.

이번에는 MariaDB까지 설치하고, root 권한을 실수로 지워서, 그냥 다시 또 지우고 태초마을로 시도했다.


무선 키보드와 Samsung Dex가 있으면 더 편할듯


4트 (2024/03/12)

아침 7시,,, 이젠 오기가 생겼다. 결국 끝까지 해서 외부 접속이 가능했다!!!

하지만 이제는 WAS도 설치해서 내 서버를 만들어보자~!

참고문헌

profile
백엔드 개발자 전현준입니다.

0개의 댓글

관련 채용 정보