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

Mat*_*t J 8 ssh port-forwarding nat tunnel dynamic-dns

我的物业管理公司提供免费上网服务。许多建筑物中的所有公寓都在一些常见的 NAT 之后,因此我们没有人拥有自己的公共 IP 地址。因此,像 dyndns.org 这样的服务不起作用,至少我无法弄清楚。我想要做的就是能够通过 ssh 连接到我家庭 LAN 上的一台机器(它位于 2 个级别的 NAT 之后,一个在我无法控制的 ISP 上,另一个在我控制的路由器上)。我可以在我的路由器上设置端口转发等,没问题。我怀疑 LAN 上的某些机器(机器 1)必须使用公共 IP 访问外部机器(机器 2)以建立 SSH 隧道,然后我可以从其他地方的机器(机器 3)通过机器 2建立隧道到机 1。

我的问题是:

  • 我的怀疑是真的,还是有其他方法?
  • 如果我必须通过隧道连接到其他一些盒子,是否有公共 ssh 代理或类似的可用,或者我是否需要使用公共 IP 来窃听某人让我通过他们的机器进行隧道传输?

Joh*_*han 7

我想澄清 Brian:s 对Hamachi的回答,重点是 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 
Run Code Online (Sandbox Code Playgroud)

然后转到hamachi页面并创建一个新的mash网络,记住“network-number”,因为do-login需要它。

回到命令行

sudo hamachi login
sudo hamachi set-nick $HOSTNAME
sudo hamachi do-join XXX-XXX-XXX
Run Code Online (Sandbox Code Playgroud)

然后再次返回网页并允许客户端在此网络上。(可能需要让客户端重新登录)

然后检查网络上的电脑:

sudo hamachi list
Run Code Online (Sandbox Code Playgroud)

现在,无论是否有 NAT,您都可以直接获取该 ip-number 和 ssh!

/玩得开心


Rol*_*gga 6

您可以通过在您想要远程访问 SSH 的计算机上安装 Robotito,使用台式机或仅使用智能手机(例如 Android)远程访问 SSH shell 到您的计算机,而无需使用IP Public

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

我制作了一个脚本(在我的 Raspberry Pi 中的 raspbian 操作系统上测试),所以你可以轻松地在 Raspberry Pi、Debian 或 Ubuntu Box(debian 包分发)上安装机器人。这是让你的 linux box 远程化的步骤:

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

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

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

    $sudo ./robotito

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

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

    $cd robotito

    $./jabbershd start

  5. 完成此操作后,您可以从任何 google talk 客户端使用 ssh,请不要忘记将机器人 gtalk 帐户添加到您的 google talk 帐户,并在使用该帐户之前通过相互聊天进行测试。