교수님께서 리눅스 실습 서버를 만들어서 학생들이 서버에서 실습할 수 있는 환경을 만들라고 하셨다.
(학생들이 virtural box, vm ware 깔아서 하는게 조교인 내 입장에선 속편하지만 학생들은 처음 까는 가상머신 프로그램의 에러를
처음 보면 깊은 좌절감에 빠질 것이다.)
뭐부터 해야할지 막막했다.
같은 연구실분들의 도움 + 구글링을 통해서 만든 실습서버에 대해서 포스팅 하도록 하겠다!!!
(여러가지 시도한 것들도 포스팅합니다)
1. Virtural box에서 리눅스 서버를 계속 돌려보자!
- 시도는 좋았으나, 가상머신의 특성상 서버의 속도가 굉장히 느렸다.
가상머신을 사용하게 되면, 내 컴퓨터의 하드웨어 자원을 윈도우 운영체제와 리눅스 운영체제가 같이 사용하면서 속도가 굉장히 느려진다는 것이다.
학생이 리눅스 실습 서버로 접속하려면 다음과 같은 과정을 거칠 것이다.
1. 학생 컴퓨터1은 내가 virtual box를 돌리고 있는 내 연구실 컴퓨터의 공인 IP로 ssh 접속 요청을 보낸다.
2. 연구실 컴퓨터는 학생 컴퓨터1의 요청을 받고 virtual box에 있는 리눅스 서버로 다시 ssh 접속 요청을 보내고 연결을 수락한다.
3. 위의 과정을 수행하기 위해서는 virtual box의 네트워크 설정을 NAT 모드로 변경 후 내 연구실 컴퓨터 공인 IP와 리눅스 내부 IP를 포트포워딩을 해주어야 한다.
아래 링크에 친절한 설명이 있으니 참고하면 될 것 같다.
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을 설치하자.
2-2. WSL2 설치 명령어 실행
그리고 공식문서를 보면서 windows terminal 에서 wsl2를 설치하는 명령어를 입력한다.
https://learn.microsoft.com/ko-kr/windows/wsl/install-manual
2-3. WSL2에서 Ubuntu linux 설치하기
https://blog.naver.com/PostView.naver?blogId=chcbaram&logNo=222525998696
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
2-5. 윈도우 인바운드 설정 (외부로 들어오는 요청을 수락하기 위해서)
먼저 학생이 내 연구실 컴퓨터에 접속해야 서버에 접속이 가능하다.
접속을 받아주기 위해서는 내 연구실 컴퓨터의 특정포트를 열어야 한다.
나는 1234번 port를 인바운드 규칙으로 설정하였다. (내 연구실 컴퓨터의 1234포트를 이용해서 학생들의 접속을 주고 받음)
아래 링크에 이에대한 자세한 설명이 나와있다.
윈도우의 특정 포트를 열어준다.
https://tttsss77.tistory.com/238
포트가 열려있는지 확인하기 위해서
https://www.yougetsignal.com/tools/open-ports/
위의 사이트를 이용해서 확인한다!
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
'네트워크 > 리눅스' 카테고리의 다른 글
Ubuntu 22.04 LTS 버전에서 cuda 설치가 안될 때 (0) | 2023.10.12 |
---|---|
리눅스 실습서버 만들기 part2 - Shell script를 이용해 학생 아이디, 패스워드 생성하는 코드 작성하기 (2) | 2023.08.03 |
wsl2 에서 리눅스 여러개 사용하기 (0) | 2023.04.14 |
맥(MacOS)에서 virtualbox 우분투 ssh로 접속하기 (0) | 2021.11.26 |
우분투 리눅스 파일 압축하기 (zip 명령어) (0) | 2021.10.11 |