강동안@kangdora · Aug 16, 2026

홈서버 구축해보기

맨날 aws, 오라클처럼 무료티어로 해서 cpu 속도라던가 불편한 점이 많았는데, 돈 쓸바에 구독 말고 아예 홈서버 구축하자는 마인드로 당근해서 6코어 6스레드 ddr4 메모리 슬롯 두개짜리 중고 컴을 하나 구해왔다. ( 13만원 지출 )

당근 거의 처음해봐서 인간 불신 걸린채로 살짝 갔는데, 이미 이 당근 아저씨 써멀에 청소도 다 해 두셔서 만족스럽게 사갔다. 잘켜지는진 그냥 물어보기만 했지만, 밖에서 그거 검사한다고 뭐 들고갈 순 없으니까...

잔뜩 신남~ 우훗

어짜피 초기 설정 빼고는 ssh연결로 다 진행할 예정이라 내장 그래픽만 간단하게 있고, 외장 그래픽 없는것중 cpu 6코어 이상인거 찾기가 너무 힘들어서 나오자 마자 그냥 바로 줘세요 해버렸다.

이제 검사를 좀 해야하는데, 메모리는 어떤거 사용하는지, ssd는 얼마나 사용했는지, 파워는 괜찮은지, 머 이것저것? 메인보드가 뭔지... 등등등~

ssd 검사 자체는 얼마 안걸렸다. 뭐 해봐야 얼마나 쓰고 지웠는지.. 정도라서? 암튼 일단 메모리는 사실 중고로 사도 괜찮은 아이템이고, ssd가 그나마 소모품이라면 소모품이라 이걸 최 우선으로 검사해야했다. ssd 뭐 많이 사용했음 다시 사야지 뭐.. 근데? 괜찮았다 매우~! 까진 아니고 적당히 괜찮았따.

16gb 램을 사는건 나중으로 미뤘다. 그전에 내 노트북 wsl 에서 개발 다 하고 도커 이미지로 옮길 예정이었다. 그러니 나중에 옮기는거로 하고, 일단은 블로그 호스팅을 정적 웹페이지로 하려한다. 그럼 뭐 괜찮겠지!

일단 이제 우분투를 설치해야하는데, 오늘 너무 오랜만에 우분투 깔아서 그런가 26.04 가 나온것도몰랐다. 04면 4월이니 4달이면 대충 버그도 잡혔을거라 생각해 26.04로 설치했다.

### 네트워크 검사

일단 나는 기숙사 전기, 인터넷 도둑이라서 기숙사 네트워크 상태부터 확인하는게 중요한데, 가장 중요한게, 우리 기숙사는 /22 를 사용하는 인터넷 망이다(사람이 많다). 내가 알기로 이게 AP고, 내가 그 관리 권한이 없기에, 포트포워딩이 안된다는 점을 인지하고 가야한다. 그렇다고 내가 기숙사 관리하는 분한테 뚫어달라 할 순 없으니..

이게 무슨 말이냐면, 기숙사 전체가 나와 같은 망이다. 같은 망에서는 너무 노출되어있다. 만약 이 글을 보는 누군가가 만약 내 서버에 할당된 ip를 알고 비밀번호를 알면 그냥 접속이 가능한거다...

또한 내가 외부에서 내 서버에 접속할 수도 없는데, 포트 마저 뚫을 수 없다면... 자, 답이 없다! 내가 외부에 요청을 보내도, 외부에서 내쪽으로 요청을 못보낸다.

이거의 해결법이 없지 않다. 사실 쉽다. 내가 먼저 외부망에 연결을 해두면 된다! 그래서 이번에 Tailscale을 사용해봤다. 그래서 방화벽에 열린 포트가 하나도 없는 상태로 SSH도 되고 웹 공개도 된다. 나이쨔 !

근데 왜 이렇게 사양 좋은 컴퓨터를 골랐냐? 할 수 있는데, 계획이 좀 크다. 내가 좀 꿈이 큰편이라 할때 제대로 하기 위해서 고른건데, 여기서 돌릴게 적어도 3개인데다가, 하나는 알고리즘 저지 서버라서 많이 먹을예정이다..

### 우분투 서버 설치하기!

아니 내 64gb짜리 삼성 usb 어디갔징..? 그래서 아는 사람 usb 를 빌려서, win32 disk imager를 사용해, 이미지를 빼둔 뒤에, 내가 사용할 우분투를 설치하고, usb는 이전 iso 파일을 이용해 복구했다.

