Настройте 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.