program tip

방랑자의 포트 포워딩이 작동하지 않음

radiobox 2020. 8. 6. 08:12
반응형

방랑자의 포트 포워딩이 작동하지 않음


대한 시작 안내서vagrant 끝에서 작은 문제가 발생했습니다 . Apache2가 실행중인 CentOS베이스 박스 (Puppet을 통한 프로비저닝)에서 작업하고 있습니다. 다음 줄을 사용하여 웹 요청에 대한 포트 전달을 설정했습니다 Vagrantfile.

 config.vm.forward_port "web", 80, 4567

그러나 해당 포트에 요청하면 실패합니다. Safari에서보고 한 오류는 ' 서버가 예기치 않게 연결을 끊었 기 때문에 Safari가 " http : // localhost : 4567 / " 페이지를 열 수 없습니다 . "입니다.

내가했던 vagrant reload및 톱 "[기본] - 웹 : 80 => 4567 (어댑터 1)"스크롤에, 그래서 어디이 문제를 해결하기 시작해야 하는가? 감사.


나는 이것을 단지 더 많은 주석 대신 실제 답변으로 만들 것입니다.

첫 번째 : curl 'http://localhost:80'VM 내에서 시도 하십시오. 그래도 작동하지 않으면 포트 전달이 아닙니다.

다음 : curl -v 'http://localhost:4567/'호스트 컴퓨터에서 시도 하십시오. 컬은 Safari보다 더 나은 오류 메시지를 제공 할 수 있습니다.

포트 80에 대한 액세스를 제한하는 방화벽이 설정되어 있지 않은지 확인했습니다. 기본 Vagrant VM (Ubuntu)에는 방화벽이 설정되어 있지 않지만 다른 것을 사용하고 있다고 말하면 그만한 가치가 있습니다. 확인하다.

그없는 것이 있다면, 아파치는 당신이 사용할 수있는 간단한 HTTP 서버 포트 80 파이썬 선박에 나와있는 것보다 다른 것을 만드는 시도 -와 폴더로 이동을 index.html하고 실행 sudo python -m SimpleHTTPServer 80한 후 타격하려고 그 두 상자에서 곱슬. 그래도 작동한다면 아마도 Apache 구성 문제 일 것입니다. 나는 그것이 사실이라면 아파치에 대한 충분한 경험이 없다 (나는 nginx를 사용한다).


127.0.0.1루프백 인에 바인딩되기 때문에 VM 내의 서버로 인해 종종 발생한다는 추가 메모를 추가하고 싶었습니다 . 0.0.0.0모든 인터페이스 가 서버에 액세스 할 수 있도록 서버가 바인딩되어 있는지 확인해야 합니다.

Django의 개발 서버 및 일부 Ruby 서버와 같은 일부 내장 앱 서버 127.0.0.1는 기본적으로 기본 설정되어 있으므로주의해야합니다.

그 외에도 Steve가 말한 사실 : VM 내에서 작동하는지 확인하고 다른 간단한 서버를 시도하여 구성 문제인지 확인하십시오.


나는 NGINX가있는 CentOS 6.3에서 같은 문제가 있었고 대답은 vagrant box의 iptables에 있음을 발견했습니다.

방랑 상자의 bash에서 다음 단계를 수행하십시오.

현재 iptable 규칙을 먼저 나열

iptables -L -v

그런 다음 현재 규칙을 삭제하십시오.

iptables -F

TCP 포트 22에서 SSH 연결 허용

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

INPUT, FORWARD 및 OUTPUT 체인에 대한 기본 정책 설정

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

로컬 호스트에 대한 액세스 설정

iptables -A INPUT -i lo -j ACCEPT

확립되고 관련된 연결에 속하는 패킷을 수락

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

설정 저장

/sbin/service iptables save

수정 된 규칙 나열

iptables -L -v

localhost : [port #]을 (를) 말리거나 방랑자 밖에서 브라우저로 치십시오

CentOS iptable 구성에 대한 자세한 내용은 다음을 참조하십시오.

http://wiki.centos.org/HowTos/Network/IPTables

행운을 빕니다.


더 나은 해결책은 방화벽을 비활성화하는 것입니다.

service iptables stop
chkconfig iptables off

I want to add another note like Mitchell as well. if my case I forward it to 6789 from 80

$ curl -v http://localhost:6789

And I got

<HTML>
<HEAD><TITLE>Redirection</TITLE></HEAD>
<BODY><H1>Redirect</H1></BODY>

Then, I used the IP address instead, it got the correct html message.

참고URL : https://stackoverflow.com/questions/5984217/vagrants-port-forwarding-not-working

반응형