livflow project 9일차 - 홈서버 구축 완료 및 기록

주영광·2024년 11월 8일
0

livflowproject

목록 보기
12/30

혹여나 내가 다시 홈서버를 만들거나, 누군가 홈서버를 구축할때 도움이 되길 바라면 쓰는 글

기본적인 뼈대를 먼저 설명하고, 제가 헤맷던 부분을 정리하려고합니다. 명령어는 적어두지 않습니다. gpt에 쳐보면 금방 나옵니다.

- 환경

  1. kt 공유기
  2. 미니pc windows11
  3. virtual box, ubuntu server

- 서버 구축 순서

우선 윈도우에 virtual box를 통해 우분투 서버를 설치합니다. 사실 기초 서버는 이게 전부입니다. 여유가 있다면 GIT을 연동하여 clone해놔도 됩니다.

기억 할 부분

  • 들어오는 포트와 받을 포트를 정확히 알아야한다.
  • IP는 고정되어야한다.

간단한 예시만 들고 넘어감
EX) 외부 클라이언트가 WINDOWS를 통해 우분투로 넘어가야한다면
외부 클라이언트(443) -> WINDOWS(1443) -> UBUNTU(443)
이렇게 포트를 한번 더 변환시켜야 하는 부분이 있으니 이런걸 체크해야함

순서

1. 사용할 서버 설치
- 가상환경 설치
- OS 직접설치

2. 접속 방법 선택
- 유동IP를 DDNS, 환경설정으로 고정시키는방법
- 고정IP 받기(사실상 불가능)

3. 포트 정하기
- HTTPS를 한다면 443, 80, 8000, 5432, 등등 많은 포트가 있을텐데
유동적으로 사용해서 연결해주기

4. FLOW 이해하기
- 사용자443 -> 공유기443 -> WINDOWS1443 -> UBUNTU443 -> NGINX5000 -> DOCKER CONTAINER
이런 방식의 흐름은 사이트마다 다르겠지만 본인이 구축한 흐름대로 포트포워딩이 필요하기 때문에 생각해보고 만들기

5. ssh 연결을 통해 타 컴퓨터에서 접속하는 방법
- 우선 서버에 ssh를 설치 그리고 접속하는 방법을 보면 ssh name@ip 이게 전부입니다. 그런데 우리는 ddns를 했으니까ssh name@ddns addr 이렇게 접속을 해주면됩니다. 초기 비밀번호를 설정해서 접속하면 됩니다. 그런데 여기서 나뉘는게 내부 외부입니다. 인터넷을 공유하는 컴퓨터와 외부 컴퓨터가 다르게 접속이 가능합니다.
SSH접속은 기본적으로 22포트를 사용합니다. 그러니 흐름을 생각해보면
내부 - 같은 인터넷을 쓰기 때문에 공유기 포트포워딩을 통해 2222(예시) -> 22로 ssh접속하면 됩니다. 제 컴퓨터에 2222포트로 공유기에 2222에 도달한다음 VITUALBOX에서 포트포워딩을 2222->22로 하면 SSH에 도달할 수 있겠죠?
외부 - 같은 인터넷이 아닌 이상 포트를 한번 더 거쳐야합니다. 외부 포트를 2221이라고 해봅시다. 외부에서 들어오는 2221 -> 2222(공유기) -> 22 이런식의 포트포워딩 단계를 한번 더 거쳐서 ssh 접속이 가능합니다.

또 pem 키도 간단한 명령어로 만들 수 있으니 개인 pem키를 통해 보안을 높이도록 합시다.

글로만 써놔서 복잡하긴한데 한번 쭉 읽어보면 생각보다 쉬운 서버 구축이 될거같습니다.

6. 구매한 도메인을 연결하는 방법
- 가비아에서 구매했다고 예를 들면 가비아에 네임서버를 등록하고, DDNS를 사용한다면 CNAME으로 DDNS서버를 등록해줍시다. NO-IP.COM 의 경우 무료로 1달마다 바꿔줘야하긴합니다.

사설
내부 ip와 외부 ip를 찾아서 적어놓습니다.
이게 가장 편합니다. 네이버에 공인ip라고 검색하여 나오는 IP를 적어두고 터미널에 IPCONFIG, IF ADDR과같은 명령어를 통해 내부 IP를 적어둡시다.
여기서 유의할 부분은 virtual box의 네트워크 설정에서 NAT , 브리지 모드 둘 중에 하나를 선택하고 진행해야합니다. 차이는 인터넷 사용 방법입니다. 우리가 반드시 기억해야하는 것은 우분투 서버에 접속하기 위해서는 pc를 거쳐야한다는 것입니다. nat는 pc의 인터넷을 그대로 사용하는것이고, 브리지모드는 우분투 서버가 인터넷에 연결되는 거라고ㅓ 생각하면 됩니다.
이 부분은 포트포워딩에서도 굉장히 중요하니까 꼭 머리에 그림그려놓고 가는게 편합니다.

이제 본격적으로 연결을 해봅시다. 외부 클라이언트의 시각에서 순서대로 진행하겠습니다. (예시는 velog.com으로 합니다.)

사용자는 https://www.velog.com을 검색합니다. 우리는 이걸 가비아에 먼저 등록을 해줍니다. 그럼 도메인으로 접속이 가능합니다. 다음 마주치는 부분은 no-ip의 주소여야합니다. 사이트에 접속해서 공인ip를 xxx.ddns.net이라는 주소로 고정시켜 줍니다. 이제 ip주소를 사용하지 않습니다. 따라서 가비아에는 cname으로 ddns주소를 등록해야합니다.

이제 사용자는 ddns를 지나 ip를 지나 공유기에 도착했습니다.
https니까 443포트로 공유기에 접근합니다. 그럼 공유기의 포트포워딩 기능을 통해 우리는 443을 대충 4433이라는 포트로 우선 옮겨줍니다. 이유는 서버에 도착하기전에 pc를 거쳐가야하기 때문입니다. 사용자가 지나갈 순서는 다음과 같습니다.

https://www.velog.com(443) -> velog.ddns.net(443) -> 연결된 공인 ip(443) -> 공유기(443 -> 4433) -> virtual box(4433에서 443으로 포트포워딩) -> 443 포트로 nginx에 도착

이런식의 흐름만 파악하면 생각보다 쉽게 홈서버 구축을 할 수 있을거같다.

profile
오직 실력만이 나를 증명한다.

0개의 댓글