Задать вопрос
@IsaevDev

Как подключить java-сервер к внешнему сетевому интерфейсу в Linux?

Запускаю простой echo-сервер на linux centos:
ServerSocket server = new ServerSocket(portNumber);

или
ServerSocket server = new ServerSocket(portNumber, 10, InetAddress.getLocalHost());


В консоли получаю, например:
SERVER :: created Se>rverSocket[addr=vm531350/_serverip_,localport=8080]

При любых раскладах netstat -anp выдает:
tcp 0 0 :::8080 :::* LISTEN 27285/java
либо
tcp 0 0 ::ffff:_serverip_:8080 :::* LISTEN 27285/java

Сервер пингуется нормально, через telnet с другого компьютера все приходит, проверял через tcpdump. Но подключения, именно, к java программе не происходит.
То есть это сокет слушается локально, я правильно понимаю? Как переключится на внешний интерфейс?

Файл hosts:
_serverip_ vm531350 vm531350 localhost
::1 vm531350 vm531350 ip6-localhost
_serverip_ vm531350
_serverip6_ vm531350


Дебаты по поиску проблемы здесь: https://toster.ru/q/227455
  • Вопрос задан
  • 544 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
pi314
@pi314
Президент Солнечной системы и окрестностей
Вместо:
InetAddress.getLocalHost()
использовать:
InetAddress.getByName("10.10.23.45")
Похоже, что getLocalHost() все еще неправильно разрешается (как уже обсуждалось в параллельном вопросе).
P.S. Вот еще полезная инфа на тему.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы