Вопрос или проблема
У меня есть машина без межсетевого экрана:
root@s0000:/etc/systemd/system# iptables -L
-bash: iptables: команда не найдена
На этой машине работают некоторые службы:
root@s0000:/etc/systemd/system# netstat -natp
Активные интернет-соединения (сервера и установленные)
Протокол Recv-Q Send-Q Локальный адрес Удаленный адрес Состояние PID/Имя программы
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 751/systemd-resolve
tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN 751/systemd-resolve
tcp 0 0 0.0.0.0:6666 0.0.0.0:* LISTEN 4731/server
tcp 0 0 0.0.0.0:4444 0.0.0.0:* LISTEN 5283/netcat
tcp 0 0 192.168.1.15:37976 185.125.190.81:80 TIME_WAIT -
tcp 0 0 192.168.1.15:40838 54.77.77.3:1194 ESTABLISHED 3550/openvpn
tcp6 0 0 :::22 :::* LISTEN 1/init
tcp6 0 0 :::6556 :::* LISTEN 4519/xinetd
tcp6 0 848 192.168.1.15:22 192.168.1.40:45636 ESTABLISHED 1029/sshd: ubuntu [
С внешней машины я могу получить доступ к службам, работающим на портах 22 и 6556, но не к службам, работающим на портах 6666 и 4444.
Разница, похоже, в том, что первые слушают на ::: (IPv6), а вторые слушают на 0.0.0.0 (IPv4).
Я протестировал с помощью telnet с linux-машины.
С машиной в одной локальной сети все работает нормально.
Но если машина находится на другой стороне VPN (созданной с помощью OpenVPN), я могу получить доступ только к первым портам.
Быстрое решение для меня – разрешить службам работать на ::: (IPv6).
Как я могу это сделать?
Есть ли другое решение?
Ответ или решение
Вам кажется, что у вас возникла проблема с доступом к некоторым портам ваших сервисов из внешней сети, особенно через VPN. Давайте рассмотрим вашу проблему более детально и предложим несколько возможных решений.
Обоснование проблемы
Судя по вашему описанию, сервисы, работающие на портах 6666 и 4444, слушают на интерфейсе IPv4 (0.0.0.0
), тогда как сервисы на порт 22 (SSH) и 6556 (xinetd) могут слушать как на IPv6 (:::
), так и на IPv4 (включая IPv4 через конфигурацию системы). Это может объяснять, почему вы имеете доступ только к некоторым из них, особенно если ваш VPN или маршрутизаторы между вами блокируют или некорректно перенаправляют IPv4-трафик.
Решения проблемы
-
Настройка сервисов для прослушивания на IPv6:
Если вы хотите, чтобы ваши сервисы слушали на IPv6 (что является быстрым решением), вам нужно изменить их конфигурацию. Вам потребуется:- Изменить конфигурацию приложения для прослушивания на
::
вместо0.0.0.0
или добавить новую конфигурацию, чтобы они слушали и на IPv6. - Если это сервера, будьте внимательны с конфигурациями, которые позволяют слушать одновременно на IPv4 и IPv6.
Например, если вы используете
netcat
, вы можете запустить его командой:nc -l -6 -p 6666 # Для IPv6
- Изменить конфигурацию приложения для прослушивания на
-
Проверка конфигурации OpenVPN:
Убедитесь, что ваш OpenVPN настроен на работу с обоими типами адресации (IPv4 и IPv6), если это требуется. В конфигурации OpenVPN может быть опция, чтобы разрешить проброс IPv6-трафика.Ниже приведен пример конфигурации OpenVPN с включением поддержки IPv6:
push "route-ipv6 ::/0"
-
Проверка сетевых маршрутизаторов и NAT:
Убедитесь, что маршрутизаторы между вашей локальной сетью и удаленной не блокируют порты 6666 и 4444. Возможно, вам потребуется настроить проброс портов (port forwarding) для этих портов на маршрутизаторе. -
Диагностика с помощью инструментов:
Используйте командыtelnet
,nc
, илиcurl
для проверки доступности сервисов на нужных портах. Например:telnet <IP-адрес> 6666
-
Тестирование без VPN:
Попробуйте подключиться к этой машине без VPN между вашей клиентской машиной и сервером для диагностики. Это поможет выяснить, связана ли проблема с VPN или с самой конфигурацией сервиса.
Заключение
Если у вас есть возможность изменить конфигурацию сервисов для поддержки IPv6, это может решить вашу проблему относительно доступа к нужным портам. Также обеспечьте, чтобы ваши виртуальные частные сети (VPN) и маршрутизаторы были корректно настроены для обработки обоих типов трафика. Если после всех проверок проблема сохраняется, возможно, стоит обратиться за поддержкой к администратору сети или к специалисту по сетевым вопросам.