文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
ssh 代理
其实 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论