SSH端口转发
学习使用SSH进行端口转发
今天正好遇到了需要使用 SSH 端口转发的应用场景,在用端口转发解决问题后,又重新学习了一下 SSH 的端口转发,学到了新的使用方法,故作此记录
命令
SSH 端口转发有三种模式,分为本地端口转发
,远程端口转发
和动态端口转发
本地端口转发和远程端口转发
本地端口转发和远程端口转发使用如下命令
1 |
|
动态端口转发
动态端口转发使用如下命令
1 |
|
端口转发的使用场景
端口转发本质上是利用 SSH 建立的加密隧道实现的流量代理功能,有几个使用场景
本地端口转发
比如远端的主机在其本地环回地址 127.0.0.1:80
上搭建了一个服务,理论上本机是无法访问的,但是如果使用端口转发,将远端主机的 80
端口转发到的本地的某一个端口,如8080
端口,就可以实现访问本机的 127.0.0.1:8080
来访问这个服务了
这样的场景可以使用如下命令实现
1 |
|
又比如有一台主机A,它可以访问到内网中的某台主机B上的服务,例如b.b.b.b:bb
,这种情况可以使用主机A作为中转,转发到本地cc
端口,访问到主机B,使用如下命令
1 |
|
远程端口转发
假设有一台内网主机上面有一个服务,运行在其本地环回地址 127.0.0.1:80
上,又有一台公网主机,希望使用端口转发实现内网穿透,可以在内网主机上使用如下命令
1 |
|
这样就可通过 公网IP:公网端口
访问到内网主机上 80
端口的服务了
动态端口转发
动态端口转发就是不固定某一个端口,而是来者不拒,任何端口的流量都可以转发,例如使用如下命令开启一个到达一台外网主机的动态端口转发
1 |
|
然后在浏览器的代理中设置 SOCKS
代理,主机设置为 127.0.0.1
,端口设置为 10086
,这样就实现了一个通过 SSH 加密隧道的访问外网的行为
很早以前就学到过 SSH 端口转发的用法,但是一直没有实际使用的机会,导致没有实践的经历,对这一块的知识也就不是很熟,多亏了现在有使用的机会,也顺便重温了一下这块的知识,脑子里的知识一下子就串通起来了|ω・)