Как назначить необходимый интерфейс и протокол для работы сервиса Xinetd?

Как назначить необходимый интерфейс и протокол для работы сервиса Xinetd?

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Определяем интерфейс и протокол на которых будет работать сервис.

При использовании в системе IPv4 и IPv6 одновременно, могут возникнуть некоторые трудности в работе сервисов.

В моем случае используется публичные IPv4 и IPv6 адреса, а также приватная IPv4 сеть.

В следствии чего не могу подключиться к сервису и получить данные:

1
2
3
4
5
6
7
telnet localhost 36602
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

Смотрим чем слушается порт и наблюдаем, что xinetd по умолчанию работает на IPv6 протоколе:

1
2
[root@myserver local]# netstat -tnlp | grep :36602
tcp6 0 0 :::36602 :::* LISTEN 12533/xinetd

Поскольку обработку данных я выполняю на уровне приватной сети, то в конфигурационном файле необходимо задать используемый протокол и интерфейс:

1
2
3
4
...
interface = 10.0.0.20
...
flags = IPv4

Перезагружаем сервис xinetd и проверяем.

1
2
[root@myserver local]# netstat -tnlp | grep :36602
tcp 0 0 10.0.0.20:36602 0.0.0.0:* LISTEN 12729/xinetd
1
2
3
4
5
6
7
[root@myserver local]# telnet 10.0.0.20 36602
Trying 10.0.0.20...
Connected to 10.0.0.20.
Escape character is '^]'.
<<<Mytestserver>>>
Version: 1.0.1
AgentOS: linux
On this page