본문 바로가기
네트워크/리눅스

리눅스 실습 서버 만들기 - part1. 윈도우에서 wsl로 우분투 리눅스 서버 생성

by anjulia 2023. 8. 3.

 

 

교수님께서 리눅스 실습 서버를 만들어서 학생들이 서버에서 실습할 수 있는 환경을 만들라고 하셨다.

(학생들이 virtural box, vm ware 깔아서 하는게 조교인 내 입장에선 속편하지만 학생들은 처음 까는 가상머신 프로그램의 에러를

처음 보면 깊은 좌절감에 빠질 것이다.)

 

뭐부터 해야할지 막막했다.

 

같은 연구실분들의 도움 + 구글링을 통해서 만든 실습서버에 대해서 포스팅 하도록 하겠다!!!

(여러가지 시도한 것들도 포스팅합니다)

 

1. Virtural box에서 리눅스 서버를 계속 돌려보자!

- 시도는 좋았으나, 가상머신의 특성상 서버의 속도가 굉장히 느렸다.

가상머신을 사용하게 되면, 내 컴퓨터의 하드웨어 자원을 윈도우 운영체제와 리눅스 운영체제가 같이 사용하면서 속도가 굉장히 느려진다는 것이다.

 

학생이 리눅스 실습 서버로 접속하려면 다음과 같은 과정을 거칠 것이다.

 

1. 학생 컴퓨터1은 내가 virtual box를 돌리고 있는 내 연구실 컴퓨터의 공인 IP로 ssh 접속 요청을 보낸다.

2. 연구실 컴퓨터는 학생 컴퓨터1의 요청을 받고 virtual box에 있는 리눅스 서버로 다시 ssh 접속 요청을 보내고 연결을 수락한다. 

3. 위의 과정을 수행하기 위해서는 virtual box의 네트워크 설정을 NAT 모드로 변경 후 내 연구실 컴퓨터 공인 IP와 리눅스 내부 IP를 포트포워딩을 해주어야 한다. 

 

아래 링크에 친절한 설명이 있으니 참고하면 될 것 같다.

https://velog.io/@gustjr123/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%95%84%ED%82%A4%ED%85%8D%ED%8A%B8-Vbox-Network%EC%84%A4%EC%A0%95-%EB%B0%8F-%ED%8F%AC%ED%8A%B8%ED%8F%AC%EC%9B%8C%EB%94%A9

 

[VirtualBox] Network설정 및 포트포워딩

VirtualBox에서 네트워크를 설정하는 방법은 왼쪽에 가상머신을 선택한 후에 위 그림과 같은 경로를 통해서 설정하게 된다.이 중에 몇가지만 소개한다.NAT : NAT 방식, Network Address Transfer 방식으로 가

velog.io

 

 

 

2. WSL2를 이용

WSL이란? 

WSL (Windows Subsystem for Linux)은 마이크로소프트에서 제공하는 Windows 운영 체제에서 Linux 운영 체제를 실행할 수 있는 기술
 - WSL은 Windows 10에서 제공되고 있으며, Windows 사용자들이 Linux 환경에서 제공되는 명령줄 도구, 스크립트, 언어 등을 사용할 수 있는 기회를 제공함
- 가상 머신이나 부팅 가상 머신을 사용하는 것과 달리, WSL은 Windows 운영 체제의 커널에서 동작함
- WSL을 사용하면 Windows 운영 체제에서 Linux 패키지를 설치하고 실행할 수 있으며, Windows 파일 시스템에 접근할 수 있어 편의성이 높음

 

 

한 마디로 정리하자면 WSL은 윈도우 운영체제에서 리눅스 운영체제를 실행 할 수 있는 환경을 제공한다. 

 

 

2-1. Window Terminal 설치

WSL2를 설치하기 전에 Microsoft store 에서 Window Terminal을 설치하자.

https://comeinsidebox.com/%EC%9C%88%EB%8F%84%EC%9A%B010-windows-terminal-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95/

 

윈도우10 Windows Terminal 설치 및 사용 방법 - insideBOX

2019년 7월 21일 프리뷰 릴리스가 처음으로 마이크로소프트 스토어에 게시되었습니다. 정식으로 릴리즈 된지 도 어느정도 시간이 지나 기본적인 사항을 정리 해보려합니다. Windows Terminal 은 CMD , Po

comeinsidebox.com

 

 

2-2. WSL2 설치 명령어 실행

그리고 공식문서를  보면서 windows terminal 에서 wsl2를 설치하는 명령어를 입력한다.

