WSL(Windows Subsystem for Linux) 설치 및 설정

2024. 10. 29. 08:00· IT 지식
목차
  1. 1. 🌐 WSL(Windows Subsystem for Linux) 설치 및 설정: 우분투 기반 사용하기
  2. 📌 1-1. WSL 설치 및 Ubuntu 세팅하기
  3. 📌 1-2. WSL로 우분투 실행 및 초기 설정
  4. 2. 📡 WSL에서 고정 IP 설정 및 접근 방법
  5. 📌 2-1. WSL 고정 IP 설정하기
  6. 📌 2-2. 윈도우에서 WSL에 접근하기 (고정 IP 사용)
  7. 3. 🔄 WSL에서 Windows로의 IP 접근 설정하기
  8. 📌 3-1. WSL에서 Windows의 IP 접근
  9. 📌 3-2. Windows의 서버에 접근하기 (예: 웹 서버)
  10. 4. 🔄 윈도우에서 WSL로의 IP 접근 허용하기
  11. 📌 4-1. 윈도우에서 WSL 접근을 위한 방화벽 설정
  12. 5. 🚀 정리
반응형

1. 🌐 WSL(Windows Subsystem for Linux) 설치 및 설정: 우분투 기반 사용하기

WSL은 윈도우에서 리눅스 환경을 간편하게 사용할 수 있도록 해줍니다. 여기서는 Ubuntu 배포판을 설치하는 과정과 고정 IP 설정 및 Windows-Windows Subsystem 간 통신 방법을 다뤄보겠습니다.


📌 1-1. WSL 설치 및 Ubuntu 세팅하기

1️⃣ WSL 설치 활성화

먼저 WSL을 설치하고 활성화합니다. 아래 명령어를 Windows PowerShell(관리자 권한) 에서 실행

wsl --install

 

이 명령은 최신 WSL과 함께 기본으로 Ubuntu 배포판까지 설치합니다. 만약 직접 선택하고 싶다면, 아래처럼 특정 버전을 선택

wsl --install -d Ubuntu-20.04

Tip: 설치 후 wsl --set-default-version 2 명령을 실행해 WSL 2로 기본 설정하면 더 빠른 파일 시스템과 네트워크 속도를 얻을 수 있다.

2️⃣ WSL 1과 WSL 2 전환 방법

WSL 1과 WSL 2의 차이

항목 WSL 1 WSL 2
커널 리눅스 호환 계층 진짜 리눅스 커널 사용
성능 파일 시스템 작업에 빠름 전체 성능 개선, I/O 작업 최적화
네트워크 Windows와 IP 공유 별도 가상 네트워크 IP 사용
Docker 지원 제한적 지원 완벽한 Docker 지원
가상화 필요 필요 없음 Hyper-V 가상화 필요

 

WSL 2를 기본 버전으로 설정

wsl --set-default-version 2

 

특정 배포판(예: Ubuntu)의 WSL 버전을 1에서 2로 전환

wsl --set-version [Ubuntu] 2

 

이 명령어로 WSL에 설치된 배포나 목록을 보고 실행하면 됩니다.

wsl --list --verbose

wsl -d [name]

📌 1-2. WSL로 우분투 실행 및 초기 설정

설치가 완료되면 Ubuntu 앱을 실행합니다. 처음 실행 시 사용자 이름과 비밀번호 설정이 필요합니다. 이 설정이 완료되면, 아래 명령어를 입력해 패키지를 최신 상태로 유지

sudo apt update && sudo apt upgrade -y

 


2. 📡 WSL에서 고정 IP 설정 및 접근 방법

기본적으로 WSL의 IP 주소는 매번 재시작될 때마다 바뀝니다.. 고정 IP로 접근하려면 몇 가지 설정이 필요합니다.

📌 2-1. WSL 고정 IP 설정하기

고정 IP를 설정하려면 WSL 네트워크 인터페이스를 조정하고, NAT(네트워크 주소 변환)를 설정해야합니다.

 

0. net-tools 패키지 설치

sudo apt update
sudo apt install net-tools

 

1. 먼저, WSL2의 기본 네트워크 인터페이스를 확인합니다.

