Как обратиться к удаленному сервису, который слушает только свою внутренюю сеть?

Я арендовал удаленный сервер с графическим ускорителем для экспериментов с LLM. К серверу имею доступ по ssh по некому адресу yyy.yyy.yyy.yyy. При получении сервера в аренду получаю инфу, что для изолированного доступа я могу обращаться к серверу еще по какому-то адресу yyy.yyy.yyy.zzz только с некоторого конкретного адреса zzz.zzz.zzz.zzz. Что такое изолированный доступ - не понятно. Документации ноль, техподдержка ничего внятно объяснить не может. Но цены на GPU очень хорошие, и по ssh из командной строки все работает. Внутри сервера ifconfig показывает свой адрес только во внутренней сети (192.168.xxx.xxx).

Хочу развернуть на сервере сервис ollama для работы с LLM извне внутренней сети арендованного сервера. Инструкция по api сервиса ollama говорит, что обращаться к нему нужно так:

curl http://localhost:11434/api/generate -d '{ "model": "llama3", "prompt": "Why is the sky blue?" }'

Хочу обращаться к сервису со своего рабочего места так: curl http://yyy.yyy.yyy.yyy:8181/api/generate -d '{ "model": "llama3", "prompt": "Why is the sky blue?" }' где yyy.yyy.yyy.yyy - адрес, по которому я могу обращаться к арендованному серверу по ssh

Насколько я понимаю, мне нужен ssh-туннель, но как его в моем случае сделать я, читая всякие статьи, так и не понял. На stackoverflow есть похожий вопрос, но, кажется, про другое.

Пробовал так:

  1. Поднял сервис ollama так, чтобы он слушал localhost:11434 Локально сервис работает.
  2. На арендованном сервере ввел команду

ssh -R 8181:localhost:11434 [email protected]

Выдает ошибку

ssh: Could not resolve hostname 8181:localhost:11434: Name or service not known

Как сделать правильно?


Ответы (1 шт):

Автор решения: aleksandr barakin

обращаться к нему нужно так:

curl http://localhost:11434/api/generate -d '{ "model": "llama3", "prompt": "Why is the sky blue?" }'

запустите socks5-прокси и обращайтесь ровно с теми же параметрами программы curl:

$ all_proxy=socks5://localhost:порт curl http://localhost:11434/api/generate ...

где порт - это тот самый порт, который вы указали опцией -D программы ssh:

$ ssh -D порт ...
→ Ссылка