【问题标题】:how to tunnel to another computer using a middle computer? SSH [closed]如何使用中间计算机隧道到另一台计算机? SSH [关闭]
【发布时间】:2016-01-28 00:50:13
【问题描述】:

我在我的本地计算机上,我只想测试反向 ssh,以便我访问计算机 2 并通过计算机 2 访问计算机 3,并使计算机 3 响应我,假设我想访问计算机 3 上的 postgresql。

如何使用 ssh 和使用端口来做到这一点? 5432是sql的端口

我的做法是这样的:

ssh -L 3000:localhost:5432 <ipaddressof the 2nd computer>

所以我现在在第二台电脑里。

在终端再次输入:

ssh -L 3000:localhost:5432 <ipaddress of the 3rd computer>

我现在在第三台电脑里。而且我不知道该怎么办了,如何访问它的sql?

我尝试了这个不起作用的代码:

psql -U myusername -p 3000

【问题讨论】:

  • 这是关于配置和使用现有软件的。 SO 真的是关于如何编写软件的问题。可能在超级用户或 ServerFault 上工作(但我没有使用足够的确定)。
  • 这只是在 linux 终端中包含 ssh。

标签: linux networking ssh port tunnel


【解决方案1】:

尝试以下方法:

ssh -L localhost:3000:<ip address 3rd computer>:5432 <ip address 2nd computer>

然后:

psql -U myusername -h localhost -p 3000

这在以下情况下有效:

  1. 第二台计算机可以访问第三台计算机
  2. 第二台计算机上的 sshd 配置允许 TCP 转发(默认为是)

【讨论】:

  • 您好先生,您能解释一下您上面的ssh代码吗?我很困惑。我试过它仍然给出错误,说psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.3000"?所以你能解释你的代码以便我可以修改它吗?谢谢
  • -L 选项表示“将对 localhost:3000 的本地连接转发到远程端的地址 :5432”。本地连接将被 ssh 进程接受,然后转发到第 2 台计算机上的 sshd,然后由 sshd 与第 3 台计算机建立传出连接。要调试它,首先进入第三台计算机,看看你是否可以在那里执行“psql -U myusername -p 5432”。确保 postgres 实例正在运行。然后进入第二台计算机并确保您可以执行“psql -U myusername -h -p 5432”。在这里报告。
  • 在您的代码中,第二台计算机如何将数据从第三台计算机重定向到我的?
  • 正如我所说的,本地连接将被 ssh 进程接受,然后转发到第二台计算机上的 sshd,然后将向外连接到第三台计算机。不确定是什么混乱。一旦建立连接,ssh/sshd 就会来回处理转发数据。
  • 我的理解是基于您的代码:当我使用 localhost:3000 发送命令时,它会将其发送到端口 5432 上的第三台计算机,这就是它的结尾,我不明白有什么用最后一部分的第二台计算机地址。请容忍我在这里。谢谢先生
猜你喜欢
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多