将远程服务器代理为本地主机

将远程服务器代理为本地主机

有一个服务器在“remotehost:some_port”中运行。我可以从我的 Linux 机器连接到它,就像这样telnet remotehost remoteport。我在 Linux 机器上有一个应用程序,它配置为连接到127.0.0.1:7576它期望服务器运行的位置。我可以更改配置以连接到远程服务器,但是有没有办法代理远程服务器,这样我就不必更改配置了?我可以进行 ssh 端口绑定(就像这样ssh -L...),但远程服务器没有 ssh。除了创建一个侦听本地主机并将数据包转发到远程服务器的进程之外,还有其他简单的方法吗?

答案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需要在选项中包含此选项,否则它可能会尝试在从文件读取 error_log 配置之前记录到默认位置。-gdaemon off

相关内容