• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
정보

iptime 공유기에 NGINX를 돌려봅시다.

antegral 3172

16

14

서론

개인적인 생각이지만, MT7621이 일반 기가비트 공유기로만 사용되는 것은 좀 불쌍합니다.

 

image.png.jpg

 

엔터프라이즈용급 유선공유기에도 거뜬하게 들어가는데,

어찌 이걸 재활용하지 아니할수 있겠습니까?

 

여러분들도 이제 공유기에 NGINX를 설치해서 끝까지 성능을 뽑아 먹어봅시다.

 

OpenWrt 설치하기

먼저 OpenWrt를 설치해줍니다.

저는 현재 A6004NS-M 공유기를 사용하고 있습니다.

 

하지만, 지원하지 않는 공유기네요? 그래서 그냥 지원 시키게 만들었습니다.

 

image.png.jpg

 

이제 제 공유기는 OpenWrt를 설치할 수 있습니다.

OpenWrt 이미지를 공유기에 올려봅시다.

 

그런데.. 혹시 여러분의 공유기도 지원되지 않는 기기인가요?

걱정하지 않으셔도 됩니다. 

 

https://mans0n.github.io/2020/08/22/openwrt-add-new-device

※ 2021-09-05: v21.02.0 기준으로 업데이트 들어가기 전에 글의 목적 뭔가 그럴듯한 인트로를 적어보려고 했...
맨손잡이 - mans0n / 2020-08-22

 

이미 선구자들이 모두 길을 닦아놓았으니 그저 따라서 걸어가면 됩니다.

(패치 메인라이닝은 긴 인고의 시간이 필요합니다!)

 

그런데, 쉘은 어디있을까요? 대부분의 임베디드 기기는 뜯으면 정답을 알 수 있습니다.

먼저, 공유기를 뜯어봅시다.
 

image.png.jpg

 

집에 굴러다니는 멀티미터기로도 충분히 핀의 역할을 알아 낼 수 있습니다.

모든 핀을 아무곳이나 찍어보세요.

 

하지만 알리익스프레스에서 주문한 UART를 USB로 바꿔주는 장치가 주문한지 1달째 부재중입니다.

당황하지 않고 집에 굴러다니는 아두이노 하나를 꺼내줍니다.

 

KakaoTalk_20220507_003756807_03.jpg

 

IC를 뽑아버리면 완벽한 UART 머신으로 전락시킬 수 있습니다.

이제 연결 시켰으니 컴퓨터를 봅시다.

 

image.png.jpg

 

공유기의 전원선을 뽑고 다시 연결한 다음 t키를 눌러 tftp 서버 모드에 진입합니다.

이제 tftp로 OpenWrt 이미지를 올리면 됩니다. 이때 tftp 클라이언트 모드를 옥텟모드로 돌리고 넣어줍시다.

 

참고

1. tftp 서버 모드에서는 당연하게도 DHCP 따위는 작동하지 않습니다. 수동 모드를 키고 192.168.0.2 같은걸로 IP를 수동으로 잡고 넣어줍시다. 서브넷 마스크는 제 기억상 255.255.255.0 일겁니다. 안된다면 iptime 공식 홈페이지나 구글에 "펌웨어 수동 복구" 키워드로 찾아보세요.

2. tftp 클라이언트는 여러분 윈도우에도 존재합니다. Windows 기능 켜기/끄기에서 "TFTP 클라이언트"를 찾고 체크박스를 눌러줍시다. 

 

image.png.jpg

 

OpenWrt를 설치했다면, opkg update 로 업데이트를 한 뒤 luci (웹 GUI)를 깔아줍니다.

 

image.png.jpg

 

잘 올라갔습니다.

 

 

NGINX 설치하기

이제 NGINX를 설치함으로써 공유기를 진정한 서버로 재탄생 시켜봅시다.

NGINX를 설치하기 위해 opkg install nginx를 치면 자동으로 nginx가 설치됩니다.

 

또한 uhttpd도 설치해줍니다. opkg install uhttpd 하면 설치됩니다.

 

여기서 끝난게 아닙니다.

80, 443 포트를 공유기 내부 서버로 포트포워딩 시켜주는 기이한 행위를 해야합니다.

 

image.png.jpg

 

공유기에서 공유기로 포트포워딩을 시켜주었습니다.

 

image.png.jpg공유기 쉘에 들어가서 cd /etc/nginx 명령어를 입력하셔서 NGINX 폴더로 이동한 후,

ls -la로 파일들을 살펴보면 아마 uci.conf 이런것들이 있을겁니다.

 

전부 무시하시고 폴더 내부에 uci 관련된 것들은 싸그리 지워줍니다.

luci 관련해서 셋팅이 날아가면 깔아두었던 uhttpd가 진가를 발휘합니다.

 

uhttpd가 대신 luci의 웹서버 역할을 해줄겁니다.

 

이제 nginx.conf를 열고 원하는 셋팅을 하시면 됩니다.

저는 유연하게 conf 파일을 쪼개서 폴더도 만들고, 하나하나 site-enabled 안에 심볼릭 링크도 걸어가며 어느정도 구색을 갖췄습니다.

 

작성을 마쳤다면, service nginx restart 를 통해 NGINX를 시작합니다.

 

image.png.jpg

 

완벽하게 구성되었습니다.

 

ACME 클라이언트 설치

끝이 아닙니다. ACME 클라이언트를 깔아서 인증서를 알아서 가져오게 합시다.

opkg install로 acme, luci-app-acme를 각각 깔아줍니다.

 

image.png.jpg

 

이제 ACME 클라이언트를 사용할 수 있습니다.

왼쪽 밑의 텍스트 박스에 도메인을 입력하고 ADD 버튼을 눌러 인증서 구성을 추가해줍니다.

 

image.png.jpg

 

Challenge Valldation 버튼을 눌러 이동 한 후, 다음과 같이 설정을 입력합니다.

CF_key와 CF_Email은 각각 Cloudflare의 인증 토큰과 가입한 이메일입니다. 저걸 넣음으로 인해 자동으로 Challenge를 수행합니다.

 

끝났다면 SAVE 버튼을 누르고, SAVE & APPLY 버튼을 누르면 바로 인증서 발급 절차를 진행합니다.
 

image.png.jpg

 

정상적으로 발급이 끝났다면 인증서를 받을 수 있습니다.

 

image.png.jpg

image.png.jpg

 

이제 제 IPTIME A6004NS-M은 다재다능한 서버가 되었습니다.

NGINX와 ACME 클라이언트로 무장하여 웹 라우팅은 모두 저희 집 공유기가 담당합니다.

 

여러분들도 꼭 한번쯤은 해보셨으면 좋겠습니다.

임베디드와 리눅스 공부에 큰 도움이 되실겁니다.

 

 

신고공유스크랩
14
best antegralBest 글쓴이 2022.05.07. 10:05

사실 벤치마크로 따지고 보자면 라즈베리파이가 훨씬 준수한 성능을 가지고 있습니다. 하지만 로드율 0.02를 왔다갔다하며 띵가띵가 놀고 있는 CPU를 내버려 둘수는 없죠. 간단한 간이 NGINX 서버용도로는 아주 좋고 지금도 쓰고 있습니다.

 

빌드 과정도 크게 어렵지 않습니다.

이미 OpenWrt에서 지원하는 공유기라면 공식 사이트에서 버전별로 빌드된 이미지가 존재하므로 그냥 그거 다운받아서 넣어버리면 됩니다.

그리고 요즘에는 빌드도 명령어 한번이면 뚝딱 되고 gui 같은 cli로 친절하게 뷔페집마냥 여러가지 모듈 넣을수 있게 표시도 해주고 설명도 해주니 그렇게 까다롭지는 않을겁니다. 다만 OS 빌드 특성상 CPU가 좀 좋아야지 빌드시간이 단축됩니다. 저는 한 30분 걸렸던것 같네요

profile image 2등
ExpBox 2022.05.07. 04:05

대단하십니다. 저도 OPNsense 사용중이다가 아무래도 서버가 전기를 너무 많이 먹는터라 라즈베리파이 CM4에 공유기 모듈 구매해서 구현해볼까 싶었는데 가격이 가격인지라 시도도 못했습니다. 직접 빌드하는 과정이 있긴한데 이런 방법도 있군요. 빌드 과정이 많이 까다로워보이지만 기회될 때 도전해봐야겠습니다. 마침 사용하지 않는 iptime 공유기가 있기도 하구요.

