Используемые / заблокированные порты в Ubuntu
При запуске Glassfish AS сказал бы, что порт 4848 заблокирован (или любой порт, который я настраиваю). Но проверки портов не используются. Там нет брандмауэра.
root@ubuntu:~/glassfishv3/glassfish/bin# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2149/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2441/cupsd
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 2075/postgres
tcp6 0 0 :::22 :::* LISTEN 2149/sshd
tcp6 0 0 :::5432 :::* LISTEN 2075/postgres
udp 0 0 0.0.0.0:68 0.0.0.0:* 2082/dhclient3
udp 0 0 0.0.0.0:39256 0.0.0.0:* 2413/avahi-daemon:
udp 0 0 0.0.0.0:5353 0.0.0.0:* 2413/avahi-daemon:
Ubuntu 9.04 Linux ubuntu 2.6.28-11-generiC#42-Ubuntu SMP пт 17 апреля 01:58:03 UTC 2009 x86_64 GNU/Linux (виртуальный сервер).
Не совсем уверен, как подойти к этой проблеме.
8 ответов
Отсутствует файл etc/hosts!
java.net.UnknownHostException: ubuntu: ubuntu
at java.net.InetAddress.getLocalHost(InetAddress.java:1353)
at com.sun.enterprise.util.net.NetUtils.getCanonicalHostName
Простая причина, иногда не следует искать сложные проблемы!
Добавьте 127.0.1.1 your-computer-name в ваш /etc/hosts
и попробуй еще раз!
с уважением.
Как только я получил похожее исключение, и я публикую здесь решение на тот случай, если кому-то нужно копаться:процесс уже использует порт администратора 4848 - возможно, это еще один экземпляр сервера GlassFish.
java.net.BindException: неверные аргументы: bind: 7676=com.sun.enterprise.v3.services.impl.ServiceInitializerHandler
Вам необходимо изменить ключ "net.ipv6.bindv6only" с "1" на "0" в "/etc/sysctl.d/bindv6only.conf", который является параметром ядра, который позволяет приложениям IPV6 прослушивать только IPV6 "запрос" (запрос не является выражением, но вы получите точку)
Другая причина, с которой я только что столкнулся, заключалась в том, что имя хоста и IP-адрес просто не совпадали:
hostname
XXXXXX
hostname -i
XXX.XXX.XXX.42
Номер IP, возвращенный hostname -i
отличается от того, который назначен серверу. Я предполагаю, что это заставляет Glassfish пытаться связать порт со старым IP-адресом, возвращаемым hostname -i
, который, очевидно, потерпит неудачу.
Проблема была вызвана перемещением машины в другой сегмент сети после установки.
У меня была эта проблема, и виновник находился в / etc / hosts, там было две записи, а команда "hostname" вернула ссылку на вторую запись. Когда вторая запись была сделана первой, например, 127.0.1.1 my.domainname.com (или localhost), это решило проблему.
Для меня проблемой оказалось "имя хоста" из-за множественного интерфейса.
Бежать 'hostname'
а затем посмотреть, если вы можете пинговать результаты
Бежать java -jar glassfish3/glassfish/modules/glassfish.jar
и проверьте подробные журналы
Установите имя хоста в "localhost" hostname localhost
Суть в том, что ваш сервер имеет проблемы с привязкой к имени хоста (а не к порту, как указано в сообщении об ошибке)
Возможно ли, что он говорит вам, что порт заблокирован на брандмауэре? Если это так, вам нужно настроить правило, разрешающее входящие соединения.
Как предполагает Insyte, точная ошибка может помочь нам устранить неполадки.
Но в случае ничего не полезного из glassfish, вы можете рассмотреть strace(1), чтобы найти системный вызов, который дает сбой, и ошибку, которую он выдает. Вам может понадобиться -f, чтобы следить за разветвленными дочерними процессами, в зависимости от того, как ведет себя стеклянная рыба.