返回介绍

ssh 代理

发布于 2024-09-21 14:54:08 字数 997 浏览 0 评论 0 收藏 0

其实 ssh 不算是代理,只是一种能实现代理的工具,不过因为 ssh 功能强大,所以单独拿出来说一下。

0x01 本地端口转发

举个例子,远程有个 mongo 服务器需要连接,但是 mongo 不允许远程连接,只能通过和它同一个局域网的跳板机 A (x.x.x.x)连接。这个时候可以通过端口转发的方法直接连接。
命令格式是:

例如本地开启了 8000 端口监听, mongo 服务器地址为 192.168.0.2 端口  27017, 跳板机地址 192.168.0.1:
``` ssh -N -L 8000:192.168.0.2:27017 192.168.0.1

开启完端口转发后,连接 mongo 可以直接通过命令 mongo –host localhost –port 8000

0x02 远程端口转发

远程端口转发和本地端口转发功能一样,唯一的区别在于 ssh client 端和 server 端相反。举上面的例子,本地 client 无法通过 ssh 连接 A, 但是 A 能 ssh 连接本地。这种情况下可以通过远程端口转发
命令格式:

```
上例可以在本地运行
``` ssh -R 8000:192.168.0.2:27017 192.168.0.1

0x03 动态转发

动态端口允许通过配置一个本地端口,把通过隧道的数据转发到远端的所有地址。本地的应用程序需要使用 Socks 协议与本地端口通讯。此时 SSH 充当 Socks 代理服务器的角色。

简单的说就是和 ss 功能一样,只是中间的加密有 openssl 来做。

命令如下

上面的例子可以如下设置
``` ssh -f -N -D 10.1.1.1:8000 B@192.168.0.1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文