标签:OpenSSH 转发 端口 SSH 本地 主机 远程 20210129
问题描述
本地转发,将本地连接转发到远程服务器;远程转发,将本地服务映射到远程主机的端口上;动态转发,类似于 SOCKS 代理功能。
该笔记将记录:与 SSH 端口转发有关的内容。
动态转发(SSH -D)
功能介绍
该功能实际上使用SOCKS协议,因此经常被用来科学上网。使用动态转发,只要是远程主机可以访问的站点,客户端也可以访问(所以说是科学上网嘛)。
如何配置
执行如下命令即可,然后配置应用程序,使用SOCKS协议即可。
ssh -D 8888 user@remoteserver
使用场景
1)网络加速。当时由SSH提供的SOCKS协议具有某些特征,容易被长城牌子的防火墙识别,因此作用也不是很大。
本地转发(SSH -L)
功能介绍
该功能在本地监听一个端口,该端口的连接被转发到远程主机的特定端口。相当于把远程端口映射到本地,即“将远程端口放在本地”。
如何配置
如下命令,监听本地的 9999 端口,任何访问 9999 的客户端,都相当于访问远程主机 xample.com 的80端口,但是流量是通过 remoteserver 的,并且所有流量都被加密:
ssh -L 0.0.0.0:9999:example.com:80 user@remote.server # 上述命令涉及到三台主机: # 本地主机:0.0.0.0 # 目标主机:example.com,这是我们要访问的主机 # 代理主机:remote.server,也是我们的跳板机
还有一种变体:目标主机与代理主机可以是同一台主机,即将remote.server服务映射到本地:
ssh -L 0.0.0.0:9999:127.0.0.1:6379 user@remote.server
出于安全考虑,在远程主机中的某个服务只监听了6379端口,但是另一台主机想访问该服务。此时,我们便可以将服务通过SSH映射到该主机上。
使用场景
1)流量加密。比如,你在远程主机上搭建HTTP代理,但是,如果你直接使用它,容易被发现(比如被防火墙屏蔽),这时可以加一层SSH转发,将远程的HTTP端口映射到本地。现在(09/21/2019)SOCKS协议已经可以被检测到,所以不要直接访问SOCKS主机,可以将流量通过SSH进行代理。
2)服务安全。比如,上面的“变体”,明白人已经看出来6379是REDIS服务了,由于REDIS的安全性较弱,可以通过该方法提高安全性(这只是一个主意,还有很多细节需要测试,比如性能、可用性、稳定性等等)。
远程转发(SSH -R)
功能介绍
与“本地转发”正好相反,该功能在远程监听一个端口,该端口的连接被转发到本地主机的特定端口。相当于把本地端口映射到远程,即“将本地端口放在远程”。
如何配置
如下命令,在远程主机上监听 1999 端口,访问 1999 端口的连接等同于访问本地的 902 端口
ssh -v -R 0.0.0.0:1999:127.0.0.1:902 user@remote.server
使用场景
1)内网服务映射。将在内网中的服务,通过远程主机暴露出来,提供给他人访问。
补充说明
通过 -N 选项,可使不执行任何命令。
参考文献
WikiNotes/端口转发
SSH Examples, Tips & Tunnels
SSH 端口转发
SSH port forwarding without session - Super User
标签:OpenSSH,转发,端口,SSH,本地,主机,远程,20210129 来源: https://blog.csdn.net/u013670453/article/details/113381696
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。