有一个服务器运行在"remotehost:some_port“中。我可以像telnet remotehost remoteport一样从我的linux机器上连接到它。我在linux机器中有一个应用程序,它被配置成连接到127.0.0.1:7576,它希望服务器在那里运行。我可以更改配置以连接到远程服务器,但是是否有一种方法可以代理远程服务器,这样我就不必更改配置了?我可以进行ssh端口绑定(如ssh -L...),但远程服务器不执行ssh。除了创建在本地主机上侦听数据包并将数据包转发到远程服务器之外,还有其他简单的方法吗?
发布于 2018-09-28 18:30:13
其中一种方法是在本地运行代理,例如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将错误日志发送到控制台,我发现在使用daemon off运行时,需要将其放在-g选项中,否则,在从文件中读取error_log配置之前,它可能会尝试登录到默认位置。
https://serverfault.com/questions/933145
复制相似问题