데비안 7 서버에서 Apache2를 실행해야합니다. 그러나 tcpv4 포트가 아닌 tcpv6 포트에서만 실행됩니다. apt-get install로 설치했습니다. localhost 또는 127.0.0.1 또는 내 서버 IPv4 주소로 이동하면 웹 사이트가 표시되지 않습니다.
내 /etc/apache2/ports.conf
:
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
netstat -plntu
:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3558/sshd
tcp 0 0 0.0.0.0:3466 0.0.0.0:* LISTEN 2820/mysqld
tcp6 0 0 :::80 :::* LISTEN 2097/apache2
tcp6 0 0 :::22 :::* LISTEN 3558/sshd
답변
netstat가 여기에 tcp6 만 표시한다는 사실은 문제가 아닙니다. 수신 할 주소를 지정하지 않으면 apache는 단일 소켓을 사용하여 지원되는 모든 주소 계열을 청취합니다 (설계상의 이유로 sshd는 주소 및 주소 계열마다 고유 한 소켓을 사용하므로 netstat 출력에 두 번 표시됨).
내 시스템 중 하나는 아파치가 tcp6 소켓 만 가지고 있지만 여전히 IPv4와 IPv6을 통해 정상적으로 작동한다는 것을 보여줍니다.
woodpecker ~ # netstat -anp |grep apache
tcp6 0 0 :::80 :::* LISTEN 1637/apache2
tcp6 0 0 :::443 :::* LISTEN 1637/apache2
woodpecker ~ # wget http://127.0.0.1/ -O /dev/null
--2013-12-25 08:52:38-- http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45 [text/html]
...
# wget http://[::1]/ -O /dev/null
--2013-12-25 08:53:00-- http://[::1]/
Connecting to [::1]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45 [text/html]
...
wget http://127.0.0.1/ -O -
서버에서 실행 하면 어떻게됩니까? 성공적으로 연결 되었습니까? 예상대로 웹 사이트의 원시 HTML을 반환합니까?
답변
IPV4 연결 만 처리합니다.
Listen 0.0.0.0:80
Listen 192.0.2.1:80
답변
-
127.0.0.1은 머신에만 로컬이므로 로컬 루프백 ip / address를 사용하려면 브라우저 자체에서 서버 자체에 있어야합니다.
-
방화벽 차단 포트가있을 수 있습니다.
-
아파치가 실행 중이고 제대로 작동하는지 확인하고 오류 로그를 확인하십시오.
-
모든 아파치 설정을 다시 확인하십시오.
-
루트 www 또는 사용자 public_html 디렉토리에서 호스팅하고 있습니까?
-
소유자 및 권한을 다시 확인하십시오.
거의 2019 년 (미래에 오신 것을 환영합니다) :
-
기본적으로 대부분의 세계는 ipv6을 사용하고 실패하면 ipv4로 대체됩니다.
-
이제 ipv6을 통한 ipv4 터널이 있으며 그 반대도 마찬가지입니다.
-
대부분의 OS, 프로그램, 클라이언트 및 서버는 대부분 현재이 작업을 수행합니다.
-
더 이상 NAT가없는 세상에 오신 것을 환영합니다. 이제 장치에 방화벽 / 필터를 사용해야합니다.
-
ipv4와 ipv6을 동시에 지원하여 시스템을 모두 이중 스택으로 유지하는 것이 좋습니다. 따라서 매직 스위치가 발생할 때 여전히 작동합니다. 내 OS, 네트워크, 심지어 ISP도 듀얼 스택 엔드 투 엔드입니다. 원하는 경우 ipv4를 완전히 끌 수 있지만 ipv4에서 ipv6으로 돌아가는 터널이 없으면 더 이상 작동하지 않을 수 있습니다.
답변
*
wget http://127.0.0.1/ -O / dev / null
*는 IPv4 또는 IPv6을 처리하지 않고 로컬 서버에 대한 연결을 나타냅니다. localhost (또는 127.0.0.1)를이 서버의 실제 IPv4 IP 주소로 변경하면 연결이 거부되어 아무 것도 얻을 수 없습니다.
구성 파일에서 IP를 설명하십시오. NameVirtualHost : 80 Listen : 80