ifconfig

인터페이스 이름은 일반적으로 eth0입니다.

 

2. 이제 WSL 시작 시 고정 IP를 할당하도록 설정합니다. 아래 경로에 스크립트 파일을 만들어 고정 IP를 부여할 수 있습니다.

 

/etc/init.d/fix_ip.sh 파일 생성하기

 

아래 명령어로 고정 IP 설정 스크립트를 만듭니다.

sudo nano /etc/init.d/fix_ip.sh

스크립트 내용:

#!/bin/bash
ip addr add 192.168.50.2/24 dev eth0

 

스크립트를 저장한 후 실행 권한을 부여합니다.

sudo chmod +x /etc/init.d/fix_ip.sh

 

 

3.  WSL 시작 시 이 스크립트가 실행되도록 설정합니다.

nano ~/.bashrc

 

bashrc 파일의 맨 끝에 다음 줄을 추가합니다.

sudo /etc/init.d/fix_ip.sh

 

위 명령어는 sudo 권한이 필요하기 때문에, sudo 비밀번호 입력을 요구하지 않도록 visudo를 사용하여 다음 줄을 추가합니다.

sudo visudo

 

파일에 다음 줄을 추가합니다.

<사용자 이름> ALL=(ALL) NOPASSWD: /etc/init.d/fix_ip.sh
 
 

 

4. 재접속 후 IP를 확인해보면 추가된걸 확인할 수 있습니다.

ip add show

 

📌 2-2. 윈도우에서 WSL에 접근하기 (고정 IP 사용)

1. WSL 내부에서 서버를 실행한 후 고정 IP로 접근할 수 있습니다. 예를 들어, WSL에서 간단한 웹 서버를 실행해봅시다.

sudo python3 -m http.server 80

 

2.Windows에서 브라우저를 열고 다음 주소로 접근합니다.

  • URL: http://127.0.0.1

위에서 설정한 고정 IP는(192.168.50.2) WSL의 네트워크 인터페이스가 가상 네트워크에 연결되어 있기 때문에 외부 접근이 차단되어 있습니다. 따라서 192.168.50.2로 접근을 원한다면 별도의 포트포워딩이 필요합니다.
본 게시물에서는 필요성을 못느껴 따로 설명하지 않도록 하겠습니다. 

만약 접근이 되지 않으면 WSL의 방화벽 설정을 확인하거나 Windows Defender Firewall에서 해당 IP와 포트를 허용해야 합니다.


3. 🔄 WSL에서 Windows로의 IP 접근 설정하기

📌 3-1. WSL에서 Windows의 IP 접근

WSL에서 윈도우로 IP로 접근하려면 Windows의 IP 주소를 알아야 합니다. PowerShell에서 다음 명령어로 윈도우의 IP를 확인할 수 있습니다:

ipconfig

 

출력된 정보 중 IPv4 주소를 확인합니다. 예를 들어 192.168.0.1이라면, WSL에서 다음과 같이 핑 테스트를 해봅니다.

ping 192.168.0.1

 

만약 핑이 정상 작동하지 않는다면, 윈도우 방화벽에서 WSL의 접근을 허용해야 합니다.


📌 3-2. Windows의 서버에 접근하기 (예: 웹 서버)

윈도우에서 로컬 서버를 열었다면, WSL에서도 해당 서버에 접근이 가능합니다. 예를 들어 윈도우에서 Python HTTP 서버를 열어봅시다.

Windows 명령 프롬프트:

python -m http.server 8080

이제 WSL에서 해당 서버에 접속합니다.

curl http://192.168.0.1:8080

4. 🔄 윈도우에서 WSL로의 IP 접근 허용하기

📌 4-1. 윈도우에서 WSL 접근을 위한 방화벽 설정

만약 WSL의 서버에 접근이 불가능하다면, 윈도우 방화벽이 문제일 수 있습니다. 다음과 같이 설정합니다.

1. Windows Defender 방화벽을 엽니다.

2. 고급 설정 > 인바운드 규칙에서 새 규칙을 만듭니다.

3. 포트 선택 후, 특정 포트(예: 80 또는 8080)를 입력합니다.

