我如何建立 SSH 隧道?

我如何建立 SSH 隧道?

阅读一篇文章关于 SSH 有多酷,我尝试了那里给出的有关隧道连接的解决方案。

这是我第一次尝试这个。

我打开了终端并输入:

ssh -D 9999 -C myUsername@localhost

我收到了这条信息:

特权端口只能由 root 转发。

因此我再次开始,这次使用 sudo:

sudo ssh -D 9999 -C root@localhost

但我仍然无法访问。这是我这次收到的消息:

ssh:连接到主机 localhost 端口 22:连接被拒绝

我究竟做错了什么?

答案1

简单的隧道通常是这样建造的

ssh -L 8080:本地主机:80[电子邮件保护]

  • -L = 本地端口转发,即从我所在的地方到我要去的地方
  • 8080 = 端口开启转发的机器。我的浏览器将连接到的端口http://本地主机:8080
  • localhost = 目的地偏僻的服务器,在本例中是服务器本身。
  • 80 = 要连接的远程(目标)机器上的端口,即服务正在运行的端口。

当您具有 ssh 访问权限但没有 Web 访问权限时,这将允许您访问远程服务器上的 Web 服务器。

ssh 到你的本地主机通常是没有意义的。它只是为了检查你的 ssh 服务器是否运行正常或密钥是否正确。

您看到的连接被拒绝错误是因为 ssh 服务器未在您的本地计算机上运行。sudo apt-get install openssh-server 然后您可以从 localhost 或任何其他可以从端口 22 连接到此计算机的地方(通常在您的本地网络防火墙后面)通过​​ ssh 连接到本地计算机

-D(动态应用程序转发)是另一种情况,如果本地计算机上的某些棘手的胖客户端应用程序(例如 mysql)需要访问远程计算机上的服务器,则更适用。它不太常用。

当您尝试重定向小于 1024 的本地端口时,会出现有关特权端口的消息。因此,在上面的例子中使用了端口 8080,以避免使用特权端口 80。对于上面的例子,您的浏览器将使用 http://localhost:8080

相关内容