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

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

1
задан 28 September 2018 в 21:10
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 при работе с отключенным демоном , в противном случае он может попытаться войти в расположение по умолчанию перед чтением конфигурации error_log из файла.

1
ответ дан 3 December 2019 в 23:12

Теги

Похожие вопросы