문제 # 1-VM 네트워킹 유형
네트워킹에는 3 가지 모드가 있습니다.
- NAT
- 호스트 만
- 브리지
설정에 대한 세부 사항
각각을 언제 사용해야합니까?
- # 1 : 다른 서버에있는 Facebook / 웹 앱 개발
- # 2 : 자체 앱을 빌드하고 게스트 VM뿐만 아니라 VirtualBox 호스트에서 테스트하려는 경우
- # 3 : 앱을 빌드하고 LAN의 다른 시스템에서 테스트하려는 경우
문제 # 2-방화벽 차단?
사용중인 배포판에 따라 방화벽이 웹 브라우저가 Apache 인스턴스에 액세스하는 것을 차단할 수 있습니다. 이것은 시스템을 핑 (ping) 할 수 있지만 Apache가 수신하는 포트 인 포트 80을 통해 시스템에 액세스 할 수 없다는 점에서 의미가 있습니다.
일시적으로 비활성화
CentOS에서는이 명령을 사용하여 비활성화합니다.
$ /etc/init.d/iptables stop
Apache가 듣고 있는지 확인하십시오.
이 포트에서 수신 중인지 확인할 수도 있습니다.
$ netstat -antp | grep :80 | head -1 | column -t
tcp 0 0 :::80 :::* LISTEN 3790/httpd
방화벽이 꺼져 있는지 확인
방화벽이 넓게 열려 있는지 확인할 수 있습니다.
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
이렇게하면 문제가 해결되면 TCP 포트 80을 통한 트래픽을 허용하는 규칙을 영구적으로 추가 할 수 있습니다.
TCP 포트 80에 대한 규칙 추가
$ /etc/init.d/iptables restart
$ iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ /etc/init.d/iptables save
참고 : 이렇게하면 재부팅간에 규칙이 유지됩니다.
방화벽이 TCP 포트 80을 수락합니다
포트 80이 열려있는 시스템은 다음과 같습니다.
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:8834
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
이슈 # 3-아파치 청취?
위의 문제에서 우리는 Apache가 수신 대기하는 것을 보았지만 때로는 하나의 IP 주소에서만 수신 대기하거나 다른 네트워크 인터페이스에서 수신 대기하도록 잘못 구성되었습니다. 이 명령 netstat
을 사용하여이를 다시 확인하고 Apache 구성 파일을 검토 할 수 있습니다.
$ netstat -anpt | grep :80 | column -t
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1750/httpd
이는 Apache가 모든 인터페이스 (IP 0.0.0.0)에서 수신 대기 중임을 나타냅니다.
이 특정 문제를 다루는 @ Lekensteyn 의 답변을 여기에서 자세히 반복하지 않겠 습니다.
참고 문헌
:::80
Apache는 IPv6 연결 만 수신하는 것입니다.Listen
지시 사항을 확인 해 보셨습니까 ?