Windows 환경에서 VirtualBox - Linux(Ubuntu) 환경에 원격연결 하는 방법(Remote Access)

Lee Yong Seok·2022년 5월 24일
0
post-thumbnail
post-custom-banner

💡 Windows 환경에서 VirtualBox에 Linux 환경으로 원격 연결해보자.

  1. Windows 환경에서 MySQL80 서비스가 실행되고 있는지 확인한다.
  1. 명령프롬프트(cmd) 창에서 ipconfig 명령어로 내 머신(PC)의 IP주소를 확인한다.

  1. VirtualBox - Linux 환경에서 Windows 환경의 MySQL로 IP 주소를 통해 접근해보자.

  • Windows 환경에 MySQL에서는 내 Linux 환경의 IP 주소를 모르기때문에 통신을 할 수 없다.(두 환경이 통신을 할 수 있는 통로가 있어야한다.)
  1. Windows 환경의 내 머신(PC)의 이름인 hostname 으로는 접근이 가능할까?

  • 마찬가지로 두 환경은 통신이 불가하다는 것을 알 수 있다.
  1. 내 머신의 MySQL에 접근이 가능한지 확인해보자.(나부터가 접근이 불가하다면 원격에서 접근하는것은 더더욱이 불가능하기때문이다.)

  • 내 머신에서 MySQL은 접근이 가능하다는 것을 확인했다.

💡 Windows 환경에서 VirtualBox - Linux 환경으로 원격하기 위한 2가지 작업

첫 번째 작업

  1. Windows 에서 VirtualBox Machine 으로 접근하려면 IP주소를 알아야한다.

  • $ ip a(address) 명령어로 Linux의 IP주소를 알 수 있다.
  • enp0s3의 IP주소는 10.0.2.15/24 이다.
  1. Windows 환경에서도 VirtualBox 환경설정으로 확인도 가능하다.
  • 파일 > 환경설정을 클릭한다.

  • 네트워크 탭에 우측에 puls(+) 아이콘인 '새 NAT 네트워크를 추가합니다'를 클릭한다.

  • 마찬가지로 우측에 톱니바퀴 모양인 아이콘을 클릭한다.

  • 네트워크 CIDR 에 있는 주소가 바로 위에서 명령어로 봤던 Linux의 1번 랜카드의 IP주소이다.

💡 Linux의 1번 랜카드 IP주소를 알았으니 다시 Windows 환경에서 ping test를 해보자.

  1. CTRL + R 키로 실행창을 열고 cmd 명령어를 입력한 후 Enter 를 친다.

  1. 알아낸 Linux의 1번 랜카드의 주소인 10.0.2.15로 ping test 를 한다.

  • 마찬가지로 접근이 안된다.(내 Windows 운영체제 머신의 IP대역폭과 VirtualBox Linux 환경 머신의 IP대역폭이 다르기 때문이다.)

💡 어떻게 하면 Windows 환경에서 VirtualBox - Linux 환경으로 원격이 가능할까?

  • 정답은 host(Windows)와 guest(ubuntu)를 통신할 수 있도록 통신전용의 새로운 랜카드를 꽂아주면 된다.
  1. 새로운 랜카드를 꽂아주기위해 잠시 Linux 환경인 MySQL DB Server 의 전원을 끈다.($ sudo poweroff) 그리고 MySQL DB Server 의 설정을 클릭한다.

  1. 네트워크 탭에 새로운 랜카드를 꽂아야하니 어댑터2를 클릭하고 네트워크 어댑터 사용하기를 체크한다음 연결되지 않음 -> 호스트 전용 어댑터로 변경하고 확인을 클릭한다.

  • 이렇게 어댑터가 2개인 것을 확인할 수 있다.
  1. 새로운 랜카드를 꽂았으니, 다시 MySQL DB Server 를 실행한다.

  1. 들어오면 다시 ubuntu-server login 아이디와 비밀번호를 입력한다.

  1. $ ip a 명령어로 새로운 랜카드의 IP주소를 확인한다.

  • 새로운 랜카드(enp08s)인 통신전용선은 확인이 됬다.
  1. $ sudo apt install network-manager 명령어로 통신전용선의 IP주소를 받아온다.

  • 중간에 계속하겠냐는 물음에 그냥 공백으로 두고 Enter를 친다.(공백으로 두면 default 값인 대문자 Y가 입력된다.)

  • 정상적으로 작업이 진행되면 위의 화면과 같이 진행된다.
  1. 받아온 network-manager 서비스 상태를 확인한다.

  • active (running) 을 확인했다면, q 키로 빠져나온다.

