Назад | Перейти на главную страницу

Используемые / заблокированные порты в 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 (это виртуальный сервер).

Не совсем уверен, как подойти к этой проблеме.

Отсутствует файл 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 (запрос - это не выражение, но суть вы поняли)

У меня была эта проблема, и виновник был в / etc / hosts, там было две записи, и команда «hostname» вернула ссылку на вторую запись. Когда была сделана вторая запись, первая запись, например 127.0.1.1 my.domainname.com (или localhost), что устраняет проблему.

Для меня проблема оказалась в «имени хоста» из-за нескольких интерфейсов.

Бегать 'hostname' а затем посмотрите, сможете ли вы проверить результаты

Бегать java -jar glassfish3/glassfish/modules/glassfish.jar и проверьте подробные журналы

Установите имя хоста на "localhost" hostname localhost

Суть в том, что у вашего сервера проблемы с привязкой к имени хоста (а не к порту, как указано в сообщении об ошибке)

Еще одна причина, с которой я только что столкнулся, заключалась в том, что имя хоста и IP-адрес просто не совпадали:

hostname
XXXXXX
hostname -i
XXX.XXX.XXX.42

Номер IP, возвращаемый hostname -i отличается от назначенного серверу. Я предполагаю, что это заставляет Glassfish попытаться привязать порт к старому IP-адресу, возвращенному hostname -i, который, очевидно, потерпит неудачу.

Проблема была вызвана перемещением машины в другой сегмент сети после установки.

Как предлагает Insyte, точная ошибка может помочь нам в устранении неполадок.

Но в случае, если от Glassfish ничего не помогает, вы можете рассмотреть strace (1), чтобы вы могли найти системный вызов, который не работает, и ошибку, которую он вызывает. Вам может понадобиться -f для отслеживания разветвленных дочерних процессов, в зависимости от того, как ведет себя Glassfish.

Возможно ли, что он сообщает вам, что порт заблокирован брандмауэром? В этом случае вам нужно будет настроить правило, разрешающее входящие соединения.