Skonfiguruj Apache do nasłuchiwania na porcie innym niż 80


102

Używam serwera centOS. Chcę skonfigurować apache do nasłuchiwania na porcie 8079. Dodałem dyrektywę LISTEN 8079 w httpd.conf.
Otworzyłem port 8079 w iptables i zrestartowałem iptables. Zatrzymałem nawet usługę iptables.

"netstat -nal | grep 8079" shows "tcp  0 0 :::8079 :::* LISTEN"

Jeśli spróbuję uzyskać dostęp http://localhost:8079lub http://myserver.com:8079z tego komputera, mogę uzyskać dostęp do tej strony. ALE z żadnego innego komputera nie mogę uzyskać dostępu do witryny na żadnym innym porcie niż 80. Na porcie 80 to działa. Na porcie 8079 tak nie jest.

Co jeszcze muszę skonfigurować?

Odpowiedzi:


138

W programie /etc/apache2/ports.confzmień port na

Listen 8079

Następnie przejdź do /etc/apache2/sites-enabled/000-default.conf

I zmień pierwszą linię na

<VirtualHost *: 8079>

Teraz uruchom ponownie

sudo service apache2 restart

Apache będzie teraz nasłuchiwał na porcie 8079 i przekierowuje do / var / www / html


1
Nie, tylko denerwujący komunikat „Ta strona internetowa jest niedostępna”. Gwoli wyjaśnienia, port 80 działa idealnie. Zmiana zarówno VirtualHost, jak i Listen nie rozwiązuje tego za mnie. (AWS ubuntu). BTW, powodem, dla którego potrzebuję go do nasłuchiwania innego portu, jest to, że skonfigurowałem również nginx do słuchania 80.
Tomer

1
szybkie pytanie: czy otworzyłeś port wejściowy w grupach bezpieczeństwa, gdy mówisz, że jesteś na AWS ubuntu?
Shankar ARUL - jupyterdata.com

1
jeśli jest wiersz NameVirtualHost *:80powyżej Listen 80, zmień również to ......
Haider Ali

75

Otwórz plik httpd.conf w edytorze tekstu. Znajdź tę linię:

Listen 80

i zmień to

Listen 8079

Po zmianie zapisz go i zrestartuj apache.


