@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
  • Вопрос задан
  • 537 просмотров
Решения вопроса 1
pi314
@pi314
Президент Солнечной системы и окрестностей
Вместо:
InetAddress.getLocalHost()
использовать:
InetAddress.getByName("10.10.23.45")
Похоже, что getLocalHost() все еще неправильно разрешается (как уже обсуждалось в параллельном вопросе).
P.S. Вот еще полезная инфа на тему.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
21 мая 2024, в 22:05
90000 руб./за проект
21 мая 2024, в 21:56
10000 руб./за проект