💡 yaml 파일을 수정하기 전 백업 파일을 만들고 yaml 파일을 수정하자.

  1. $ sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak 명령어로 본래 yaml 파일을 백업한다.

  1. $ sudo nano /etc/netplan/00-installer-config.yaml 명령어를 입력하고 Enter를 친다.

3-1. Line 2에 Spacebar를 두번 친 후 renderer : NetworkManager 라고 입력한다.
3-2. Line 4에 enp0s3에 3을 8로 수정한다.
3-3. Line 5에 dhcp4: true를 dhcp4: no로 수정한다.
3-4. Line 6에 addresses: 를 추가한다.
3-5. Line 7에 - 192.168.56.5/24 를 추가한다.
3-6. Line 8에 gateway4: 192.168.56.1 를 추가한다.

  1. CTRL + O + Enter 로 입력한 정보를 저장하고 CTRL + X 명령어로 빠져나온다.

  1. 서비스 중단이 잘못된 구문에서 방지되도록 구성을 적용하기 전에 유효성을 검사한다.

  • 잘못 입력했었다면 error라는 문구가 뜰것이고 필자는 정확히 입력했기때문에 error 문구가 따로 뜨지 않는것을 확인할 수 있다.
  1. Windows 환경에서 VirtualBox - Linux 환경으로 다시 한번 ping test를 해보자.

  • 드디어 두 환경 간 통신통로가 확보가 된것을 확인할 수 있다.

두 번째 작업

외부에서 Linux 환경(내부)으로 접근할 수 있도록 바인딩을 하자.

  1. $ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 명령어를 입력한 후 Enter를 친다.

  1. 맨 아래줄에 bind-address = 0.0.0.0 을 추가한다.(어디서든 접근이 가능하도록한다.) 그리고 CTRL + O + ENTER 로 저장 후 CTRL + X 로 빠져나오자.

💡 MySQL root 계정의 비밀번호를 변경한다.(보안▲)

  1. $ mysql -u root -p > 비밀번호 입력하여 mysql으로 로그인을 한다.

  1. mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'P@$$W0rd'; 로 비밀번호를 변경한다.(영문자 대소문자와 특수문자 및 숫자를 조합한다.)

  1. mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%' WITH GRANT OPTION; 로 권한을 준다.(root 유저에게 모든 권한을 준다.)

  1. mysql> FLUSH PRIVILEGES; 로 부여한 권한을 완전히 적용한다.

  1. mysql 을 종료하고 mysql 서비스를 재실행한다.

💡 Windows 환경의 Workbench로 원격 연결을 하자.

  1. 원격 연결을 위해 새로운 Connection을 생성한다. (+ 를 클릭한다.)

2-1. Connection Name: ubuntu-server-root 를 입력한다.
2-2. Hostname: 192.168.56.5 를 입력한다.
2-3. Username: root 를 입력한다.
2-4. Password: Store in Vault... 를 클릭하여 비밀번호를 입력하여 다시 입력하지 않아도 되도록 비밀번호를 저장한다.

  1. Test Connection 을 클릭하여 아래와 같은 화면이 나오면 성공한 것이다. OK 를 클릭한다.

  • 위의 화면과같이 새로운 MySQL Connection 카드가 생겼을 것이다.

  • mysql 디폴트 데이터베이스만 존재하는것을 확인할 수 있다.

연결 완료

profile
Today I Learned 🌙
post-custom-banner

0개의 댓글