4. 연결을 허용으로 선택하고, 규칙에 이름을 지정합니다.

이제 Windows에서 WSL 서버로 접근이 가능합니다.


5. 🚀 정리

  1. WSL 설치: wsl --install로 간편하게 설치하고 Ubuntu 환경 세팅.
  2. 고정 IP 설정: WSL에서 고정 IP 할당 스크립트 작성.
  3. Windows에서 WSL로 접근: WSL 내부 서버를 고정 IP로 운영하고, 브라우저에서 접근.
  4. WSL에서 Windows로 접근: ipconfig로 윈도우 IP 확인 후 WSL에서 핑 테스트.
  5. 방화벽 설정: 필요한 포트를 방화벽에서 허용해 원활한 통신 보장.

반응형
저작자표시 비영리 변경금지 (새창열림)

'IT 지식' 카테고리의 다른 글

[Jenkins] CI/CD 환경 구축하기  (8) 2024.11.08
웹 접근성(Web Accessibility)이란  (8) 2024.11.07
JWT Token JAVA 구현 방법  (0) 2023.06.16
[MATOMO] 마토모 HTTP -> HTTPS #SSL #matomo ssl  (0) 2022.12.22
[티스토리 구글 애드센스 정산하기] 지급계좌 등록  (6) 2022.09.20
  1. 1. 🌐 WSL(Windows Subsystem for Linux) 설치 및 설정: 우분투 기반 사용하기
  2. 📌 1-1. WSL 설치 및 Ubuntu 세팅하기
  3. 📌 1-2. WSL로 우분투 실행 및 초기 설정
  4. 2. 📡 WSL에서 고정 IP 설정 및 접근 방법
  5. 📌 2-1. WSL 고정 IP 설정하기
  6. 📌 2-2. 윈도우에서 WSL에 접근하기 (고정 IP 사용)
  7. 3. 🔄 WSL에서 Windows로의 IP 접근 설정하기
  8. 📌 3-1. WSL에서 Windows의 IP 접근
  9. 📌 3-2. Windows의 서버에 접근하기 (예: 웹 서버)
  10. 4. 🔄 윈도우에서 WSL로의 IP 접근 허용하기
  11. 📌 4-1. 윈도우에서 WSL 접근을 위한 방화벽 설정
  12. 5. 🚀 정리
'IT 지식' 카테고리의 다른 글
  • [Jenkins] CI/CD 환경 구축하기
  • 웹 접근성(Web Accessibility)이란
  • JWT Token JAVA 구현 방법
  • [MATOMO] 마토모 HTTP -> HTTPS #SSL #matomo ssl
TaeHuiLee
TaeHuiLee
창업, 사업, 자기개발, 운동, Web, App, Java, python, 이슈, 개발자, JavaScript, amazon, cloud server, 취업, 스펙, Android Studio, Spring, React, Node.js, 구독하면 댓글 남겨주세요.
TaeHuiLee
Developer_TaeHui
TaeHuiLee
  • 분류 전체보기 (228)
    • WEB (71)
    • Java (38)
    • APP (17)
    • 딥러닝 (2)
    • DB (5)
    • 알고리즘 (17)
    • Python (10)
    • AWS (5)
    • Git (8)
    • Docker (13)
    • 창업 (2)
    • Java Script (5)
    • 군집드론 (3)
    • C언어 (1)
    • IT 지식 (16)
    • Rust (1)
    • Tomcat (1)
    • Nginx (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 어플
  • 도커
  • 관상 어플
  • DB
  • github
  • axios
  • GIT
  • docker
  • WSL
  • spring boot
  • 알고리즘
  • ubuntu
  • 티스토리챌린지
  • Java
  • Queue
  • Spring
  • javascript
  • 정렬
  • 수원역 맛집
  • 파이썬
  • 선택정렬
  • Nuxt
  • 수원 맛집
  • 오블완
  • 강릉 맛집
  • 서울 맛집
  • mariadb
  • python
  • 자바
  • VUE

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
TaeHuiLee
WSL(Windows Subsystem for Linux) 설치 및 설정
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.