我遇到一种情况,我正在尝试访问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
可能会干扰,但由于环回接口上很少有防火墙,因此后一种方法可以绕过防火墙。