SSH隧道

SSH隧道:详解与应用示例
这篇博客详细介绍了SSH隧道的使用,包括正向隧道、反向隧道、socks5代理及其组合应用。通过实例展示了如何利用SSH隧道在不同场景下实现安全的网络连接,如解决局域网限制、实现远程访问等。

分享一篇很棒的SSH手册中文翻译

https://www.cnblogs.com/f-ck-need-u/archive/2017/07/05/7120669.html

-N 选项表示登录到远程主机后不执行命令,只做流量转发。
我有两台Linux服务器,我会演示如何创建SSH隧道在不同的场景中解决问题。
第一台服务器 47.107.86.165我将它称为 A。另一台是 120.79.52.36 我叫它 B. 我在两台服务器的7000端口上均运行了一个简陋的web页面。

在这里插入图片描述
在这里插入图片描述


一、正向隧道 (参数 -L)

我想访问 B:7000, 但不希望直接访问,而是通过A来中转,我可以在 A 上执行这个命令:

ssh -N -L 0.0.0.0:7070:120.79.52.36:7000 gg@120.79.52.36

在这里插入图片描述
这意味着访问 A:7070 实际上是间接访问 B:7000
在这里插入图片描述

二、反向隧道 (参数 -R)

还是在A服务器上操作,我现在想让 B 监听一个端口,使得 B 访问该端口的时候跳转到另一个 [地址:端口],我可以在 A 上执行这个命令:

ssh -N -R 120.79.52.36:7800:0.0.0.0:7000 gg@120.79.52.36

在这里插入图片描述
上面这个命令的意思是在 120.79.52.36 上监听 7800,访问该端口会跳转到 A 的7000端口。
netstat 查看 B 是不是监听了 7800 端口
在这里插入图片描述
在 B 上访问本地 7800 端口,可以看到的确跳转到了 A 的 7000 端口。

在这里插入图片描述
这个功能有什么有趣的用途呢?我说一个我自己的例子。我所在的学校组了一个巨大的局域网,宿舍插上网线后获得了一个内网ip,不拨号是不能上网的。我发现实验楼的机器可以主动连接到我宿舍的ip,反过来我宿舍却不能连实验楼。那么我可以用ssh隧道+socks5来代理上网了。具体做法在第四个场景介绍,下面先介绍如何用SSH建立socks5代理。

三、socks5代理 (参数 -D)

我希望把 A 变成 socks5 服务器,通过 A 访问网站,可以在 A 上执行这个命令:

ssh -N -D 0.0.0.0:9000 root@0.0.0.0

在这里插入图片描述
这样 A 就监听了 9000 端口,A 成为了 socks5 服务器,在浏览器中设置代理后就通过 A 访问网页了。
在这里插入图片描述
在这里插入图片描述
这条命令还可以稍作修改,仍然用 A 作socks5 服务器,但是流量用另一台机器转发。

ssh -N -D 0.0.0.0:9000 gg@120.79.52.36

浏览器代理不用修改,仍然是 A:9000 ,打开 ip.cn 看看效果
在这里插入图片描述

四、反向隧道 + socks5 代理 (参数 -D -R)

最后一个场景,结合 -D-R 参数,让 A 成为 socks5 服务器,然后建立反向隧道到 B 使得 B 在本地监听端口, B 通过该端口提供的 socks5 服务联网。

在 A 上执行两条命令:

ssh -N -D 0.0.0.0:9000 root@0.0.0.0
ssh -N -R 120.79.52.36:9090:0.0.0.0:9000 gg@120.79.52.36

此时 B 的 9090 端口已经成为了一个 “socks5代理“。
在 B 上安装 proxychains,设置代理后访问 ifconfig.me
配置 proxychains(这一步也可以用之前在浏览器内设置代理的方式替换)
在这里插入图片描述
在这里插入图片描述
可以看到 B 通过 A 的代理访问了外部网站。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值