Прокси удаленного сервера как localhost

Существует сервер, работающий в "remotehost:some_port". Я могу подключиться к нему с моей машины Linux, как telnet remotehost remoteport, У меня есть приложение на машине Linux, которое настроено для подключения к 127.0.0.1:7576 где он ожидает запуска сервера. Вместо этого я могу изменить конфигурацию для подключения к удаленному серверу, но есть ли способ прокси удаленного сервера, чтобы мне не пришлось изменять конфигурацию? Я могу сделать привязку порта SSH (как ssh -L...) но удаленный сервер не ssh. Есть ли простой способ, кроме создания процесса, который прослушивает localhost и пересылает пакеты на удаленный сервер?

1 ответ

Один из способов сделать это - запустить прокси локально, например, nginx. Документация довольно хорошая с соответствующими примерами.

Вот минимальный, но более полный пример:

worker_processes auto;
error_log error.log;
events { }
stream {
  server {
    listen 127.0.0.1:7576;
    proxy_pass REMOTE_HOST:7576;
  }
}

Ниже приведен пример запуска nginx на переднем плане с указанной конфигурацией в файле с именем: nginx.conf,

nginx -p $PWD -c nginx.conf -g "daemon off; pid nginx.pid; error_log /dev/stderr;"

Опция -g предоставляет глобальные конфигурации. daemon off это тот, который заставляет его работать на переднем плане. pid nginx.pid помещает файл pid в рабочий каталог, поскольку по умолчанию он помещается в каталог журналов, которого, вероятно, там нет. error_log /dev/stderr отправить журналы ошибок на консоль, я обнаружил, что это необходимо, чтобы быть в -g опция при работе с daemon offв противном случае он может попытаться войти в каталог по умолчанию перед чтением конфигурации error_log из файла.

Другие вопросы по тегам