Windows 10의 Virtualbox에서 호스팅되는 CentOS7 VM의 nginx 웹 서버에 액세스

Windows 10의 Virtualbox에서 호스팅되는 CentOS7 VM의 nginx 웹 서버에 액세스

설정:

Virtualbox 5 베타 4(4.3.8에서도 테스트됨) 내 Windows 10 Pro 서버(미리 보기 버전 10074)에서 실행되는 단일 CentOS 7.1 VM. nginx/1.9.0을 사용하여 정적 HTML 파일을 제공합니다.

VM은 Virtualbox 내의 NAT 설정을 사용하여 내 인트라넷에 연결됩니다. 표준 Virtualbox 설정을 사용하여 서버에서 VM으로 포트 22, 80 및 443을 전달했습니다.

문제:

VM 내에서 컬을 사용하여 모든 페이지를 가져올 수 있습니다( curl localhost예상된 결과를 다시 가져옴). 그러나 호스트 Windows 서버나 인트라넷의 다른 클라이언트(IP 또는 호스트의 로컬 호스트)에서 페이지를 가져오려고 하면 "연결할 수 없음" 또는 "연결 재설정" 오류가 발생합니다.

VM에서 netstat를 사용하여 nginx가 0.0.0.0과 [::] 모두에서 포트 80과 443을 수신하고 있는지 확인했습니다. 또한 Windows 서버에서 VM이 실행되지 않을 때 포트 80과 443이 사용되지 않고 VM이 실행될 때 수신 대기 중인지 확인했습니다.

nginx에서 생성된 로그를 확인하면 access.log에는 내 컬 요청만 포함되어 있으며 내 error.log에는 관련 내용이 표시되지 않습니다.

그러나 나는 또한 서버(포트 22)에서 sshd를 실행하고 있으며 내 인트라넷의 모든 컴퓨터에서 연결할 수 있습니다(그리고 인터넷 라우터의 포트를 전달할 때 외부적으로). 그래서 이것이 방화벽이라고 믿지 않습니다. 문제.

시도한 솔루션:

포트 80/443으로 들어오는 연결을 허용하기 위해 Windows 방화벽을 열고 프로그램 예외에 Virtualbox를 추가해 보았습니다. 또한 방화벽을 완전히 비활성화해 보았습니다.

호스트 서버에서 1000보다 큰 포트로 이동하려고 시도했지만 포트 22가 제대로 작동하는 것 같기 때문에 그다지 의미가 없습니다.

안타깝게도 VM 연결을 NAT에서 다른 유형으로 변경할 수 없습니다. Virtualbox는 아직 Windows 10에서 어댑터 브리징을 지원하지 않는 것 같습니다(여러 번 재설치와 새로운 베타 릴리스를 시도했습니다).

답변1

firewall-cmdVM의 방화벽을 통해 http 및 https 트래픽을 허용하는 데 사용해야 했습니다 . 이전 버전의 CentOS는 iptables.

관련 정보