Доступ к сервису из удаленного и локального 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. До сих пор работает без проблем - что именно не работает в вашем случае?