Zainstalowałem serwer Apache na moim komputerze z systemem Windows 7. Byłem w stanie wyświetlić domyślny index.php, wpisując http: // localhost / w wierszu adresu mojej przeglądarki.
Jednak nadal nie widzę tej strony, wpisując adres IP mojego komputera (ani lokalnie (z tego samego komputera), nie globalnie (z innego komputera podłączonego do Internetu)).
Powiedziano mi, że muszę otworzyć port 80. Zrobiłem to (w sposób opisany tutaj ), ale to nie rozwiązało problemu.
Przede wszystkim chciałbym sprawdzić, które porty są otwarte, a które nie. Na przykład nie jestem pewien, że mój port 80 został zamknięty przed próbą otwarcia. Nie jestem również pewien, czy jest otwarty po próbie otwarcia.
Próbowałem uruchomić bardzo prosty serwer WWW napisany w języku Python. Do tego użyłem portu 81 i zadziałało! I nie próbowałem otwierać portu 81. Więc został on domyślnie otwarty. Więc jeśli 81 jest domyślnie otwarte, dlaczego 80 nie jest? Czy to jest?
INFORMACJE DODATKOWE:
1. W moim pliku httpd.conf mam „Listen 80”.
2. Ta strona mówi mi, że port 80 na moim komputerze jest otwarty.
3. Otrzymuję różne odpowiedzi, jeśli spróbuję http: // myip: 80 i http: // myip: 81 . W ostatnim przypadku przeglądarka (Chrome) pisze, że link jest uszkodzony. W pierwszym przypadku otrzymuję: Zabronione Nie masz uprawnień dostępu / na tym serwerze.
4. IE pisze, że „Witryna odmówiła wyświetlenia tej strony”.
źródło
Odpowiedzi:
Jeśli chcesz tylko sprawdzić swoje porty z zewnątrz. Użyj tego narzędzia:
http://www.yougetsignal.com/tools/open-ports/
Spróbuje połączyć się z twoim adresem IP na określonym porcie i poinformuje cię, czy jest otwarty, czy zamknięty dla świata zewnętrznego.
Problemy lokalne też? Wygląda na to, że zapora systemu Windows 7 Cię odcina. Dodaj wyjątek w tym samouczku ...
http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html
źródło
localhost
innych komputerów, a nie z niego.Uruchomienie
netstat -a -n
lubss -a -n
z wiersza polecenia pokaże wszystkie połączenia sieciowe otwarte i porty nasłuchujące na twoim komputerze.0.0.0.0:80
oznaczałoby, że nasłuchuje na porcie80
wszystkich adresów IP (localhost i twój publiczny / prywatny adres IP), co127.0.0.1:80
oznacza, że nasłuchuje tylko na localhost. Możesz dodać-b
do polecenia, aby pokazać, który plik wykonywalny używa tego portu. Te same informacje można uzyskać za pomocą Monitora zasobów w systemie Windows 7 w sekcji Porty nasłuchiwania na karcie Sieć.źródło
Jeśli chcesz sprawdzić, czy jest otwarty z innego serwera, możesz po prostu
telnet serverName 80
sprawdzić, czy sesja się otworzy. Jeśli nie, to albo serwer nie nasłuchuje, albo port jest blokowany przez zaporę ogniową.Jeśli otworzy się, a następnie natychmiast zamknie, przynajmniej Windows 2003, oprogramowanie (takie jak Exchange) może nie być skonfigurowane do nasłuchiwania na tym konkretnym interfejsie lub adresie IP, ale nasłuchuje na innych portach. Widziałem, jak IIS zachowują się w ten sposób, ponieważ jest głupi, Apache może nie.
źródło
Napisałeś:
Chociaż może to zabrzmieć dziwnie, tak naprawdę nie masz problemu z otwartymi portami (ale z konfiguracją Apache).
Ta wiadomość „Zakazana” pochodzi z twojego serwera Apache; oznacza to, że twój serwer jest dostępny z Internetu.
Musisz skonfigurować Apache, aby zezwalał na serwowanie wszystkim hostom - w przeciwnym razie otrzymają stronę „Zabronione”. IIRC, Apache jest początkowo skonfigurowany tak, aby zezwalał tylko na żądania z komputera lokalnego.
Gdzieś w konfiguracji Apache'a prawdopodobnie znajduje się taka sekcja (rzeczywisty katalog może być inny):
Jeśli chcesz, aby każdy komputer, aby zobaczyć swoje strony, trzeba zmienić
Deny from all
sięAllow from all
. Aby uzyskać więcej informacji, zobacz dokumentację modułu dostępu .źródło
Aby zobaczyć otwarte porty, prawdopodobnie powinieneś użyć nmap. Mają wersję Windows: http://nmap.org/dist/nmap-5.21-setup.exe
Nie wystarczy, jeśli widzisz swój port 80 otwarty z lokalnego hosta - być może coś stoi na przeszkodzie, jeśli spróbujesz go z innego miejsca, dlatego polecam nmap
Od klienta wpisz: nmap ip-of-your-server
źródło
Jeśli chcesz to sprawdzić w sieci lokalnej, pobierz nmap. Jeśli chcesz zobaczyć pogodę, port jest dostępny dla świata zewnętrznego, uruchom skan na https://www.grc.com/x/ne.dll?bh0bkyd2
źródło
Porty serwera mogą być powiązane z jednym adresem IP lub z każdym dostępnym adresem IP. Wygląda na to, że instalacja Apache jest skonfigurowana tak, aby wiązała się tylko z 127.0.0.1, i musisz ją skonfigurować, aby wiązała się z *. W httpd.conf (w katalogu conf Apache) poszukaj linii podobnej
Listen localhost:80
i zmień ją naListen 80
.źródło
telnet <host> <port>
jest twoim przyjacielem. Ma tę zaletę, że jest instalowana na prawie każdym komputerze na świecie.Edycje po ponownym przeczytaniu pytania:
Oto kilka przydatnych wskazówek diagnostycznych
jeśli możesz uzyskać dostęp do witryny za pośrednictwem localhost, ale nie przez lokalny adres IP witryny (192.168. *) z innych hostów w sieci, prawdopodobnie jest to problem z zaporą systemu Windows.
jeśli możesz uzyskać dostęp do witryny z innych komputerów lokalnych, ale nie z Internetu do publicznego adresu IP, jest to problem z konfiguracją routera / przekierowania portów.
źródło
W wierszu polecenia wpisz:
... lub twój adres IP: 80. Dzięki temu dowiesz się, czy port 80 jest otwarty na twoim komputerze. Teraz, jeśli chcesz sprawdzić i sprawdzić, czy możesz uzyskać do niego dostęp spoza sieci, określisz, czy masz rodzaj zapory ogniowej. Jeśli to zrobisz, musisz przekierować port 80 na swój serwer WWW.
źródło
Jeśli korzystasz z systemu Windows, użyj SysInternals TCPView . Może ci powiedzieć, który program używa jakiego portu.
źródło
W poleceniu DOS:
źródło