我正在try 用树莓Pi建立VPN,第一步是获得从本地网络外部进入设备的能力.不管出于什么原因,这被证明是不可能的,我一点也不知道为什么.当我try 用user@hostnamessh输入我的服务器时,我得到了一个错误:

ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known 

但是,我可以使用,

ssh user@[local IP]

服务器是Raspberry Pi Model B,运行Raspbian的最新发行版,我试图连接的机器是运行Mavericks的Macbook Pro.当我设置Raspbian时,Raspberry Pi上启用了ssh.

我已经阅读了几个小时的堆栈溢出,试图看看是否有其他人有这个问题,但我没有发现任何东西.我找到的每ssh个教程都说,我应该能够在远程机器上设置它,并使用主机名从任何地方登录,但我从来没有成功过.

推荐答案

最近我遇到了同样的问题.我可以在我的网络上用ssh连接到我的pi,但不能从我的家庭网络之外.

我已经:

  • 在我的家庭网络上安装并测试了ssh.
  • 为我的pi设置一个静态IP.
  • 设置动态DNS服务并在我的pi上安装软件.

此外,我在路由上设置了port forward,用于托管网站,甚至还将port forward 22端口转发到了我的pi的静态IP for ssh,但我将指定在路由上执行端口转发的应用程序的字段留空.总之,我在这个字段中添加了"ssh",瞧!从任何地方到我的pi的可用ssh连接.

我会写出路由的端口转发设置.

(ApplicationTextField)_ssh     (external port)_22     (Internal Port)_22     (Protocal)_Both     (To IP Address)_192.168.1.###     (Enabled)_checkBox

不过,不同路由的端口转发设置可能不同,所以请查看路由的方向.

现在,当我在家庭网络之外时,我通过键入以下内容连接到pi:

ssh pi@[hostname]

然后我可以输入密码并连接.

Linux相关问答推荐

通过shell 脚本基于AM/PM对日期时间字段进行排序

在树莓派内核中找不到arch/arm/kernel/calls.S

在正在运行的进程的输出周围添加自定义字符串

从 ALSA USB 硬件设备获取 USB 设备文件路径

为什么 `std::this_thread::yield()` 比 `std::this_thread::sleep_for(0s)` 慢 10 倍?

Linux PREEMPT_RT:SCHED_OTHER 的性能优于 SCHED_FIFO.为什么?

Powershell Core,MXLinuxv21,运行 linux /usr/bin/x 命令导致对象命令运行时找不到文件

如何在bash中用另一个整数变量增加一个整数变量?

从 curl 命令输出中获取值

使用 sed 从文本文件中删除特定字符串

如何使用 Bash 将随机数据块写入文件

如何使用 __attribute__((visibility("default")))?

如何在 Linux 中向应用程序发出信号而不杀死它?

使用 AWS cli 从 AWS 机密管理器解析机密

在 cron 作业(job)中执行 PHP 脚本

如何在不重新打印的情况下更新终端中的打印消息

根据文件名模式和文件内容列出文件名?

如何在我的终端中编辑文本文件

内联 if shell 脚本

如何在 docker 容器中运行 cron 作业(job)