如何通过 ssh 进入 ISP NAT 后面的家庭 LAN(没有公共 IP 地址)?

如何通过 ssh 进入 ISP NAT 后面的家庭 LAN(没有公共 IP 地址)?

我的物业管理公司提供免费互联网接入。许多大楼的所有公寓都位于一些常见的 NAT 后面,所以我们都没有自己的公共 IP 地址。因此,像 dyndns.org 这样的服务不起作用,至少我搞不清楚。我只想能够通过 ssh 进入我家局域网上的一台机器(它位于 2 层 NAT 后面,一层在 ISP 上,我无法控制,另一层在路由器上,我可以控制)。我可以毫无问题地在路由器上设置端口转发等。我怀疑我的局域网上的某台机器(机器 1)必须伸向外部机器(机器 2) 使用公共 IP 建立 SSH 隧道,然后我就可以从其他地方的机器进行隧道传输(机器 3)通过机器 2 到达机器 1。

我的问题是:

  • 我的怀疑是真的吗,或者还有其他方法吗?
  • 如果我必须通过隧道连接到其他机器,是否有公共 ssh 代理或类似代理可用,或者我是否需要打扰具有公共 IP 的人让我通过他们的机器建立隧道?

答案1

我想澄清一下 Brian 的回答鰤鱼,以 Linux 为重点。

首先安装它:

wget https://secure.logmein.com/labs/logmein-hamachi_2.0.1.13-1_i386.deb
sudo aptitude install lsb
sudo dpkg -i logmein-hamachi_2.0.1.13-1_i386.deb 

然后转到鰤魚頁面并创建一个新的 mash 网络,记住“网络号”,因为 do-login 需要它。

返回命令行

sudo hamachi login
sudo hamachi set-nick $HOSTNAME
sudo hamachi do-join XXX-XXX-XXX

然后再次返回网页并允许客户端加入该网络。(可能需要客户端再次登录)

然后检查网络上有哪台电脑:

sudo hamachi list

现在,无论是否存在 NAT,您都可以获取该 IP 号码并直接进行 ssh 操作!

/玩得开心

答案2

您可以远程无需 IP 公共即可访问你的计算机的 SSH shell通过在您想要远程访问 SSH 的计算机上安装 robotito,使用桌面或智能手机(例如 Android)。

  • 这将允许您在任何地方使用 Google Talk 客户端应用程序访问 SSH。
  • 无需公共 IP 地址或特殊设置。
  • 它是免费和开源的,不再支付任何应用服务。

我编写了一个脚本(在 Raspberry Pi 上的 raspbian 操作系统上进行了测试),以便您可以轻松地在 Raspberry Pi、Debian 或 Ubuntu Box(debian 软件包分发版)上安装 robotito。这是让您的 Linux 机器可远程控制的步骤:

  1. 打开 Shell 命令或者您可以称之为终端,转到您的主文件夹,通过命令下载安装程序脚本:

    $wget https://opengateway.googlecode.com/files/robotito

  2. 然后通过输入命令运行脚本:

    $sudo ./robotito

  3. 然后,如果 robotito 使用 gtalk 帐户,则可以从 config 文件夹中编辑文件 credentials.rb ,然后按 ctrl+x 和 y 保存。默认使用 nano 编辑器。

  4. 通过命令从 robotito 文件夹运行 robotito

    $cd robotito

    $./jabbershd start

  5. 现在已完成,您可以从任何 google talk 客户端使用 ssh,请不要忘记将 robotito gtalk 帐户添加到您的 google talk 帐户,并在使用该帐户之前通过聊天进行测试。

答案3

你看过像 Hamachi 这样的服务吗就像某种 VPN 一样?由于客户端会联系其服务器,所以这应该没关系,因为会有一个开放的连接返回到您的家用计算机。

答案4

对于 raspbmc:下载脚本并运行后

sudo apt-get install ruby1.8 rubygems bundler
cd robotito-master
bundle install
./jabbershd run (to see it connect)

注意事项:您必须设置 Google 帐户以接受安全性较低的应用程序。

相关内容