이전에 안쓰는 노트북을 홈서버로 개조해보자 (feat. Windows를 밀고 Ubuntu Server 세팅하기) 으로 안 쓰는 노트북에 Ubuntu Server를 올려 홈서버 베이스는 잡아뒀다.
매번 자원이 어느 정도 남았는지 htop, df -h 같은 걸 SSH로 치는데… 역시나 나는 게으른 사람인지라 너무… 힘들다 ^^….
그래서 브라우저로 서버 상태/웹 터미널까지 보는 Cockpit을 올렸다.
(Proxmox 호스트가 아니라 개인 노트북 Ubuntu Server 기준)
SSH로 자원 확인
그래도 ssh로도 자원 확인 방법은 세팅해두면 좋으니 한 번 정리해봤다.
uptime # 가동시간 + CPU 부하
nproc # CPU 코어 수
lscpu # CPU 상세
top # CPU/메모리 실시간 (q로 종료)
htop # top 업그레이드판 (설치 필요)
free -h # 메모리 남은 양
df -h # 디스크 남은 양
df -ih # inode 사용량
lsblk -f # 디스크/파티션
sudo du -xhd1 / 2>/dev/null | sort -h # 용량 많이 먹는 경로
systemctl --failed # 죽은 서비스
sudo journalctl -p err -b # 이번 부팅 에러 로그
nvidia-smi # NVIDIA GPU 있을 때만
평소엔 uptime, free -h, df -h, htop 정도면 충분하다.
Cockpit 설치
전제: Ubuntu Server + SSH + sudo 계정
sudo apt update
sudo apt install -y cockpit
sudo apt install -y cockpit-pcp # (선택) 성능 그래프
sudo apt install -y cockpit-podman # (선택) 컨테이너 쓸 때
sudo systemctl enable --now cockpit.socket
sudo systemctl status cockpit.socket # active (listening) 이면 OK
sudo ss -tlnp | grep 9090 # 기본 포트 9090
sudo ufw allow 9090/tcp # 포트 열기 (ufw 쓸 때만)
sudo ufw status
집에서 접속하기
일단 서버 주소를 알아야 하기에, 다음의 명령어로 LAN IP를 확인 후 9090포트로 이동하면 된다.
아마 여러 IP주소가 나올텐데, 거기서 맨 처음으로 나오는 값을 입력하면 된다.
hostname -I # 서버 LAN IP 확인
ip -4 addr show # 인터페이스별 IP 상세
브라우저:
https://192.168.x.x:9090 # 위에서 나온 IP 사용
이 때 이미지처럼 사이트에 접속하면 비밀번호를 입력하라고 나오는데, SSH 쓰는 리눅스 계정 그대로 입력하면 된다.
만약 로그인 계정을 잘 모르겠으면 터미널에서 아래 명령어로 확인해보자.
groups # sudo 있는지 확인
sudo usermod -aG sudo <username> # 없으면 추가 후 재로그인
Tailscale로 밖에서 접속
개발자들이라면 보통은 로컬 세팅만 하지 않는다. 위의 세팅으로 하게 된다면 집 밖으로 나갔을 때는 해당 페이지에 접속할 수 없기 때문이다.
따라서 밖에서도 자유롭게 쓰고 싶은 사람은 Tailscale처럼 VPN을 붙이는 것도 추천한다.
홈서버 세팅하기
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up # 나온 URL로 로그인
tailscale status
tailscale ip -4 # 100.x.x.x
접속하기
https://100.x.x.x:9090
https://<머신이름>:9090 # MagicDNS 켠 경우
방화벽 (권장)
sudo ufw delete allow 9090/tcp # 전체 개방 제거
sudo ufw allow from 100.64.0.0/10 to any port 9090 proto tcp # Tailscale만
sudo ufw allow from 192.168.0.0/16 to any port 9090 proto tcp # (선택) 집 LAN도
sudo ufw status
(선택) Serve
:9090 없이 쓰려면:
sudo tailscale serve --bg https+insecure://127.0.0.1:9090
sudo tailscale serve status # 접속 URL 확인
sudo tailscale serve reset # 끌 때
Serve = Tailnet 안만 / Funnel = 인터넷 공개 → Cockpit은 Funnel 쓰지 말 것!!
로그인 후
대시보드까지 접속을 성공했다면 이제 웹 UI로 모든 것을 확인할 수 있다!