Не удалось привязать сокет адрес и порт уже используются
У меня та же проблема, что и у вас. Я думаю, что это правда с 12.10, но эта тема была закрыта до выхода 12.10.
Занимаясь поиском (главным образом вдохновленный здесь ), я нашел это решение:
- редактировать /etc/NetworkManager/NetworkManager.conf файл с вашим любимым редактором
- прокомментировать строку dns=dnsmasq
- перезапустите сетевой менеджер: sudo service network-manager restart
Но в вашей конфигурации dnsmasq ( /etc/dnsmasq.conf ) вы должны быть уверены, что прослушивает локальные DNS-запросы со строкой listen-address=127.0.0.1 .
Если вы измените конфигурацию dnsmasq, не забудьте запустить sudo /etc/init.d/dnsmasq restart
Я надеюсь, это поможет.
Комментирование не dns=dnsmasq отменяет цель установки DNSmasq. Я внес listen-address=127.0.0.1 изменения, и теперь, похоже, они работают нормально. Нет. Вы удерживаете NetworkManager от запуска dnsmasq и запускаете его независимо.У меня такая же проблема.
dnsmasq-base был установлен и прослушан на порту 53, препятствующем dnsmasq запуску.
Для этой же цели можно использовать dnsmasq-base insead dnsmasq : просто используйте другой каталог конфигурации: тот, который находится в Network Manager папке:
Проверьте, что прослушивает порт 53 (домен) с помощью:
Отключите все службы, работающие на этом порту. Это обычно systemd-resolved .
Я собираюсь также, mask чтобы он не запускался автоматически при перезагрузке.
Чтобы отменить то, что вы сделали:
Также sudo update-rc.d systemd-resolved disable может остановить автоматический запуск при загрузке, но я не проверял. Используйте defaults вместо, disable чтобы отменить команду.
Или вы можете изменить порт, который прослушивает dnsmasq, отредактировав файл конфигурации:
Нажмите Ctrl + W и введите listen-address= и нажмите Enter.
Раскомментируйте строку и добавьте 127.0.0.1 с портом, отличным от 53, например:
РЕДАКТИРОВАТЬ: немного погуглил, и я нашел решение . Кажется, что сетевой менеджер зависит от пакета, называемого «dnsmasq-base», который предоставляет некоторые функции dnsmasq. Запись Dnsmasq в Ubuntu Wiki гласит, что
«Обратите внимание, что пакет« dnsmasq »мешает сетевому менеджеру, который может использовать« dnsmasq-base »для предоставления услуг DHCP при совместном использовании подключения к Интернету. Поэтому, если вы используете сетевой менеджер (хорошо только в простых установках), установите dnsmasq». -base, но не dnsmasq. Если у вас более сложная настройка, удалите сетевой менеджер, используйте dnsmasq или подобное программное обеспечение (bind9, dhcpd и т. д.) и настройте вещи вручную. "
Другими словами: вы хотите использовать dnsmasq? Тогда тебе лучше знать, что ты делаешь. Упомянутое ранее решение предлагает заменить dnsmasq-base на dnsmasq следующим образом (первая команда также удалит network-manager):
И вот некоторые общие комментарии по поиску того, что блокирует ваши порты: Вы можете найти то, что прослушивает какой порт, используя lsof :
перечислит порты IPv4 из-за -i4, в то время как
перечислит порты IPv6. Или просто введите
Это должно (надеюсь) рассказать вам, что использует порт 53. -Pn Коммутаторы командной строки предотвращают преобразование номера порта / IP-адреса хоста в имена.
Весь код максимально прост:
Я на 100% уверен, что мои порты перенаправлены, брандмауэр Windows выключен. Ничто не блокирует порт 9999. Что еще может пойти не так?
Как указывали другие люди, это, скорее всего, связано с другим процессом, использующим порт 9999 . В Windows выполните команду:
И он должен перечислить все, что забивает порт. Конечно, тогда вам придется вручную убить эти программы в диспетчере задач. Если это по-прежнему не работает, замените строку:
Конечно, замените 192.168.1.20 своим фактическим IP-адресом или используйте 127.0.0.1 .
Сигнализирует, что произошла ошибка при попытке привязать сокет к локальный адрес и порт. Обычно используется порт или запрошенный локальный адрес не может быть назначен .
Отредактируйте файл hosts и исправьте сопоставление имени хоста и IP-адреса с правами администратора.
Ошибка говорит Cannot assign requested address . Это означает, что вам нужно использовать правильный адрес для одного из ваших сетевых интерфейсов или 0.0.0.0 , чтобы принимать соединения со всех интерфейсов.
Другие решения, касающиеся портов, работают только после иногда неудачной черной магии (например, работают после перезагрузки некоторых компьютеров, но не после перезагрузки других), потому что порт совершенно не имеет значения.
Это может быть связано с неправильной конфигурацией в вашем /etc/hosts . В моем случае это было так: 192.168.1.11 localhost вместо 127.0.0.1 localhost
Согласно документации BindException , это в основном:
Сигнализирует об ошибке при попытке привязать сокет к локальному адресу и порту. Обычно порт используется или запрошенный локальный адрес не может быть назначен.
Итак, попробуйте следующую команду:
Чтобы дважды проверить, использует ли какое-либо приложение тот же порт, и убить его.
Если это не так, убедитесь, что ваш IP-адрес, к которому вы пытаетесь выполнить привязку, правильный (он правильно назначен вашему сетевому интерфейсу).
У моего ноутбука есть внутреннее DNS-имя в сети, все было нормально, пока что-то не сломалось.
Может быть актуален для кого-то.
Отладить легко, просто запустите класс, пока он не станет зеленым:
Если бы вы попали на CentOS?
Вы должны попробовать это.
$ service перезапуск сети
Перезагрузите ваш сервер.
Я столкнулся с этой ошибкой при копировании конфигураций с одного сервера на другой.
У меня было имя хоста старого хоста в моем свойстве $ /start.ini jetty.host . Установка правильного значения свойства jetty.host решила проблему для меня.
Надеюсь, это поможет кому-то в будущем, кому придется работать на нескольких серверах одновременно.
В моем случае удалить из / etc / hosts
- 127.0.0.1 локальный
- 192.168.100.20 localhost 0
Запросите выходные данные для используемого порта 9999 в левом столбце.
Порт занят другим процессом. Возможно, незавершенный старый запуск вашей программы. Убедитесь, что ваша программа завершилась без ошибок, или завершите ее работу.
Для меня это было потому, что предыдущее изменение jmeter.properties все еще действовало
Если вы используете сервер, есть «IP общедоступной сети» и «IP внутренней сети». Используйте «IP внутренней сети» в вашем файле / etc / hosts и «IP общедоступной сети» в вашем коде. если вы используете «IP общедоступной сети» в вашем файле / etc / hosts, вы получите эту ошибку.
Весь код максимально прост:
Я на 100% уверен, что мои порты перенаправлены, брандмауэр Windows выключен. Ничто не блокирует порт 9999. Что еще может пойти не так?
Как указывали другие люди, это, скорее всего, связано с другим процессом, использующим порт . В Windows выполните команду:
И в нем должно быть указано все, что забивает порт. Конечно, тогда вам придется вручную убить эти программы в диспетчере задач. Если это по-прежнему не работает, замените строку:
Конечно, замените своим фактическим IP-адресом или используйте .
Это может быть связано с неправильная конфигурация в вашем . В моем случае это было так: вместо
- то же самое было и со мной. ipadress был изменен.
- 2 спасибо, я бы годами пытался понять это, если бы не читал это.
- 1 для меня проблема заключалась в том, что предыдущий IP-адрес все еще находился в etc / hosts
Другие решения, касающиеся портов, работают только после иногда неудачной черной магии (например, работают после перезагрузки некоторых компьютеров, но не после перезагрузки других), потому что порт совершенно не имеет значения.
Документация Java для ,
Сигнализирует об ошибке при попытке привязать сокет к локальному адресу и порту. Обычно порт используется, или запрошенный локальный адрес не может быть назначен.
Отредактируйте файл hosts и исправьте сопоставление имени хоста и IP-адреса, используя права администратора.
Для меня это было потому, что предыдущее изменение jmeter.properties все еще действовало
Порт занят другим процессом. Возможно, это незавершенный старый запуск вашей программы. Убедитесь, что ваша программа завершилась без ошибок, или завершите ее работу.
Запросите выходные данные для используемого порта 9999 в левом столбце.
В моем случае удалить из / etc / hosts
- 127.0.0.1 локальный
- 192.168.100.20 localhost
TCP ZeroWindow - возникает, когда ресивер объявляет размер окна приема равным нулю. Это эффективно сообщает отправителю прекратить отправку, потому что буфер приемника заполнен. Указывает на проблему с ресурсами в приемнике, так как приложение не извлекает данные из буфера TCP своевременно.
Итак, я предполагаю, что все это ведение журнала - это просто «нормальный» сеанс (TCP) из повешенного приложения (флеш-плагин).
Как вы уже упоминали, журналы если они обнаружены после аварии, так что это не имеет большого значения.
Я предполагаю, что более важно найти некоторые журналы из вашего интернет-браузера в отношении сбоя флеш-плагина в первую очередь ..
4 ответа
У меня была такая же проблема.
dnsmasq-base был установлен и прослушивал порт 53, предотвращая запуск dnsmasq .
Можно использовать dnsmasq-base внутри dnsmasq для той же цели: просто используйте другой каталог конфигурации: тот, который находится в папке Network Manager :
У меня та же проблема, что и у вас. Я думаю, что это правда с 12.10, но этот поток был закрыт до выпуска 12.10.
Делая некоторые поиски (в основном вдохновленные здесь ), я нашел это решение:
- отредактируйте файл /etc/NetworkManager/NetworkManager.conf с вашим любимым редактором [ 119] прокомментируйте строку dns=dnsmasq
- перезапустите менеджер сети: sudo service network-manager restart
Но в вашей конфигурации dnsmasq ( /etc/dnsmasq.conf ) вы должны быть уверены, что прослушали DNS-запросы localhost со строкой listen-address=127.0.0.1 .
Если вы измените конфигурацию dnsmasq, не забудьте запустить sudo /etc/init.d/dnsmasq restart
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: немного погуглил, и я нашел решение . Кажется, что сетевой менеджер зависит от пакета, называемого «dnsmasq-base», который предоставляет некоторые функции dnsmasq. Запись Dnsmasq в Ubuntu Wiki гласит, что
«Обратите внимание, что пакет« dnsmasq »взаимодействует с Network Manager, который может использовать« dnsmasq-base »для предоставления служб DHCP при совместном использовании подключение к Интернету. Поэтому, если вы используете сетевой менеджер (хорошо только в простых установках), установите dnsmasq-base, но не dnsmasq. Если у вас более сложная настройка, удалите сетевой менеджер, используйте dnsmasq или подобное программное обеспечение (bind9, dhcpd и т. д.) и настройте их вручную. "
Другими словами: вы хотите использовать dnsmasq? Тогда тебе лучше знать, что ты делаешь. Решение , упомянутое ранее, предлагает заменить dnsmasq-base на dnsmasq следующим образом (первая команда также удалит network-manager):
А здесь некоторые общие замечания по поиску того, что блокирует ваши порты: вы можете найти то, что прослушивает, какой порт, используя lsof :
перечислит порты IPv4 из-за -i4, в то время как
список портов IPv6. Или введите просто
Это должно (надеюсь) рассказать вам, что использует порт 53. Переключатели командной строки -Pn предотвращают преобразование номера порта / IP-адреса хоста в имена.
В качестве альтернативы, запустите
Проверьте то, что слушает на порте 53 (домен) с:
Отключают любой сервис, который работает на этом порте. Это обычно systemd-resolved .
я иду в также mask это так, это не делает автоматического запуска на перезагрузке.
Для отмены то, что Вы сделали:
Также sudo update-rc.d systemd-resolved disable мог бы также остановить его от автоматического запуска на начальной загрузке, но я не протестировал его. Используйте defaults вместо disable для отмены команды.
Или можно изменить, какой порт dnsmasq слушает на путем редактирования файла конфигурации:
Читайте также: