Я не могу заставить lighttpd прослушивать порт 80.
~# /etc/init.d/lighttpd start
Starting web server: lighttpd2013-03-16 23:15:02: (network.c.379) can't bind to port: 80 Address already in use
failed!
На самом деле у меня также установлен apache2 на моем сервере (прослушивает порт 80), но он не активен.
Я использовал netstat / netstat -npl, но это не помогло
Как я могу выяснить, что использует порт?
Несмотря на то, что люди привыкли netstat
для такого рода операций хорошо знать, что у Linux есть еще один отличный (и действительно превосходный) сетевой инструмент - ss
. Для е. грамм., чтобы узнать, какой процесс открыл порт 80 вы запускаете его так:
sudo ss -pt state listening 'sport = :80'
поэтому нет необходимости пропускать через внешние фильтры. Наверняка у него гораздо больше полезных ручек, так что познакомьтесь с ними.
Для полноты картины и с недавнего времени я наткнулся на man fuser
, Могу также упомянуть:
sudo fuser 80/tcp
- этот также избавляет вас от возни с cut
/grep
/awk
... имейте в виду, что эта нотация является сокращением, в случае двусмысленности вы должны использовать одно из пространств имен, разрешенных с -n …
, лайк sudo fuser -n tcp 80
sudo lsof -n -sTCP:LISTEN -i:80
- был указал по @Wallenborn. Между тем -n
строго не требуется, это настоятельно рекомендуется, поскольку в противном случае используется разрешение DNS, которое обычно ужасно замедляет вывод.
Address already in use
означает, что другой процесс уже прослушивает порт 80. Только один процесс может прослушивать данный порт одновременно.
Чтобы найти процесс, запустите как root:
netstat -tnlp | grep -w 80
Будет указан процесс нарушения.
Другой вариант с меньшим количеством нажатий клавиш - lsof:
lsof -i :80
Старая ветка, но кто знает, у кого-то такая же проблема, как и у меня. В Apache2 у меня было включено более одного сайта. В одной из конфигураций сайта (/ etc / apache2 / sites-available) первая строка была
listen 80
Это вызвало конфликт с самим Apache! Потому что он уже прослушивал порт 80 как глобальную конфигурацию. Просто удалите "listen 80" из yoursite.conf, если Apache имеет порт 80 в качестве порта по умолчанию.