Search
📍

노트북으로 홈서버 만들기

날짜
2025/08/30
태그
공부
프로젝트
공개여부

0. 사전준비

노트북에 우분투를 설치합니다.

1. SSH 서버 설치 및 실행

원격 터미널 접속을 위해 SSH 서버를 설치하고 실행해야 합니다.
sudo apt update sudo apt install openssh-server
Bash
복사
SSH 서비스가 실행중인지 확인합니다
sudo systemctl status ssh
Bash
복사
SSH 서비스 즉시 시작
먼저 start 명령어로 SSH 서비스를 수동으로 시작합니다.
sudo systemctl start ssh
Bash
복사
부팅 시 자동 실행 설정
노트북을 재부팅하더라도 SSH 서비스가 자동으로 켜지도록 enable 설정을 해주는 것이 중요합니다.
sudo systemctl enable ssh
Bash
복사
다시 상태 확인
이제 서비스가 제대로 실행되고 있는지 다시 확인합니다.
sudo systemctl status ssh
Bash
복사
이번에는 초록색 글씨로 active (running) 메시지가 표시되면 성공

2. 내부 네트워크에서 접속 테스트

먼저 같은 와이파이(공유기)에 연결된 다른 PC나 스마트폰에서 접속을 테스트합니다.
노트북의 내부 IP 확인:
hostname -I
Bash
복사
192.168.0.15와 같은 형식의 IP 주소가 나타납니다.
주소
같은 네트워크의 다른 기기에서 접속:
ssh [우분투_사용자명]@[노트북_내부_IP]
Bash
복사
예: ssh gemini@192.168.0.15

3. 외부 네트워크에서 접속 설정

3.1.1 공유기 포트 포워딩(Port Forwarding)

이제 인터넷을 통해 외부 어디에서든 접속할 수 있도록 설정합니다.
공유기 포트 포워딩(Port Forwarding) 설정: 외부에서 공유기로 들어온 특정 요청(SSH)을 내부의 노트북으로 연결해주는 작업입니다.
1.
웹 브라우저에서 공유기 관리 페이지에 접속합니다. (보통 192.168.0.1)
2.
'포트 포워딩' 또는 '포트 포워드' 메뉴를 찾습니다.
3.
내부 IP 주소에는 위에서 확인한 노트북의 IP를, 외부/내부 포트에는 SSH의 기본 포트인 22를 입력하고 규칙을 추가합니다.

3.1.2 터널링 ngrok

포트 포워딩이 불가능한 환경에서는 '터널링(Tunneling)' 서비스가 훌륭한 대안입니다. 서버가 외부로 직접 문을 여는 대신, 안전한 외부 서비스에 스스로 연결해서 통로를 만드는 방식입니다. ngrok 이 가장 대표적이고 사용법도 간단합니다.

ngrok 사용법:

1.
ngrok 설치 아래 명령어로 간단하게 설치할 수 있습니다.
sudo snap install ngrok
Bash
복사
(만약 snap이 없다면 sudo apt install snapd로 먼저 설치하세요.)
1.
ngrok 실행 노트북의 SSH 포트(22번)를 외부로 열고 싶다면 터미널에 아래와 같이 입력합니다.
ngrok tcp 22
Bash
복사
2.
접속 주소 확인ngrok을 실행하면 아래와 같이 외부에서 접속할 수 있는 임시 주소가 나타납니다.
Session Status online Account Your Name (Plan: Free) Version 3.1.0 Region United States (us) Web Interface http://127.0.0.1:4040 Forwarding tcp://0.tcp.ngrok.io:12345 -> localhost:22
Bash
복사
Forwarding 부분에 보이는 0.tcp.ngrok.io:12345가 외부 접속 주소와 포트 번호입니다.
3.
외부에서 접속 이제 다른 PC나 스마트폰에서 위에서 발급받은 주소로 접속하면 됩니다.
ssh [우분투_사용자명]@0.tcp.ngrok.io -p 12345
Bash
복사

서버에서 pem 키 생성
t rsa : RSA 알고리즘 사용
b 2048 : 키 길이를 2048 비트로 설정
m PEM : PEM 형식으로 키를 생성
f ~/.ssh/mykey.pem : 키 파일의 경로와 이름을 지정
 퍼블릭 키를 서버의 authorized_keys에 추가
$ cat ~/.ssh/mykey.pem.pub >> ~/.ssh/authorized_keys
Bash
복사
권한 설정
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/mykey.pem
Bash
복사

3.2 DDNS (Dynamic DNS) 설정

가정용 인터넷은 IP 주소가 계속 바뀌기 때문에, IP 주소 대신 고정된 도메인 주소로 접속할 수 있게 해주는 서비스입니다.
1.
DuckDNS, No-IP 같은 무료 DDNS 서비스에 가입하여 도메인을 만듭니다. (예: mynotebook.duckdns.org)
2.
공유기 설정에 DDNS 메뉴가 있다면, 발급받은 도메인과 정보를 입력합니다. (없다면 노트북에 DDNS 클라이언트 프로그램을 설치해야 합니다.)
등록이 되었다면 접속할 포트를 80(외부) 80(내부)로 열어주고, iptime 관리자 포트 변경을 8080으로 변경해준다(이 경우 관리자 계정 설정을 해줘야한다.)
외부에서 최종 접속: 이제 외부 네트워크(예: 스마트폰 LTE)에서 DDNS 주소로 접속합니다.
ssh [우분투_사용자명]@[DDNS_주소] -p [포트번호]
Bash
복사
예: ssh gemini@mynotebook.duckdns.org (포트가 22번인 경우 -p 옵션 생략 가능)
참고자료