열~심히 개미처럼 설정하는데, 아뿔싸 로그인이 안된다... 아니 왜 비밀번호도 다 잘했는데 왜 ... 하고 보니까 아이디의 중간 두 글자가 위치가 바뀌어있다.. 아뿔싸!!

#### GRUB

이거 로그인 문제 해결하려고, 재부팅해서 shift인지 esc인지 해서 들어왔다. 초경량 쉘이라 했나 암튼 그래서 그런가 키보드 많이 씹힌다. 근데 여기서부턴 아예 모르는 영역이라 클로드 페이블과의 합동 작전을 펼치려했는데, 얘가 알려준거랑 다르다... 아니 클로드야 메뉴 나온다매. 난 쉘 나왔는데. 이 문제는 부트로더가 자기 설정 파일을 못 찾은 거라더라. 그래서 쉘에서 경로 잡고 재부팅 후 다시 들어가니 정상적으로 메뉴가 나왔다.

이제부터 이 GRUB에서 관리자 권한으로, 내 이름이랑 비밀번호를 재설정했다. 관리자 권한이지만 복구모드로 연거라서, 이게 읽기 모드라서 일단 권한부터 쓰기 권한을 쥐어주고, 로그인명 변경, 홈 디렉터리 변경, 그룹명도 변경해줬다.

사용자 로그인명만 변경하는게 아니라 그룹명도 변경해야하는 이유는, 우분투 특징으로 사용자마다 같은 이름의 그룹을 만들기 때매 해줘야 한다!

### tailscale

결국 아까 말했던 이슈로 인해서, tailscale을 사용하게 되었는데, tailscale은 그냥 살짝 예전에 마크했다면 알겠지만, 내 컴퓨터끼리의 사설 네트워크망을 만들어주는거라 생각하면 된다! 자 근데 이제부터 그냥 내 맘대로 하기엔, 재부팅할때마다 당연하게도 AP 특성상 ip가 바뀌게 된다. 그러면 무슨 문제가 생기냐? 재부팅을 원격으로 한 이후에 접속이 안된다.. 그래서 해결법! MagicDNS 를 사용해준다.

이건 이제 이름으로 접속이 가능한건데, 흠... 뭐랄까 naver.com -> 무슨 어쩌구 ip~ 같은 DNS다

MagicDNS는 이렇게해줬는데, 나는 홈서버 이용하면서 사용자 하나에 도커로구성하려하니, 귀찮은 작업을 없애기 위해, ssh 설정으로

```
Host kangdora

HostName kangdora

User ~
```

설정을 이용해서, 별칭 설정을 해주면, ssh kangdora로 어디서든 이제 접속이 가능해진다! 결국 이 인터넷 망( 기숙사 망 ) 자체는 지금 서로 공유되는 환경이고, 외부로 못들어온다는 보장 또한 없지않나? 그러니까 나는 이제 이 tailscale 이외의 경로를 차단해주면 완벽까진 아니지만 이제 ip 장난질은 대부분 차단이 가능하다.

지금은 이제 tailscale에 의존하지만, 이 또한 내가 나중에 내 스스로의 뭔가로 가꾸고 싶다.. 하지만 귀찮아.

다음은 이제 cloudflare tunnel을 통해서 사이트를 인터넷에 공개하는 과정을 할 예정이다! 또한 저지서버를 붙여보기 정도는 해봐야겠지.

자 그러면 여기서 끝? 이 아니다. 궁금증이 하나 생기는데, 이렇게 하면 당연히 성능쪽 문제는 생길 수 밖에 없다.

한마디로 서버에서 VPN 쓴다! 라는거니까 이거에 대한 성능은 한번 손을 보기 전에 측정을 해봐야 한다.

근데 문제는 아까 말했듯이 업로드는 재도 다운로드는 성능측정이 불가능하다.. 머 근데, 아직은 크게 걱정안해도 되는 부분이라 하면, 이건 인터넷 용이 아니라 ssh 연결통로 용이니까 지연 좀 생겨도 괜찮고, 생각보다 tailscale 서버가 많아서 도쿄서버로 33ms 정도 나오니 거의 병목은 없는 수준으로 봐도 된다! 당연히 같은 인터넷망일땐 2ms나오긴 한다.

댓글

아직 댓글이 없습니다.