Налаштуйте 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.