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


103

Я использую сервер 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 убунту). Кстати, причина, по которой мне это нужно для прослушивания другого порта, заключается в том, что я также настроил nginx для прослушивания 80.
— Томер

1
Быстрый вопрос: открыли ли вы входящий порт в группах безопасности, когда говорите, что используете AWS ubuntu?
— Шанкар АРУЛ - 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

Я не нашел проблемы :( Кажется, все нормально. Я попытался добавить строку Listen 8076 на моем локальном сервере, но она работала нормально. Можете ли вы попробовать повторно настроить apache, если это возможно?
— ismailperim

2
Одна вещь, которую все, кажется, забывают, отвечая на такие вопросы, - это упоминать местоположение файла. Файл находится в /etc/apache2/ports.conf
— Mateus Viccari 01

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

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

16

Если вам нужен порт прослушивания apache, отличный от 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откройте в редакторе кода или в блокноте, но не в блокноте - он не читает новые строки должным образом) и замените номер в строке, которая начинается. с 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 [введите]

Изменение: Слушайте 80 на: Слушайте любой номер

Сохраните файл

systemctl перезапустите httpd.service [введите] при необходимости откройте любой номер в вашем маршрутизаторе / брандмауэре


0

Выполните эту команду, если ваш ufw (Uncomplicatd Firewall) включен. Добавьте для примера порт 8080

$ sudo ufw allow 8080/tcp

И вы можете проверить статус, запустив

$ sudo ufw status

Для получения дополнительной информации проверьте: https://linuxhint.com/ubuntu_allow_port_firewall

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.