开发一个网站的步骤流程,南昌建站模板,wordpress 空格,商务网站建设SSH隧道简介
SSH 隧道#xff08;SSH Tunneling#xff09;是通过 SSH#xff08;Secure Shell#xff09;协议创建的安全通道#xff0c;用于将流量从一个网络传输到另一个网络。
SSH 隧道可以用来保护网络数据的传输#xff0c;通常用于穿越防火墙、隐藏流量、访问受…SSH隧道简介
SSH 隧道SSH Tunneling是通过 SSHSecure Shell协议创建的安全通道用于将流量从一个网络传输到另一个网络。
SSH 隧道可以用来保护网络数据的传输通常用于穿越防火墙、隐藏流量、访问受限的网络资源等。
工作原理
SSH 隧道通过 SSH 连接将客户端的数据加密并通过 SSH 服务器转发到目标服务器或者将目标服务器的数据通过 SSH 服务器加密传输到客户端。
三种类型
本地端口转发Local Port Forwarding 客户端将本地端口上的流量转发到远程服务器上的指定端口。
远程端口转发Remote Port Forwarding 客户端请求 SSH 服务器将某个远程端口上的流量转发到本地计算机上的指定端口。
动态端口转发Dynamic Port Forwarding 使用 SOCKS 代理客户端可以动态地将任意目的地的流量转发到远程服务器
SOCKS代理SOCKS 代理充当客户端与目标服务器之间的中介。客户端将请求发送到 SOCKS 代理服务器代理服务器再将请求转发给目标服务器并将目标服务器的响应返回给客户端。这样目标服务器只会看到来自 SOCKS 代理的请求而看不到原始客户端的请求
示例
注意如果仅进行端口转发想通过 SSH 隧道访问公司内部的 HTTP 服务只需要端口转发不需要在服务器上执行任何命令三种转发需要在末尾添加-N。
ssh -L 4000:192.168.1.10:80 userexample.com -N1. 本地端口转发
场景通过本地端口 8080 访问远程数据库服务器假设远程数据库服务器只能通过 db.example.com 上的端口 3306 访问。
ssh -L 8080:db.example.com:3306 userssh-server.com解释
-L 表示本地端口转发。8080 是本地计算机上的端口。db.example.com:3306 是远程数据库服务器及其端口。userssh-server.com 是 SSH 服务器及其用户名。
2. 远程端口转发
场景让远程 SSH 服务器上的端口 9090 访问本地开发服务器假设本地服务器运行在端口 3000 上。
ssh -R 9090:localhost:3000 userssh-server.com3. 动态端口转发
场景使用 SOCKS 代理通过 SSH 隧道进行安全浏览。
ssh -D 8080 userssh-server.com实例图
本地端口转发示意图
--------------------- ------------------ ---------------------
| Local Client | | SSH Server | | Remote Server |
|---------------------| |------------------| |---------------------|
| localhost:8080 |--SSH-----| |--------| db.example.com:3306 |
--------------------- ------------------ ---------------------远程端口转发示意图
--------------------- ------------------ ---------------------
| Local Server | | SSH Server | | Remote Client |
|---------------------| |------------------| |---------------------|
| localhost:3000 |--SSH-----| |--------| ssh-server.com:9090|
--------------------- ------------------ ---------------------动态端口转发示意图
Client (localhost:8080) --[SOCKS Proxy]-- SSH Server -- Internet--------------------- ------------------ ---------------------
| Local Client | | SSH Server | | Internet |
|---------------------| |------------------| |---------------------|
| SOCKS Proxy :8080 |--SSH-----| |--------| Various Sites |
--------------------- ------------------ ---------------------finalshell添加隧道 添加隧道 在连接成功后右键点击左侧连接列表中的目标服务器选择 隧道管理 或 Tunnels。在弹出的隧道管理界面中可以看到三个选项卡“本地端口转发”“远程端口转发”和“动态端口转发”。 配置本地端口转发 选择 “本地端口转发” 选项卡。点击 “添加” 按钮。填写本地端口、目标地址和目标端口。例如要将本地端口 8080 转发到远程数据库服务器db.example.com:3306可以填写如下 本地端口8080目标地址db.example.com目标端口3306点击 “确定” 或 “保存”。
总结
SSH 隧道是一个强大的工具可以确保数据传输的安全性提供对受限网络资源的访问并帮助用户规避网络限制。通过了解本地、远程和动态端口转发可以灵活地应用 SSH 隧道满足不同的需求。