VirtualBox 네트워크별 SSH 접속 가이드
다음 문서는 당신이 올려준 스크린샷과 VM 설정(3개 어댑터: Host-Only, NAT, Bridged)을 바탕으로 세 가지 방식으로 SSH 접속하는 방법을 정리한 문서입니다. 각 방식의 차이점,
설정 요건, 접근 범위, 테스트/문제 해결 방법, 보안 권장 사항까지 포함합니다.
cat /etc/netplan/50-cloud-init.yaml
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: false addresses: - 192.168.56.200/24 routes: - to: default via: 192.168.56.1 enp0s8: dhcp4: true nameservers: addresses: [8.8.8.8, 1.1.1.1] enp0s9: dhcp4: true
적용:
sudo netplan apply
그 다음 다시 확인:
ip a
1) 각 방식별 상세 설정 & 접속 방법
A. Bridged (예: 192.168.0.16:22) — LAN 내부 접근
설명: VM을 물리 LAN에 직접 연결. 공유기가 VM을 하나의 장치로 보고 IP를 할당.
VirtualBox 설정:
VM 종료 → 설정 → 네트워크 → 원하는 어댑터(예: 어댑터 3) 선택
Attached to(연결 방식) → Bridged Adapter 선택
Name(이름) → 실제 사용하는 물리 NIC 선택(예: Intel Ethernet, Wi‑Fi)
Cable connected 체크
Guest(Ubuntu) 설정:
ip a로 IP 확인 (예: enp0s9: 192.168.0.16)
SSH 서버 설치 및 활성화:
sudo apt update sudo apt install openssh-server -y sudo systemctl enable --now ssh sudo systemctl status ssh
방화벽(ufw) 사용 시:
sudo ufw allow 22/tcp sudo ufw reload
호스트/네트워크 쪽 설정:
NAT 포워딩 불필요(로컬 LAN 접근 전용)
외부(인터넷)에서 접속하려면 공유기에서 포트포워딩: 외부포트 → 내부 192.168.0.16:22
접속 예:
같은 LAN 내부 장치에서: ssh user@192.168.0.16
외부에서: 공유기 공인IP + 포트포워딩 후 ssh -p 외부포트 user@공인IP
장단점:
장점: 설정이 직관적, LAN 내 다른 기기에서 바로 접근 가능
단점: 외부 접근 시 공유기에서 포트포워딩 필요, 회사망 등에서 브리지 사용 제한 가능
B. NAT + Port Forwarding (예: 127.0.0.1:2222 or 호스트IP:2222) — 호스트를 통한 포트포워딩
설명: VM은 NAT 네트워크로 외부에 나가고, VirtualBox가 호스트 포트를 VM의 포트로 포워딩 해준다.
VirtualBox 설정 (NAT 포트포워딩 규칙 예):
VM 설정 → 네트워크 → 어댑터 (NAT) → Advanced → Port forwarding
규칙 예: 이름 ssh, 프로토콜 TCP, 호스트 IP (비워두거나 127.0.0.1), 호스트 포트 2222, 게스트 IP 10.0.3.15, 게스트 포트 22
호스트 IP을 127.0.0.1로 설정하면 호스트 로컬에서만(127.0.0.1:2222) 접속 가능
호스트 IP를 비워두면 호스트의 모든 NIC(예: 192.168.0.5:2222)에서 접근 가능
Guest(Ubuntu): 위와 동일하게 sshd 활성화 및 ufw 허용
접속 예:
호스트에서 로컬: ssh -p 2222 user@127.0.0.1
같은 LAN의 다른 PC(호스트 IP에 바인딩 하지 않았다면): ssh -p 2222 user@192.168.0.5
외부에서(공유기 뒤에 있다면): 공유기에서 외부포트 → 호스트IP:2222 포워딩 후 ssh -p 외부포트 user@공인IP
장단점:
장점: 호스트 내부 포트 하나만 열면 VM에 접근 가능(여러 VM을 서로 다른 포트로 포워딩 가능)
단점: 호스트를 경유하므로 약간의 복잡성, 호스트 IP에 바인딩 설정에 따라 접근 범위가 달라짐
C. Host-Only (예: 192.168.56.200:22) — 호스트 전용 네트워크
설명: VM과 호스트 간 전용 가상 네트워크. 외부 네트워크나 공유기에서는 보이지 않음.
VirtualBox 설정:
어댑터를 Host-Only Adapter로 설정
Windows 호스트 내부에 VirtualBox Host-Only Ethernet Adapter (예: 192.168.56.1)이 존재함
접속 방법:
호스트에서만: ssh user@192.168.56.200
다른 기기에서는 접근 불가 (특별한 라우팅/포워딩 없으면)
장단점:
장점: 호스트와 안전하게 내부 통신(개발/테스트 목적)에 적합
단점: 외부 접근 불가(공유기 포워딩이 동작 안 함)
2) 포트포워딩: 호스트 IP 필드의 의미
호스트 IP에 127.0.0.1을 입력하면: 포트는 오직 로컬 호스트에서만 바인딩. 같은 LAN의 다른 PC는 접근 불가.
호스트 IP를 비워둠: 호스트의 모든 NIC(예: 192.168.0.5, 10.0.0.2 등)에 바인딩되어 호스트의 다른 IP로도 접근 가능.
호스트 IP를 특정 NIC IP로 지정 (예: 192.168.0.5): 해당 NIC에서만 접근 가능.
3) ipTIME 공유기에서 외부(인터넷) 접속 허용 예시
라우터 관리 페이지 접속: http://192.168.0.1 → 포트포워드(또는 NAT/포트포워딩)
규칙 예:
외부포트: 2222
내부 IP: 192.168.0.16 (VM의 브리지 IP)
내부포트: 22
프로토콜: TCP
외부에서 연결: ssh -p 2222 user@공인IP
공인IP가 동적이라면 DDNS(예: iptime DDNS) 등록 권장
5) 확인·문제해결 체크리스트
VM 내부에서
ip a — 인터페이스와 IP 확인
sudo systemctl status ssh — sshd 실행 상태 확인
sudo ufw status — 방화벽 규칙 확인
sudo ss -tlnp | grep :22 또는 sudo netstat -tlnp | grep :22 — 포트 리스닝 확인
호스트(Windows)에서
ipconfig /all — 호스트의 IP(192.168.0.5 등) 확인
포트가 열렸는지 확인: telnet 192.168.0.16 22 또는 ssh user@192.168.0.16
NAT 포워딩 테스트: ssh -p 2222 user@127.0.0.1 (호스트에서)
네트워크 트래블(공유기/외부)
공유기 포트포워딩이 정확한지 확인
외부에서 접속이 안 되면 공유기 방화벽/ISP 차단 여부 확인
tcpdump 또는 Wireshark로 패킷이 들어오는지 확인(심화)
6) 보안 권장사항
root 직접 로그인 비활성화: /etc/ssh/sshd_config 에 PermitRootLogin no 설정
비밀번호 대신 공개키 인증 사용: ~/.ssh/authorized_keys
포트 변경(기본 22 → 다른 포트), ufw로 허용 포트만 오픈
fail2ban 같은 도구로 무차별 대입 차단
외부 포트포워딩시 가능한 경우 VPN을 통해 접속 (더 안전)
7) 권장 구성 (상황별)
개발/로컬 테스트: Host-Only(192.168.56.200) + 필요시 NAT 포워딩(127.0.0.1:2222)
LAN에서 서비스/접속 필요: Bridged(192.168.0.16) — 같은 네트워크에서 직접 접속 가능
외부(인터넷)에서 안정적으로 접속 필요: Bridged + 공유기 포트포워딩 or VPN (DDNS 적용 권장)
문서로 정리해 두었습니다. 우측 캔버스에서 확인하세요. 필요하시면 이 문서를 기반으로 ipTIME 설정 스텝 바이 스텝, sshd_config 변경 예시,
ufw 규칙 스니펫, 또는 공유기 포트포워딩 스크린샷 가이드(모델별) 도 만들어드릴게요.
댓글 ( 0)
댓글 남기기