我想SSH到防火墙后面的一个计算机,阻止SSH连接(传入和传出)。 有趣的是,我仍然可以使用远程桌面软件TeamViewer访问计算机。 我认为TeamViewer是允许的,因为它使用的是不同于SSH的默认端口22的端口,所以我将以下端口添加到/ etc / ssh / sshd_config中:
Port 22 Port 443 Port 80 Port 5938 Port 10000
然后尝试依次使用(例如)
ssh [email protected] -p 5938
没有端口工作:我仍然得到一个Connection timed out错误。
为什么TeamViewer连接到远程计算机而SSH不能? 我怎样才能进入(或离开)远程计算机?
如果要通过SSH连接到防火墙后面的计算机,则需要向防火墙映射端口22(或您决定使用的任何端口)添加端口转发(DNAT)规则到内部服务器上的SSH端口。
TeamViewer能够通过使用诸如NAT Traversal和UDP打孔等技术来通过路由器build立到PC的连接。 尽pipeTeamViewer连接是点对点的(客户端直接连接到主机),但是在TeamViewer服务器的帮助下build立了初始连接,告诉主机客户端正在尝试连接,然后通过让服务器和客户端尝试打开连接,然后将防火墙置于允许TeamViewer连接传递到主机的状态。
TeamViewer连接到主机的stream量通过路由器,就像访问网页时的stream量一样,当PC上的浏览器通过防火墙请求一个网页,然后将响应传回给它。 主要区别在于“技巧”用于在客户端防火墙/路由器上打开适当的端口,并允许从远程TeamViewer客户端连接。
另一种方法是通过在ssh中使用反向端口转发:
在服务器上做:
ssh -R 2222:localhost:22 _internet_server_you_own
所以你将在internet_server的2222端口上以ssh结束你的机器。 我认为它覆盖在serverfault之前。