所有。 我的大学networking以某种方式禁止传入的连接。 (我可以在networking外SSH,但不能进入。)
我试图build立从学校计算机(“学校”)到学校networking之外的VPS“计算机”(“外部”)的SSH隧道。
我希望能够达到我能做到的地步
ssh -p 3000 name@outside
并最终login到名字@学校。
以下是我如何设置远程端口转发:
[name@school]$ ssh -R *:3000:localhost:22 outside
这个命令似乎工作。 (用-v标志运行这个
debug1: Remote connections from *:3000 forwarded to local address localhost:22 debug1: remote forward success for: listen 3000, connect localhost:22 debug1: All remote forwarding requests processed
看起来很有希望。)
但是,当我跟进一个
ssh -p 3000 name@outside
它不工作:
ssh: connect to host outside port 3000: Connection refused
我可以在外部服务器上打开一个netcat,并在端口3000上监听,然后从我的学校计算机上用netcat连接到它 – 这样工作正常。 如果我试图build立一个SSH隧道,从外面:3000到学校:2000,然后尝试连接到外部的netcat:3000,我得到
nc: connect to outside port 3000 (tcp) failed: Connection refused
上面的程序也失败,如果我在学校networking上的两台计算机之间尝试它,所以我很确定问题是我而不是电脑/networking。
非常感谢您的帮助! (编辑:对不起,看起来这应该在serverfault?)
大学的防火墙正在阻止连接。 这是常见的,以防止误用,并通过BotNet方法阻止恶意软件传播服务器。 这也是大多数大学阻止IRC的原因,因为它通常用于将数据传回给主数据库。
从你自己的意见,你可以做ssh -p 3000 locahost ,它的工作原理,你的方法是有效的。 沿线的某处与外部主机的连接正在被阻止。 由于某种原因,学校有可能阻止端口3000上的任何传出stream量,或者在阻止连接的“外部”主机上存在防火墙/ ACL。 另一个遥远的可能性是外面的ISP阻止连接。
尝试从另一个外部主机连接到它,看看是否有效。 如果是这样,那么你的学校就是阻止它(这将是非常奇怪的,但学校networking通常是)。 否则,看看外部主机上的防火墙规则,看看它是否阻止它。 不幸的是,对于最后一个ISP封锁的情况,没有真正简单的方法来判断是ISP封锁还是机器本身。