antegral 글쓴이 2022.05.07. 10:05
ExpBox

사실 벤치마크로 따지고 보자면 라즈베리파이가 훨씬 준수한 성능을 가지고 있습니다. 하지만 로드율 0.02를 왔다갔다하며 띵가띵가 놀고 있는 CPU를 내버려 둘수는 없죠. 간단한 간이 NGINX 서버용도로는 아주 좋고 지금도 쓰고 있습니다.

 

빌드 과정도 크게 어렵지 않습니다.

이미 OpenWrt에서 지원하는 공유기라면 공식 사이트에서 버전별로 빌드된 이미지가 존재하므로 그냥 그거 다운받아서 넣어버리면 됩니다.

그리고 요즘에는 빌드도 명령어 한번이면 뚝딱 되고 gui 같은 cli로 친절하게 뷔페집마냥 여러가지 모듈 넣을수 있게 표시도 해주고 설명도 해주니 그렇게 까다롭지는 않을겁니다. 다만 OS 빌드 특성상 CPU가 좀 좋아야지 빌드시간이 단축됩니다. 저는 한 30분 걸렸던것 같네요

profile image
ExpBox 2022.05.07. 13:23
antegral

라즈베리파이가 좋기는 하죠. 다만 공유기에 설치한 OpenWRT가 OPNsense 대비 확실한 메리트가 있는지 걱정입니다. 부족한 CPU 성능 때문에 제가 사용하고 있는 대부분의 기능들을 사용못할 것 같아서.. 그냥 NGINX 리버스프록시까지만 할까 싶기더 합니다

koreafood 2022.05.07. 14:06

마침 글에 있는 똑같은 장비가 둘다 있다. A6004NS-M와 아두이노 우노

아... 어떻하지..

antegral 글쓴이 2022.05.07. 20:56
koreafood

제가 만든 이미지를 사용하실 수 있습니다만, 5Ghz 부분에서 안정성이 많이 떨어집니다. 채널을 높일수록 더 불안정해지는데 원인을 찾을 순 없었습니다. 사용하시는데 참고되었으면 좋겠습니다.

profile image
hilee0602 2022.07.06. 08:56
antegral

아마 RF Calibration Data가 OpenWRT로 OS를 변경하시면서 지워져서 그런거 같습니다.

profile image
우성짱 2022.06.15. 14:45

와 신기하네요 ㅋㅋㅋ

 

예전에 아수스 AC66R 공유기에 멀린펌 올려서 웹서버 올려서 그누보드 돌렸던 기억이 나네요 ㅋㅋㅋ

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
질문 적용 방법을 모르겠습니다?? 11 초보나스 1일 전08:05 228 +1
잡담 php가 벌써 8.36까지 나왔습니다. 5 달소 3일 전23:39 196 +2
질문 proxmox ssd 인식이 갑자기 안됩니다 고장인걸까요? 3 kmw_ 5일 전09:37 192 +1
3854 정보
image
툭툭이 24.03.28.11:14 863 +16
3853
image
eyeball 23.04.05.21:08 1773 +16
정보
image
antegral 22.05.07.01:18 3172 +16
3851 잡담
image
햇서 23.06.05.05:53 917 +14
3850
image
달소 22.03.17.22:09 19003 +14
3849 정보
image
EXP 24.02.06.03:43 1296 +10
3848
image
달소 22.05.06.15:43 1042 +10
3847
image
달소 22.03.17.22:25 5037 +10
3846 정보
image
달소 24.02.19.00:58 954 +9
3845
image
theb1ue 22.06.14.16:05 4879 +9
3844 가이드
image
opq! 24.04.02.21:25 434 +8
3843 잡담
image
달소 24.01.15.03:22 584 +8
3842
image
달소 23.01.27.14:15 15808 +8
3841
image
달소 22.07.07.16:57 1946 +8
3840
image
달소 22.03.14.17:30 4162 +8
3839
image
달소 22.02.11.13:31 3021 +8
3838 후기
image
cdma2000 24.02.06.13:12 767 +7
3837 가이드
image
달소 23.07.04.20:38 1905 +7
3836
image
앨런임더 23.03.31.21:14 1858 +7
3835 잡담
image
곰삼촌 23.01.25.10:05 1087 +7