JBoss WildFly: запускается, но не может подключиться?
Я только что настроил JBoss WildFly. Он работает, и он доступен с той же машины, все работает нормально...
моя проблема в том, что он недоступен из другой системы (я имею в виду, что в сети URL-адрес сервера (размещенной машины) не может получить доступ из другой системы).
Как я могу решить это?
5 ответов
по умолчанию привязка jboss/wildfly к localhost, если вы хотите изменить это, вы можете выполнить:
standalone.sh -b 0.0.0.0
слушать все IP-адреса машины (если подключена)
Другой альтернативой является настройка в standalone.xml
раздел интерфейсы.
изменения:
<interfaces>
<interface name="management">
<inet-address value="127.0.0.1"/>
</interface>
<interface name="public">
<inet-address value="127.0.0.1"/>
</interface>
</interfaces>
в:
<interfaces>
<interface name="management">
<!-- Use the IPv4 wildcard address -->
<any-ipv4-address/>
</interface>
<interface name="public">
<!-- Use the IPv4 wildcard address -->
<any-ipv4-address/>
</interface>
</interfaces>
Ref:
обновление
От Wildfly 8 <any-ipv4-address/>
был устаревший и удалить в Wildfly 9, то если вы не в 9.X или выше использовать <any-address/>
.
устаревшие. В отсутствие
-Djava.net.preferIPv4Stack=true
, в JVM нельзя поручить привязать сокет ко всем адресам IPv4, но только для IPv4-адресов, поэтому предполагаемая семантика не может быть полученный только через эту настройку. С помощьюany-addressType
и настройка-Djava.net.preferIPv4Stack=true
обеспечивает такой же эффект, этоany-ipv4-addressType
будет удален в будущем выпуске.
например:
<interface name="global">
<!-- Use the wildcard address -->
<any-address/>
</interface>
на <any-ipv4-address/>
устарел в WF 9, Используйте:
...
<interface name="management">
<any-address/>
</interface>
...
(I резюме 2 ответов для рабочего решения)
Я использую WildFly 10.0.0.Final-последняя версия на момент написания. Ищите файл standalone.xml
такой:
На Windows
C:\tools\wildfly-10.0.0.Final\standalone\configuration\standalone.xml
или Linux, например:
/home/vyhn.net/wildfly-servlet-10.0.0.Final/standalone/configuration/standalone.xml
правка стали:
<interfaces>
<interface name="management">
<!-- Allow all external IP -->
<any-address/>
</interface>
<interface name="public">
<!-- Allow all external IP -->
<any-address/>
</interface>
</interfaces>
на:
http://your_domain:9990/error/index.html
(порт 9990
порт HTTP по умолчанию, если вы используете брандмауэр или iptables, помните open port 9990
)
Например:
http://vyhn.net:9990/error/index.html
вы увидите он работает успешно.
Последняя ссылка (WildFly 10):https://docs.jboss.org/author/display/WFLY10/Interfaces + и + порты
не забудьте брандмауэр!
Если вы исправили адреса привязки и все еще не можете подключиться к JBoss, попробуйте обойти брандмауэр сервера.
чтобы остановить брандмауэр в Linux в RHEL используйте эту команду:
/etc/init.d/iptables stop
обновление (апрель 2018 года):
On RHEL7, где firewalld используется (а не iptables), вы можете использовать:
systemctl stop firewalld
или открыть конкретные порты Jboss/Wildfly (например, 8080/9990) с этими двумя командами:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
вы можете использовать -B 0.0.0.0, чтобы разрешить доступ независимо от назначенного общедоступного ip-адреса, например, для компьютеров, получающих динамический IP-адрес (используя DHCP), я нахожу это удобным способом.
пользователи Eclipse: остерегайтесь, что в конфигурации сервера вход "имя хоста:" используется для установки аргумента программы "-b", переопределяя ваши изменения!