제이슨의 개발이야기

(포트포워딩 하는법)외부 Client 와 VirtualBox Ubuntu 환경에서 작동하는 Server 연결 본문

안드로이드

(포트포워딩 하는법)외부 Client 와 VirtualBox Ubuntu 환경에서 작동하는 Server 연결

제이쓰은 2022. 3. 30. 18:11
728x90
반응형

안녕하세요! 

오늘은 외부 기기(스마트폰 , 테블릿, PC 등) 와 Virtual Box 가상머신에 설치되어있는 Ubuntu 리눅스 환경에서 작동하는 Server 와 소켓 통신하는 방법에 대해서 이야기 해보려고 합니다! 

 

참고로 제가 설명이 서툰점 이해 부탁드립니다 ㅠㅠㅠㅠㅠ

 

보통 개발자 분들이 가지고 있으신 PC는 대부분 Mac Os 또는 Window 를 사용하고 계실거라 생각합니다 

그러나 간혹 Linux 환경에서 Server 구축 후 Client 와 연결이 필요로 하는 경우가 생길 수 있습니다! 

그때는 보통의 경우 Virtual Box 란 가상머신 위에 Linux 환경을 구축해서 Linux 환경에서의 개발을 진행해야합니다 

여기서 문제가 발생합니다 

기존 PC에 서버를 구동하면 전혀 상관없지만

Virtual Box 즉 가상머신 위에 서버를 구동하게 되면 서버와 통신을 일반적으로 할 수 가 없습니다! 

이럴때는 포트포워딩을 통해서 가상머신 위에 리눅스 서버와 통신을 할 수 있습니다!

 

먼저 Virtual Box  

 

에서 설정 을 클릭 한 후 

이런식으로 호스트 IP 와 게스트 IP 를 입력해줍니다!

 

여기서 호스트 IP는 현재 자신의 컴퓨터 IP 주소를 입력하시면 되고 

게스트 IP 는 가상머신 위에 돌아가는 리눅스 서버의 IP주소를 입력하면 됩니다!

호스트포트 같은 경우 서버 포트를 그대로 호스트포트 , 게스트 포트 에 입력해주시면 됩니다

저는 12334포트를 서버 통신을 위한 포트로 사용하고 있기 때문에 12345 라고 적었습니다

 

이런 세팅의 의미는 호스트 IP 로 12345 포트 넘버로 접속 시 127.0.0.1  IP 로 12345 포트넘버로 연결 시켜주는 것을 의미합니다!

 

이렇게 먼저 Virtual Box 의 네트워크 세팅을 하고 나서

공유기 환경설정에서 네트워크 세팅을 해주어야합니다! 

공유기 환경설정 페이지는 공유기 회사 및 기종에 따라 다 다릅니다! 

예시로 

저는 ipTime 공유기를 사용하고 있어서 

192.168.0.1 를 인터넷 주소에 입력하면 자신의 네트워크 세팅을 할 수 있는 세팅 화면이 나옵니다! 

 

여기서 포트포워드 설정을 눌러서 내부IP 와 외부 포트  내부 포트 를 자신이 원하는 포트 넘버로 설정해줍니다! 

 

이 세팅의 의미는 외부포트로 접속시(12345) 내부 포트 (12345)로 접속하게 끔 규칙을 설정함을 의미합니다 

그렇다면 내부 포트 는 Virtual Box 의 12345 포트 를 향함을 의미하는 것입니다!

 

이러면 설정은 모두 맞친 상태입니다!!

 

이제 Client 는 해당 PC IP 즉 

이미지 를 보면 192.168.0.22가 PC IP 주소 이므로 

PC IP주소 즉 호스트 IP 주소와 포트 넘버 12345 로 접속 시도를 하면 PC 의 Virtual Box 위에 돌아가는 리눅스 서버와 접속이 가능 합니다!!

 

세팅을 끝내면 

실제 접속 할 때 

호스트 IP 와 해당 포트로 접속 시 

PC에서 설정해놓은 규칙으로 인해서 내부 포트 즉 가상머신 포트 로 연결시켜주고 

가상머신에서는 호스트 IP 와 접속한 포트 넘버에 따라서 가상 머신 위로 돌아가는 리눅스 서버와 연결 시켜줍니다! 

아래 이미지는 그림으로 간략하게 설명해봤습니다! 

녹색 Connection 은 외부 Client 의 연결 Request 입니다

 

 

 

 

728x90
반응형