1. 리눅스 서버 vs. WSL2 환경 차이
- 리눅스 서버:
- 리눅스가 메인 OS로 네트워크 포트(22 등)를 바로 개방,
- 기본적으로 SSH 서버가 상시 실행되고, 방화벽만 열려 있으면 바로 접속 가능
- 윈도우 + WSL2:
- WSL2는 '윈도우 위에 얹힌 리눅스'라서,
- WSL2 리눅스와 윈도우가 별도 네트워크 인터페이스(IP)를 가짐
- 외부에서 바로 WSL2의 SSH로 들어오려면 몇 가지 추가 설정이 필요함
2. WSL2에서 SSH 원격 접속이 안 되는 주요 원인
- SSH 서버(서비스)가 실행 중이 아님
- WSL2가 받는 IP가 내부 네트워크에서 직접 접근이 불가능한 가상 IP인 경우
- 윈도우 방화벽이 SSH 포트를 막고 있음
- 포트 포워딩(윈도우 → WSL2) 미설정
3. 해결 절차
A. WSL2 리눅스에 SSH 서버 설치 및 실행
sudo apt update sudo apt install openssh-server sudo service ssh start
B. WSL2의 IP 확인 (실행할 때마다 바뀔 수 있음)
ip addr
→ eth0의 inet 주소(예: 172.28.79.254 등)
이 IP가 윈도우/네트워크에서 직접 접근 가능한지 확인 필요
C. 윈도우 방화벽에서 SSH 포트(22) 허용
- 윈도우 '방화벽 및 네트워크 보호' 설정에서
'인바운드 규칙'에 22번 포트(또는 설정한 포트)를 허용
D. (중요) 윈도우와 WSL2 사이의 포트 포워딩
WSL2는 별도의 가상 네트워크 어댑터를 사용하기 때문에
외부 PC에서 WSL2 리눅스의 22번 포트로 직접 접속이 안 되는 경우가 많음.
이럴 땐 포트포워딩을 설정해야 합니다.
윈도우 명령 프롬프트(관리자 권한)에서
아래에서 WSL2의 실제 IP와 포트를 입력해야 함
netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=WSL2_IP
예시
WSL2 IP가 172.28.79.255라면
netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=172.28.79.255
E. 다른 PC에서 윈도우의 내부 IP로 SSH 접속
윈도우의 내부 IP(예: 192.168.0.11)로 SSH 접속
ssh 사용자명@192.168.0.11
→ 이 접속이 자동으로 WSL2의 SSH로 포워딩됨
4. 정리
- 리눅스 서버는 곧바로 SSH 접속이 가능하지만,
- 윈도우 + WSL2 환경에서는
- SSH 서버 실행
- 포트포워딩
- 방화벽 허용
이 세 가지를 꼭 맞춰줘야 외부에서 접속이 가능합니다.
'Tools & Setup > Setting' 카테고리의 다른 글
| 자바 OpenJDK 17을 설치 윈도우(Windows) (0) | 2025.09.05 |
|---|---|
| Surya 모델 설치 및 사용 가이드: Poetry를 활용한 Python 개발 환경 설정 (1) | 2025.08.29 |
| 윈도우 WSL(Windows Subsystem for Linux) 설치 및 사용법 정리 (2) | 2025.08.07 |
| Docker 설치 방법 (Windows 11 기준) (0) | 2025.05.13 |
| Java JDK 8 다운로드 (0) | 2025.04.23 |