동일 공유기를 사용하는 외부 컴퓨터에서 다른 컴퓨터의 가상머신에 접속을 허용하기 위한 과정
제가 원하는 상황은 아래와 같았습니다.
저는 처음에는 단순하게 가상 머신의 ip를 이용해서 ping을 시도하면 가능할 것이라고 생각했었습니다.
그러나, 연결은 되지 않았고 이를 해결하기 위해 포트 포워딩을 사용해야된다는 것을 알게되었습니다.
윈도우 10에서는 기본적으로 ping을 막고있습니다.
즉, 윈도우에서 외부로 ping을 보낼 수는 있으나 외부에서 윈도우 10으로 ping을 보내는 것은 허용하지 않는 것입니다.
(저는 처음에 이 상황을 알지 못하고 시간을 많이 날렸습니다..)
그래서 윈도우 관리자 cmd에서 아래의 명령어를 입력해서 ping을 쌍방향으로 가능하도록 설정해주어야합니다.
netsh advfirewall firewall add rule name="ICMP Allow" protocol=icmpv4:8,any dir=in action=allow
명령어를 성공적으로 입력하면 라즈베리 파이에서 윈도우 10 환경의 컴퓨터 A로는 ping을 성공한 것을 확인할 수있습니다.
(ping 뒤에 ip는 본인에 맞는 ip를 입력해주어야합니다.)
위처럼 ping을 허용한다고 해도 가상머신으로 접근할 수 있는 것은 아닙니다.
가상머신과 통신(ping, scp...)을 하려면 포트 포워딩을 활용해주어야합니다.
저는 VirtualBox 를 사용하여 가상머신을 이용했습니다.
다른 가상머신 툴을 사용하셔도 방법은 동일합니다.
먼저 접속을 원하는 가상머신의 설정에 들어가서 포트 포워딩에 들어가줍니다.
들어가서 포트 포워딩 관련 룰을 아래와 같이 지정해줍니다.
물론, ip 나 포트는 본인에 상황에 맞게 설정해주셔야합니다.
간단하게 설명해드리면,
추가로, 게스트 IP는 가상머신에서 ifconfig 를 활용해서 확인할 수 있습니다.
위의 과정을 착실히 따라오신다면 가상머신에 외부에서 접속이 가능합니다.
혹시나, 해당 포트로 가상머신이 잘 접속하는지 확인하고 싶으시면 아래와 같은 방법으로 확인이 가능합니다.
echo > /dev/tcp/접속을 원하는 ip/포트번호
위의 명령어를 입력했을때, 포트가 성공적으로 열려있다면 아무 메시지도 나오지 않고 종료될 것입니다.
echo $?
추가로 위의 명령어를 입력해서 0 이 결과로 나온다면, 성공적으로 접속이 되었음을 확인할 수 있습니다.