摘要
ssh端口转发(或称ssh隧道)在本机和远程主机之间建立一个加密的通信隧道。这一隧道可以被其他非加密(例如IMAP,VNC,IRC等)或者加密传输的协议用来作为代理转播链接。
本文将探讨ssh端口转发的三种类型,分别说明每一种的配置及使用方法并给出相应的ssh命令。
背景知识需求
本文假设读者已经熟悉基本的ssh原理以及ssh操作,了解一定的网络基础知识例如网络协议、网络通信以及端口号等,并拥有一定的bash使用经验。
ssh端口转发的类型
ssh端口转发可以用来将互联网通信连入或传出一片原本对通信有所限制的网络,从而绕过网络限制或者无法正常工作的路由器,或者伪装连接的源/目的IP地址。ssh端口转发也可以配合一些简单的配置(如SOCKS Proxy)从而作为代理服务使用。
ssh端口转发可以被分为三种类型:
- 本地端口转发。本地端口转发指的是将从ssh客户发出的通信转发到ssh服务器,最终再访问某一目的地。本地端口转发可以用来绕过防火墙对某几个网站的访问限制。
- 远程端口转发。远程端口转发与本地端口转发的过程相反,指的是将从ssh服务器发出的通信经由ssh客户转发,最终再访问某一目的地。本地端口转发可以用来使我们从远程主机连接对访问有限制的公司内网(不推荐)。
- 动态端口转发。动态端口转发比较灵活,指的是从某几个服务或程序发出的通信将先由ssh客户转发至ssh服务器,再由ssh服务器转发至最终目的地。动态端口转发使得我们可以迅速地建立一个链接并结合SOCKS Proxy从而作为代理服务或者VPN服务。
如果想要使用端口转发,必须首先