Налаштуйте apache для прослуховування в портах, відмінних від 80


102

Я використовую сервер centOS. Я хочу налаштувати apache для прослуховування на порту 8079. Я додав директиву LISTEN 8079 в httpd.conf.
Я відкрив порт 8079 в iptables і перезапустив iptables. Я навіть зупинив службу iptables.

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

Якщо я спробую отримати доступ до цієї машини http://localhost:8079чи http://myserver.com:8079з неї, я можу отримати доступ до цієї сторінки. АЛЕ з будь-якої іншої машини я не в змозі отримати доступ до сайту на будь-якому порту, окрім 80. На порту 80 він працює. У порту 8079 цього немає.

Що ще потрібно налаштувати?

Відповіді:


138

У /etc/apache2/ports.conf, змініть порт як

Listen 8079

Потім перейдіть до /etc/apache2/sites-enabled/000-default.conf

І змінити перший рядок як

<VirtualHost *: 8079>

Тепер перезапустіть

sudo service apache2 restart

Тепер Apache прослухає порт 8079 і перенаправить на / var / www / html


1
Ні, просто набридливе повідомлення "Ця веб-сторінка недоступна" Просто для уточнення порт 80 працює ідеально. Зміна VirtualHost і Listen не вирішує для мене це рішення. (AWS ubuntu). До речі, мені потрібно, щоб слухати інший порт, це те, що я також налаштував nginx для прослуховування 80.
Томер,

1
швидке запитання: ви відкрили вхідний порт у групах безпеки, коли ви кажете, що перебуваєте на AWS ubuntu?
Shankar ARUL - jupyterdata.com

1
якщо є рядок NameVirtualHost *:80вище, Listen 80також змінити це ......
Хайдер Алі

75

Відкрийте файл httpd.conf у своєму текстовому редакторі. Знайдіть цей рядок:

Listen 80

і змінити його

Listen 8079

Після зміни збережіть її та перезапустіть apache.


3
так, але я згадав у першому рядку, що я вже спробував це "Я додав LISTEN 8079 директиву в httpd.conf": ((
vivek.m

О сорі. Я цього не бачив. Чи можете ви розмістити файл httpd.conf будь-де? А ви використовуєте стороннє програмне забезпечення Wamp, Xampp, Appserv?
ismailperim

Ви можете отримати httpd.conf тут fileuploading.net/860467 нічого подібного до WAMP, Xampp, Appserv. Все, що я зробив, - це компіляція роз'єму apache, tomcat та jk з джерела та намагаюся зробити все можливе, щоб вони працювали разом.
vivek.m

Я не знайшов проблему: (все здається нормально. Я спробував додати рядок Слухати 8076 на мій локальний сервер, але він працював нормально. Чи можете ви спробувати перевстановити apache, якщо можливо?
ismailperim

2
Одне, що, здається, всі забувають, відповідаючи на подібні запитання, - згадати місце розташування файлу. Файл знаходиться у /etc/apache2/ports.conf
Mateus Viccari

23

Це була проблема брандмауера. Існував апаратний брандмауер, який блокував доступ майже до всіх портів. (Відключення програмного брандмауера / SELinux bla bla не мало ефекту)

Потім я просканував відкриті порти і використав відкритий порт.

Якщо ви зіткнулися з тією ж проблемою, виконайте наступну команду

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

Він перевірить усі відкриті порти вашої системи. Будь-який відкритий порт можна отримати ззовні.

Посилання : http://www.go2linux.org/which_service_or_program_is_listening_on_port


netstat -anp | grep apache2 (Ви можете бачити порт прослуховування та PID з цього, якщо він працює. Ubuntu)
ImranNaqvi

У мого постачальника хмарних послуг зверху був брандмауер, який блокував порт. Перевірте брандмауери, розміщені не на цільовому сервері.
Ямада

16

Якщо вам потрібен порт apache Listen, крім 80, слід додати наступний файл під ubuntu

"/etc/apache2/ports.conf"

список портів Слухати

Listen 80
Listen 81
Listen 82

Після того, як вам доведеться перейти на свій віртуальний конфігураційний файл хостів і визначитись далі

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


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


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

7

Це працює для мене на Centos

По-перше: у файлі /etc/httpd/conf/httpd.conf

додати

Listen 8079 

після

Listen 80

Це до вашого сервера для прослуховування порту 8079

По-друге: перейдіть до свого віртуального хоста, наприклад. /etc/httpd/conf.d/vhost.conf

і додайте цей код нижче

<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>

Це означає, що ви переходите до свого www.example.com:8079переспрямування на

/ var / www / html / api_folder

Але спочатку потрібно перезапустити послугу

sudo service httpd restart


2

Якщо ви використовуєте Apache в Windows :

  1. Перевірте ім'я служби Apache за допомогою Win+ R+ services.msc+ Enter(якщо це не ApacheX.Y, воно повинно мати назву програмного забезпечення, яке ви використовуєте з apache, наприклад: "wampapache64");
  2. Запустіть командний рядок як адміністратор (використання Win+ R+ cmd+ Enterнедостатньо);
  3. Змінення в каталозі Apache, наприклад cd c:\wamp\bin\apache\apache2.4.9\bin:;
  4. Перевірте, чи налаштований файл конфігурації на: httpd.exe -n "YourServiceName" -t(замініть ім’я служби на те, яке ви знайшли на кроці 1);
  5. Переконайтеся, що послуга зупинена: httpd.exe -k stop -n "YourServiceName"
  6. Почніть з: httpd.exe -k start -n "YourServiceName"
  7. Якщо все почне добре, проблеми вже немає, але якщо ви отримаєте:

    AH00072: make_sock: не вдалося прив’язати до адреси IP: PORT_NUMBER

    AH00451: відсутні розетки для прослуховування, відключення

    Якщо номер порту не той, який ви хотіли використовувати, відкрийте конфігураційний файл Apache (наприклад, C:\wamp\bin\apache\apache2.4.9\conf\httpd.confвідкрийте за допомогою редактора коду або wordpad, але не блокнот - він не читає належним чином нові рядки) та замініть номер у рядку, що починається з Listenномером потрібного порту, збережіть його та повторіть крок 6. Якщо це той, який ви хотіли використати, продовжуйте:

  8. Перевірте PID процесу, який використовує цей порт, за допомогою Win+ R+ resmon+ Enter, натисніть на вкладку Мережа та потім на підвідкладку Порти ;
  9. Вбити його: taskkill /pid NUMBER /f( /fзмушує);
  10. Перевірте, resmonщоб підтвердити, що порт зараз вільний, і повторіть крок 6.

Це гарантує, що служба Apache запускалася належним чином, конфігурація у файлі конфігурації віртуальних хостів, як згадується sarul (наприклад :),C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf необхідна, якщо ви встановлюєте шлях до файлів туди і змінюєте також порт. Якщо ви зміните його знову, НЕ забудьте перезапустити службу: httpd.exe -k restart -n "YourServiceName".


1

Для сервера FC22

cd / etc / httpd / conf редагувати httpd.conf [enter]

Зміна: прослухайте 80: Слухайте номер

Збережіть файл

systemctl перезавантажте httpd.service [введіть], якщо потрібно, відкрийте whatevernumber у маршрутизаторі / брандмауері

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.