Доступ к сервису из удаленного и локального JBoss 7

У меня есть два разных сервера (то есть tomcat на порту 8082 и jboss на порту 9080) на машине Suse Linux. Первый был установлен некоторое время назад, а второй я недавно установил. Теперь у меня проблема с доступом ко второму с другой машины.

Если я смотрю на вывод netstat, есть разница:

user@server:/etc> netstat -l -n|grep 8082
tcp 0 0 :::8082 :::* LISTEN
ser@server:/etc> netstat -l -n|grep 9080
tcp 0 0 127.0.0.1:9080 0.0.0.0:* LISTEN

кажется, что сервер 9080 ограничен 127.0.0.1, тогда как первый имеет:::.

ОБНОВИТЬ:

Я изменил файл конфигурации standalone.xml с

<interface name="public">
    <inet-address value="127.0.0.1"/>
</interface>

в

<interface name="public">
    <any-address />
</interface>

но есть разница, когда я вызываю netstat, и я все еще не могу подключиться к серверу удаленно:

netstat -l -n |grep 9080
tcp        0      0 0.0.0.0:9080            0.0.0.0:*               LISTEN

Откуда происходит это различие и какова его смысл?

4 ответа

JBoss 4.2 и более поздние версии по умолчанию слушают только локальный хост, вам нужно добавить -b 0.0.0.0 к вашему запуску run.sh (скрипты инициализации и т. Д.), Чтобы он прослушивал все доступные интерфейсы.

Возможно, ваш сокет связан с IPv6, попробуйте вместо этого использовать элемент any-ipv4-address

<interfaces>
        <interface name="management">
            <inet-address value="127.0.0.1"/>
        </interface>
        <interface name="public">
            <inet-address value="127.0.0.1"/>
        </interface>

        <!-- IPv4 -->
        <interface name="any">
            <any-ipv4-address/>
        </interface>
</interfaces>

Вы также можете попробовать использовать any интерфейс в группе связывания сокетов

<socket-binding-group name="standard-sockets" default-interface="any">

Если это не работает, попробуйте проверить iptables. (sudo iptables -F временно удалите все правила, чтобы вы могли проверить, блокирует ли iptables ваше общение).

Чтобы проверить, слушает ли JBoss: sudo netstat -tlnp
Чтобы перечислить правила iptables: sudo iptables -L -n

Там, где я работаю, мы настраиваем нашу JBoss AS 7 следующим образом:

<interface name="management">
    <inet-address value="..."/>
</interface>
<interface name="public">
   <inet-address value="..."/>
</interface>

Где "..." - это фактический IP-адрес или имя хоста компьютера, на котором установлена ​​JBoss AS 7. До сих пор работает без проблем - что именно не работает в вашем случае?

Другие вопросы по тегам