공개적으로 액세스할 수 없는 Apache 웹 서버

공개적으로 액세스할 수 없는 Apache 웹 서버

저는 Debian(Jessie, 8)이 설치된 데스크탑에서 Apache(2.4.10) 웹 서버를 실행하고 있습니다.

데스크탑에는 고정 로컬 IP 주소(192.168.xx)가 있고 내 WAN(공용) IP 주소도 내 ISP에 의해 고정되었습니다(82.xxx). 이 데스크탑에 대한 포트 80에 대한 포트 전달이 추가되었습니다.

LAN에서는 문제 없이 웹페이지에 액세스할 수 있지만 집 내부 또는 외부에서 WAN 주소를 사용하여 액세스할 수 없습니다. Chrome에서 "웹페이지를 사용할 수 없습니다 - ERR_CONNECTION_REFUSED"라는 메시지가 표시됩니다. WAN 주소(다른 포트)를 사용하여 라우터를 열 수 있습니다.

웹페이지 자체는 Hello World가 포함된 "index.html"에 지나지 않습니다.

iptables 방화벽을 켜려고 했지만 작동하지 않았습니다. 80이 아닌 다른 포트를 사용해 보았지만 작동하지 않았습니다. ISP에 전화했는데 포트 80이 차단되지 않았습니다. 나는 이미 나 자신을 미친 듯이 검색했습니다. 사이트에 액세스할 수 있도록 하는 방법에 대한 제안 사항이 있는 사람이 있습니까?

답변1

나는 그것을 해결했다!

Moonpoint 덕분에 포트 포워딩에 문제가 있다는 것을 깨달았습니다. 그래서 다시 살펴보니 포트 80 규칙의 경우 "WAN 인터페이스"가 "ADSL"(기본값)로 설정되어 있는 것으로 나타났습니다. 무슨 뜻인지 모르겠어서 한번도 바꾸지 않았습니다. 다른 옵션을 시도하고 "ETHWAN"으로 설정하여 문제를 해결했습니다. 이제 웹페이지에 공개적으로 액세스할 수 있으며 IP가 없는 DDNS도 추가했습니다.

편집: 이제 ETHWAN WAN 인터페이스는 단순히 ISP가 라우터에 추가한 인터페이스이며 유리 섬유 연결을 위한 인터페이스라는 것을 알게 되었습니다.

답변2

iptables 방화벽을 끄려고 했지만 실패했다고 했다면, iptables 방화벽을 비활성화했지만 여전히 외부 IP 주소에서 웹 서버에 연결할 수 없다는 의미입니까, 아니면 호스트를 비활성화할 수 없다는 의미입니까? 기반 iptables 방화벽? 웹사이트의 Apache 액세스 및 오류 로그를 확인하여 외부 IP 주소에서 시스템에 액세스하려는 시도가 해당 파일 중 하나에 기록되었는지 확인하세요. Apache /etc/httpd/conf/httpd.conf파일을 확인하십시오. 파일의 어느 곳에나 다음과 유사한 섹션이 있습니까?

<Directory /home/www/example>
      Order Deny,Allow
      Deny from all
      Allow from 192.168 127.0.0.1
 </Directory>

위의 예에서는 다음을 제외한 모든 위치에서 액세스할 수 있습니다.로컬호스트주소 127.0.0.1과 동일한 LAN에 있는 시스템(예: 192.168.xxx.xxx)은 허용되지 않습니다. 전 세계에서 서버에 액세스할 수 있도록 하려면 "모두 거부"는 부적절합니다.

다음을 사용하여 네트워크 장비의 개입이 없는 경우 Apache 웹 서버를 실행 중인 Debian 시스템이나 포트 전달을 설정한 라우터에 문제를 격리할 수 있습니다.tcpdumpDebian Linux 시스템의 명령입니다. tcpdump -i any port 80루트로 명령을 실행하십시오 . 그러면 tcpdump는 모든 인터페이스에서 포트 80에 대한 연결만 찾고 다른 트래픽은 무시하게 됩니다. 그런 다음 외부 주소에서 웹 서버에 연결해 보십시오. tcpdump가 Linux 시스템에 도달하는 포트 80에 대한 트래픽을 표시하면 포트 전달이 올바르게 작동하고 있는 것입니다. 포트 전달에 문제가 없을 가능성이 높으면 포트 80을 웹 서버의 올바른 IP 주소로 전달하고 있는지 다시 확인하십시오.

관련 정보