3
tak, ale wspomniałem w pierwszej linijce, że próbowałem już tego "Dodałem dyrektywę LISTEN 8079 w httpd.conf": ((
vivek.m

Och, sory. Nie widziałem tego. Czy możesz wysłać plik httpd.conf gdziekolwiek? Czy używasz oprogramowania innej firmy Wamp, Xampp, Appserv?
ismailperim

możesz pobrać httpd.conf tutaj fileuploading.net/860467, nic takiego jak WAMP, Xampp, Appserv. Wszystko, co zrobiłem, to skompilowanie konektora apache, tomcat i jk ze źródeł i staram się, aby działały razem.
vivek.m

nie znalazłem problemu :( wszystko wydaje się normalne. Próbowałem dodać linię Listen 8076 na moim serwerze lokalnym, ale działa normalnie. Czy możesz spróbować ponownie skonfigurować apache, jeśli jest to możliwe?
ismailperim

2
Jedną rzeczą, o której wszyscy zdają się zapomnieć, odpowiadając na tego rodzaju pytania, jest wskazanie lokalizacji pliku. Plik znajduje się w
/etc/apache2/ports.conf

23

To był problem z firewallem. Istniała zapora sprzętowa, która blokowała dostęp do prawie wszystkich portów. (Wyłączenie zapory programowej / SELinux bla bla nie przyniosło żadnego efektu)

Następnie przeskanowałem otwarte porty i użyłem portu, który był otwarty.

Jeśli napotkasz ten sam problem, uruchom następujące polecenie

sudo nmap -T Aggressive -A -v 127.0.0.1 -p 1-65000

Skanuje w poszukiwaniu wszystkich otwartych portów w systemie. Do każdego otwartego portu można uzyskać dostęp z zewnątrz.

Ref .: Http://www.go2linux.org/which_service_or_program_is_listening_on_port


netstat -anp | grep apache2 (Możesz zobaczyć port nasłuchiwania i PID z tego, jeśli
działa.Ubuntu

Mój dostawca usług w chmurze miał na górze zaporę, która blokowała port. Sprawdź zapory ogniowe umieszczone poza serwerem docelowym.
Yamada,

16

Jeśli potrzebujesz portu Apache Listen innego niż 80, powinieneś dodać następny plik pod ubuntu

„/etc/apache2/ports.conf”

listę portów nasłuchu

Listen 80
Listen 81
Listen 82

Po tym, jak musisz przejść do pliku konfiguracyjnego Virtual hosts i zdefiniować następny

<VirtualHost *:80>
  #...v host 1
</VirtualHost>


<VirtualHost *:81>
  #...host 2
</VirtualHost>


<VirtualHost *:82>
  #...host 3
</VirtualHost>

7

To działa dla mnie na Centos

Po pierwsze: w pliku /etc/httpd/conf/httpd.conf

Dodaj

Listen 8079 

po

Listen 80

To do momentu, gdy serwer nasłuchuje na porcie 8079

Po drugie: przejdź do swojego wirtualnego hosta np. /etc/httpd/conf.d/vhost.conf

i dodaj ten kod poniżej

<VirtualHost *:8079>
   DocumentRoot /var/www/html/api_folder
   ServerName example.com
   ServerAlias www.example.com
   ServerAdmin root@example.com
   ErrorLog logs/www.example.com-error_log
   CustomLog logs/www.example.com-access_log common
</VirtualHost>

To znaczy, kiedy przechodzisz do www.example.com:8079przekierowania do

/ var / www / html / api_folder

Ale musisz najpierw ponownie uruchomić usługę

sudo service httpd restart


2

Jeśli używasz Apache w systemie Windows :

  1. Sprawdź nazwę usługi Apache za pomocą Win+ R+ services.msc+ Enter(jeśli nie jest to ApacheX.Y, powinna mieć nazwę oprogramowania, którego używasz z Apache, np .: "wampapache64");
  2. Uruchom wiersz poleceń jako Administrator (użycie Win+ R+ cmd+ Enternie wystarczy);
  3. Przejdź do katalogu Apache, np .: cd c:\wamp\bin\apache\apache2.4.9\bin;
  4. Sprawdź, czy plik konfiguracyjny jest w porządku, wpisując: httpd.exe -n "YourServiceName" -t(zastąp nazwę usługi tą, którą znalazłeś w kroku 1);
  5. Upewnij się, że usługa jest zatrzymana: httpd.exe -k stop -n "YourServiceName"
  6. Zacznij od: httpd.exe -k start -n "YourServiceName"
  7. Jeśli zacznie się dobrze, problemu już nie ma, ale jeśli otrzymasz:

    AH00072: make_sock: nie można powiązać z adresem IP: PORT_NUMBER

    AH00451: brak dostępnych gniazd odsłuchowych, wyłączanie

    Jeśli numer portu nie jest tym, którego chciałeś użyć, otwórz plik konfiguracyjny Apache (np. C:\wamp\bin\apache\apache2.4.9\conf\httpd.confOtwórz za pomocą edytora kodu lub wordpada, ale nie notatnika - nie czyta poprawnie nowych linii) i zamień numer w linii, która się zaczyna z Listennumerem portu, którego chcesz użyć, zapisz go i powtórz krok 6. Jeśli jest to ten, którego chciałeś użyć, kontynuuj:

  8. Sprawdź PID procesu, który używa tego portu za pomocą Win+ R+ resmon+ Enter, kliknij kartę Sieć , a następnie kartę podrzędną Porty ;
  9. Zabij to: taskkill /pid NUMBER /f( /fwymusza to);
  10. Ponownie resmonsprawdź, czy port jest teraz wolny i powtórz krok 6.

Gwarantuje to, że usługa Apache została poprawnie uruchomiona, konfiguracja na wirtualnych hostach plik konfiguracyjny, jak wspomniano sarul (np . :)C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf jest konieczna, jeśli ustawiasz tam ścieżkę do plików i zmieniasz również port. Jeśli go ponownie zmienić, należy pamiętać, aby ponownie uruchomić usługę: httpd.exe -k restart -n "YourServiceName".


1

Dla serwera FC22

cd / etc / httpd / conf edytuj httpd.conf [enter]

Zmień: Posłuchaj 80 do: Słuchaj dowolnego numeru

Zapisz plik

systemctl zrestartuj httpd.service [enter] w razie potrzeby otwórz dowolny numer w routerze / zaporze

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.