여기에는 최소한 3 개의 개별 구성 요소가 있으며 각각 올바르게 구성해야합니다.
레일즈 바인딩 주소
Rails (또는 다른 서버 응용 프로그램)가 네트워크 연결을 수신하기 위해 열리면 IP와 포트 모두에 바인딩됩니다. 들어오는 요청이 두 요청과 모두 일치하지 않으면 연결을 수락하지 않습니다. 보낸 사람 rails server --help
:
Usage: rails server [mongrel, thin etc] [options]
-p, --port=port Runs Rails on the specified port.
Default: 3000
-b, --binding=IP Binds Rails to the specified IP.
Default: localhost
...
따라서 기본적으로 Rails는 localhost
(루프백) 네트워크 어댑터 ()로 전송 된 요청 만 수락합니다 lo
. 이 어댑터는 같은 컴퓨터 내에서만 액세스 할 수 있기 때문에 데비안 VM 자체 내에서만 요청이 수락됩니다. 테스트에는 적합하지만 테스트에는 적합하지만 프로덕션에는 유용하지 않으며 다른 컴퓨터에서는 테스트 할 수도 없습니다.
다른 컴퓨터 (Windows 7 호스트 포함)에서 Rails에 액세스하려면 Rails가 데비안이 외부에서 액세스 할 수있는 IP 주소에 바인딩하도록 지시해야합니다 (아래 참조).
그러나 더 쉬운 방법은 Rails에게 특수 IP 주소에 바인딩하도록 지시하는 것 입니다. 0.0.0.0
이는 모든 네트워크 어댑터 를 의미 합니다 . 따라서 Rails 서버를 다음과 같이 시작하십시오.
rails server -p 80 -b 0.0.0.0
네트워크에서 VM을 볼 수있는 사람이라면 누구나 웹 사이트에 액세스 할 수 있습니다.
다른 두 구성 요소가 작동하더라도 여전히 엉망이되었을 수 있습니다.
VM IP 주소
브라우저를 별도의 컴퓨터 인 데비안 가상 머신을 가리켜 야합니다.
경험상 규칙은 localhost
항상 동일한 컴퓨터를 참조한다는 것입니다. 그러나 네트워킹을 위해 데비안 VM은 별도의 컴퓨터입니다. Windows 7 호스트에서 웹 브라우저를 사용하는 경우 localhost
항상 Windows 7을 참조하며 다른 것은 없습니다.
여기에는 두 가지 옵션이 있습니다.
VirtualBox VM 어댑터를 브리지 모드로 설정하십시오 (질문에서 언급했듯이). 이것은 데비안을 Windows 7 호스트와 동일한 외부 / 가정 / 직장 네트워크에 직접 배치합니다. 그런 다음을 실행하여 데비안 VM의 IP를 확인할 수 있습니다 ifconfig
. 귀하 eth0
또는 eth<something>
어댑터 의 IP를 찾으십시오 . 이것을 브라우저의 주소 표시 줄에 연결하십시오.
NAT 어댑터 및 VirtualBox 포트 전달을 사용하십시오 . IMO는 더 복잡합니다.
데비안 방화벽
데비안에서 작업 한 지 얼마되지 않아서 현재의 기본값이 무엇인지 모르겠지만, 위의 두 가지가 효과가 없다면 살펴볼 가치가 있습니다. 데비안에서 방화벽을 실행하고 있다면 다른 컴퓨터에서 액세스하려는 포트를 열어야합니다.
도움이 되었기를 바랍니다 :)