如何在NAT和防火墙后面隐藏两台计算机,而没有第三台计算机


9

我试图在家中将其放入Linux机箱。我的家是宿舍式环境-NAT和带有运行Arch Linux的个人笔记本电脑的防火墙。我的工作是企业风格的Windows 7-NAT和代理防火墙,没有管理员权限。

我能够连接两个正在运行的Team Viewer便携式计算机。但是,这不适合我真正想要的东西。我希望仅通过SSH进入家中的Linux机器,而使我的Linux机器完全登出-当我不在时,基本上没有头。

我已经阅读了有关隧道的知识,但是如果我正确理解隧道技术,则需要两台计算机都可以连接的第三方服务器。我没有这样的服务器,也不希望为此买单。


什么是从工作场所SSH进入笔记本电脑的简单安全的解决方案?是否有免费且安全的“第三台服务器”?我在谷歌上走来走去,但似乎越来越困惑。


2
您可以访问路由器吗?通常,您需要调整NAT设置以将公共IP地址指向内部SSH服务器,以执行类似的操作。
2012年

不,我没有路由器访问权限,无法调整NAT设置。
user1026169

然后,在这种情况下,如果“团队查看器”选项不起作用,您可能必须通过第三台服务器进行代理连接。
jmreicha 2012年

谁提供的服务器只能用作ssh的代理?
user1026169

我敢打赌,基于云的VPS可以解决问题。
jmreicha 2012年

Answers:


16

pwnat是一个开源工具,据说可以解决此问题。它说 :

pwnat是一种工具,允许NAT之后的任何数量的客户端与后面与单独的NAT服务器通信没有端口转发和没有为了任何路由器上DMZ设置为彼此直接通信。服务器不需要了解有关尝试连接的客户端的任何信息。

没有中间人,没有代理,没有第三方,不需要UPnP / STUN / ICE,没有欺骗,也没有DNS技巧。

更重要的是,客户端随后可以连接到任何远程主机上的任何主机或端口,或者连接到服务器确定的固定主机和端口。

pwnat建立这种连接:

机器A(IP:192.168.1.3)-> NAT A(IP:122.xxx)-> Internet-> NAT B(IP:59.xxx)->机器B(192.168.2.10)

pwnat仅针对Linux发行,但是文章 PWNAT:Windows兼容版本包含Windows版本。另请参见同一作者的PWNAT:示例

pwnat使用的方法非常聪明,但是不能保证它可以在您的环境中使用。


1
注意:pwnat依赖于ICMP起作用。具体来说,icmp回声和超时消息。之所以可行,是因为ICMP是无状态的。
shadowbq 2012年

对我不起作用。NAT路由器不够聪明,无法实施标准,也不够聪明,无法理解作者pwnat。+1还是为了聪明。
量子

我也尝试过pwnat,但没有成功。但是可能我的配置有问题。有没有成功的人可以给予支持?
robguinness

5

我个人认为,即使您尚未拥有第三台服务器,隧道也是最佳选择。

Amazon EC2提供了免费套餐定价选项,允许新客户以每月最多750个小时/月的价格免费运行Linux / Windows的微型实例。我没有亲自使用该服务,但假设如果仅在需要时运行虚拟服务器,则可以建立SSH隧道并免费运行。您甚至可能会发现这项服务便宜到足以支付费用?

Hak5很好地介绍了隧道(具有持久性)。您还可以设置CRON触发脚本来尝试连接到虚拟服务器,以便在启动EC2实例后的几分钟内就可以访问笔记本电脑...


谢谢,我在一些论坛的帮助下找到了免费的VPS。
user1026169

1
另请注意,750小时为31.25天...因此,基本上,您t2.micro免费获得一个实例,期限为一年。
Attie

3

如果可以的话,最好的方法是设置端口转发,但是如果您的园区进行防火墙保护并且您自己不能进行任何端口转发,那么请使用此建议。

是的,有一个免费的第三台服务器,而您已经在使用它,TeamViewer。确保已将TeamViewer作为服务安装(或Linux等效,我仅使用Windows版本)。然后在办公室和家中安装VPN驱动程序。然后,您将可以在工作中使用VPN进行连接,并且您的家用计算机将具有7.xxx ip地址。然后,如果您想进入终端会话,请通过VPN链接运行SSH。

install VPN选项位于高级设置下。 在此处输入图片说明

这将为您可以执行的连接类型添加“ VPN”选项。 在此处输入图片说明


1
非常感谢您的详细帮助和屏幕截图。我使用的是TeamViewer可移植的,但是没有管理员权限。VPN选项为灰色,我无法使用。
user1026169

1

您应该只能够在家庭路由器/防火墙上设置端口转发(端口22)。然后在工作时连接到家庭公用IP地址。如果您在家中没有静态公共IP,则可以使用dyndns之类的东西。


由于为它们提供服务的网络,两台机器上都无法进行端口转发。我没有IP安装程序,但是没有可用于连接机器的端口。
user1026169

0

您可以将公共XMPP / Tox服务器用作“第三台服务器”。即,存在诸如TuntoxPPPoAT(任何传输上的PPP)之类的项目,它们使用这些即时消息传递协议作为传输层。

我尝试了PPPoAT,它支持XMPP,并且与PWNAT不同,该机制确实对我有用。

要使用它,您在任何公共服务器上都需要两个XMPP帐户-一个用于您要登录的服务器,另一个用于您的客户端。在pppoat服务器上启动之后,然后在客户端上(都带有适当的配置参数),您可以立即启动连接,例如

ssh username@10.0.0.2

当然,它比直接连接要慢,而且速度很可能取决于您选择的XMPP服务器,但是对于正常的控制台活动来说,它已经足够了。

至于安全性,SSH可以在完全不安全的网络中工作,因为它已经实现了自己的加密,因此,当您使用SSH时,基于XMPP的连接是否安全实际上并不重要。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.