后阅读一篇文章关于 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