我的物业管理公司提供免费互联网接入。许多大楼的所有公寓都位于一些常见的 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 机器可远程控制的步骤:
打开 Shell 命令或者您可以称之为终端,转到您的主文件夹,通过命令下载安装程序脚本:
$wget https://opengateway.googlecode.com/files/robotito
然后通过输入命令运行脚本:
$sudo ./robotito
然后,如果 robotito 使用 gtalk 帐户,则可以从 config 文件夹中编辑文件 credentials.rb ,然后按 ctrl+x 和 y 保存。默认使用 nano 编辑器。
通过命令从 robotito 文件夹运行 robotito
$cd robotito
$./jabbershd start
现在已完成,您可以从任何 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 帐户以接受安全性较低的应用程序。