https://learn.microsoft.com/ko-kr/windows/wsl/install-manual

 

이전 버전 WSL의 수동 설치 단계

wsl install 명령을 사용하지 않고 이전 버전의 Windows에 WSL을 수동으로 설치하는 방법에 대한 단계별 지침입니다.

learn.microsoft.com

 

2-3. WSL2에서 Ubuntu linux 설치하기 

 

https://blog.naver.com/PostView.naver?blogId=chcbaram&logNo=222525998696 

 

WSL2 및 Ubuntu 설치

윈도우에서 리눅스 시스템을 사용하기 위한 WSL2를 사용해서 Ubuntu를 설치하는 방법을 살펴 보겠습니...

blog.naver.com

 

 

 

2-4. WSL2에서 외부접속을 위한 포트포워딩

WSL2에서 포트포워딩 설정을 하기 위해서 .ps1 확장자를 가진 파워셸 스크립트를 따로 작성 후 저장한다. WSL2는 재부팅할 때마다 WSL2에서 주는 가상 IP가 변하기 때문에 재부팅할 때마다 이 스크립트를 실행해주고 WSL2를 실행해야한다. 이에 대한 아래 링크에 친절한 설명이 나와있다.

 

내 기억에 재부팅할 때 이 스크립트를 자동으로 실행하는 명령어가 있었던 것으로 기억한다. 

 

그리고 이 링크에서는 공유기 사용자를 위한 포트포워딩을 진행하지만,

필자의 컴퓨터는 공인 IP를 할당 받은 컴퓨터로 이에 대해 설정하지 않았다.

https://velog.io/@momentum96/WSL2-%EC%99%B8%EB%B6%80-%EC%A0%91%EC%86%8D-%EC%84%A4%EC%A0%95#2-wsl2-ssh-%EC%84%A4%EC%A0%95

 

WSL2 외부 접속 설정

공유기를 사용하고 있는 네트워크 환경에서 Window PC의 WSL에 외부에서 SSH를 사용하여 접속하기 위한 설정 과정을 다룬다.

velog.io

 

 

2-5. 윈도우 인바운드 설정 (외부로 들어오는 요청을 수락하기 위해서)

먼저 학생이 내 연구실 컴퓨터에 접속해야 서버에 접속이 가능하다.

접속을 받아주기 위해서는 내 연구실 컴퓨터의 특정포트를 열어야 한다.

나는 1234번 port를 인바운드 규칙으로 설정하였다. (내 연구실 컴퓨터의 1234포트를 이용해서 학생들의 접속을 주고 받음)

 

아래 링크에 이에대한 자세한 설명이 나와있다.

윈도우의 특정 포트를 열어준다.

https://tttsss77.tistory.com/238

 

윈도우즈 방화벽 설정 - 인바운드 규칙 설정하기(네트워크 포트 열기)

본 글에서는 윈도우즈 10(프로)에서 방화벽의 설정을 변경하여 특정 포트로 수신되는 네트워크 트래픽을 허용하는 방법에 대해 설명하고자 합니다. 1. 윈도우 키 + "I" 키를 눌러 "설정" 창을 띄운

tttsss77.tistory.com

 

 

포트가 열려있는지 확인하기 위해서

 

https://www.yougetsignal.com/tools/open-ports/

 

Open Port Check Tool - Test Port Forwarding on Your Router

 

www.yougetsignal.com

위의 사이트를 이용해서 확인한다!

 

2-6. WSL2에서 ssh 서비스를 실행 

 

ssh 서비스를 실행하고 하는 명령어

service ssh start

 

ssh 서비스의 현재 상태에 대해 알려주는 명령어 

service ssh status

 

2-7 WSL2에서 ssh 기본 포트를 변경 

22번 포트를 열어두면 계속해서 외부에서 공격이 들어온다고 한다. 그래서

ssh 기본포트 또한 1234로 변경하였다. 

 

 

 

아래 파일에서(sshd_config)

Port 22 를

바꾸고 싶은 포트 번호로 변경 

필자의 경우 Port 1234로 변경함 

sudo vi /etc/ssh/sshd_config

https://velog.io/@popcorn_kim93/WSL2%EC%97%90-ssh-%EC%84%9C%EB%B2%84%EC%99%80-%EC%99%B8%EB%B6%80%EC%97%B0%EA%B2%B0-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95

 

WSL2에 ssh 서버와 외부연결 환경 구축

wsl2에 ssh 서버 및 외부연결 환경 구축

velog.io