为什么一次端口转发会失败,但两步端口转发却可以成功?

为什么一次端口转发会失败,但两步端口转发却可以成功?

我遇到一种情况,我正在尝试访问beta:3000,但只能通过服务器访问alpha

如果我从本地计算机执行以下操作:

ssh -fNL 3000:beta:3000 alpha

我收到“连接被拒绝”错误。但是,如果我从本地计算机执行以下操作:

ssh -fNL 3000:localhost:3000 alpha

以及以下来自alpha

ssh -fNL 3000:localhost:3000 beta

然后连接就成功了。但我认为这两种方法应该有相同的效果?是什么原因导致前一种方法失败,而后一种方法成功?

答案1

前者到达非环回接口,beta后者到达环回接口。

  • 监听进程beta可能不会监听所alpha连接的接口,但会监听环回接口;
  • 或者防火墙beta可能会干扰,但由于环回接口上很少有防火墙,因此后一种方法可以绕过防火墙。

相关内容