2

Проблема: на сервере есть служба с изменяющимся IP-адресом, но с постоянным именем хоста (Dyndns или аналогичным). Но клиентское устройство, которое хочет использовать сервис, может получить к нему доступ только по IP, а не по имени хоста. Как решить проблему?

Самым простым является то, что устройство находится в локальной сети с сервером Windows (постоянный IP) и маршрутизатором Mikrotik (также постоянный IP). Поэтому я думаю о двух возможных решениях: перенаправление волшебного порта Mikrotik на внешний хост (есть что-нибудь подобное?) или небольшое приложение на компьютере с Windows, которое перенаправляет порт на известный хост (существует ли он?). Пожалуйста, порекомендуйте.

1 ответ1

0

После нескольких вечеров копания это кажется легче, чем я думал: good'ol socat на машине windows - это ответ. Таким образом, Windows-машина становится перенаправителем портов (и его IP-адрес может использоваться в устройстве):

socat tcp-l:local-port,fork,reuseaddr tcp:remote-host:remote-port

например:

socat tcp-l:80,fork,reuseaddr tcp:google.com:80

Socat в режиме tcp-listen устанавливает соединение по требованию, по-видимому, каждый раз, преобразовывая имя хоста в адрес (проверено изменение файла hosts). Опции fork и reuseaddr для tcp-listen не требуются в хардкоре, что делает команду более слаженной в случае проблем.

Сокат для окон здесь

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .