北京网站seo招聘,如何查看自己制作的网站,企业网站建设分工,海口建设网站的公司哪家好文章目录 前言一、解锁内部服务#xff1a;SSH 本地转发1.1 什么是 SSH 本地转发1.2 本地转发应用场景 二、打开外部访问大门#xff1a;SSH 远程转发2.1 什么是 SSH 远程转发2.2 远程转发应用场景 三、动态转发#xff1a;SSH 让你拥有自己的 VPN3.1 什么是 SSH 动态转发3.… 文章目录 前言一、解锁内部服务SSH 本地转发1.1 什么是 SSH 本地转发1.2 本地转发应用场景 二、打开外部访问大门SSH 远程转发2.1 什么是 SSH 远程转发2.2 远程转发应用场景 三、动态转发SSH 让你拥有自己的 VPN3.1 什么是 SSH 动态转发3.2 动态转发应用场景 四、小结推荐阅读 前言
SSHSecure Shell不仅是一个用于安全远程登录的协议还支持多种类型的端口转发功能包括本地转发、远程转发和动态转发。这些功能使我们能够灵活地通过 SSH 隧道在不同网络环境中安全地传输数据。本文将详细介绍这三种转发方式及其应用场景。
一、解锁内部服务SSH 本地转发
1.1 什么是 SSH 本地转发
SSH 本地转发SSH Local Port Forwarding是一种通过 SSH 隧道将本地计算机的端口转发到远程服务器的特定端口的方法。其主要目的是在本地访问远程服务器上的服务确保通信过程中的数据安全性。 用户发起 SSH 连接命令用户在本地主机上使用 SSH 命令发起连接指定本地端口和远程主机及其端口。例如 # 这条命令表示将本地主机的某个端口本地端口映射到远程主机的某个端口远程端口通过 SSH 服务器进行连接。
ssh -L 本地端口:远程主机:远程端口 用户名SSH服务器建立 SSH 连接本地主机与 SSH 服务器建立 SSH 连接确保通信的安全性。 用户访问本地端口用户通过访问本地主机的 localhost:本地端口实际访问到远程主机上的服务。所有访问 localhost:本地端口 的请求都会通过 SSH 隧道转发到远程主机的远程端口。 SSH 隧道转发请求SSH 服务器接收到来自本地主机的请求通过 SSH 隧道将这些请求转发到远程主机的远程端口。 远程主机处理请求远程主机上的服务接收并处理请求然后将响应结果返回给 SSH 服务器SSH 服务器再通过 SSH 隧道将结果返回给本地主机最终用户在本地主机上获取到结果。
1.2 本地转发应用场景
假设有一个数据库服务器 dbserver.com它的端口 3306 仅对内部网络开放。你可以通过中转服务器 sshserver.com 访问该数据库。
ssh -L 3306:dbserver.com:3306 usersshserver.com执行上述命令后您可以通过访问 localhost:3306 来连接到 dbserver.com 上的 MySQL 数据库。 在本地计算机上运行 ssh -L 3306:dbserver.com:3306 usersshserver.com。本地计算机在 localhost:3306 上监听。当本地应用程序连接到 localhost:3306 时SSH 客户端通过 SSH 隧道将请求转发到 sshserver.com。sshserver.com 将请求转发到 dbserver.com:3306。数据库服务器返回的响应通过相同的路径返回到本地计算机。
二、打开外部访问大门SSH 远程转发
2.1 什么是 SSH 远程转发
SSH 远程转发SSH Remote Port Forwarding是一种通过SSH隧道在远程服务器和本地计算机之间安全地转发网络流量的技术。它允许将远程服务器上的某个端口的流量通过SSH隧道传输到本地计算机上的指定端口。这种方式通常用于在安全的 SSH 连接上访问远程服务器内网中的资源而无需直接暴露这些资源。 用户 A 发起连接用户A在本地主机上使用SSH命令发起远程转发连接。示例命令为 # 该命令中远程端口是SSH服务器上的端口本地主机是用户A的本地计算机本地端口是本地主机上的端口用户名是SSH服务器上的用户名SSH服务器是远程SSH服务器的地址。
ssh -R 远程端口:本地主机:本地端口 用户名SSH服务器建立 SSH 连接本地主机与 SSH 服务器之间建立 SSH 连接。这一步骤确保所有数据都通过安全的 SSH 隧道传输。 用户 B 访问服务远程主机上的用户 B 试图通过 SSH 服务器访问本地主机上的服务。 请求转发SSH 服务器接收到用户 B 的请求后通过已建立的 SSH 隧道将请求转发到用户 A 的本地主机上的端口。 响应返回本地主机将响应通过 SSH 隧道发送回 SSH 服务器SSH 服务器再将响应转发回远程主机。
2.2 远程转发应用场景
假设你在本地计算机上运行了一个 Web 服务器例如localhost:80希望通过中转服务器 sshserver.com 让远程用户访问该 Web 服务器。
ssh -R 8080:localhost:80 usersshserver.com执行上述命令后远程用户可以通过访问 sshserver.com:8080 来连接到本地计算机上的 Web 服务器。 在本地计算机上运行 ssh -R 8080:localhost:80 usersshserver.com。SSH 服务器在 sshserver.com:8080 上监听。当远程用户连接到 sshserver.com:8080 时SSH 服务器通过 SSH 隧道将请求转发到本地计算机上的 localhost:80。本地计算机返回的响应通过相同的路径返回到远程用户。
三、动态转发SSH 让你拥有自己的 VPN
3.1 什么是 SSH 动态转发
SSH 动态转发SSH Dynamic Port Forwarding是一种通过 SSH 隧道实现的代理功能它允许在本地计算机上创建一个 SOCKS 代理服务器从而使得所有通过这个代理的流量都通过 SSH 隧道加密并转发到远程服务器。与本地转发和远程转发不同动态转发不需要预先指定目标主机和端口而是可以动态地决定目的地这使其更加灵活。 用户发起连接用户在本地主机上使用 SSH 命令发起动态转发连接。示例命令为 # 该命令中本地代理端口是本地计算机上打开的SOCKS代理端口用户名是SSH服务器上的用户名SSH服务器是远程SSH服务器的地址。
ssh -D 本地代理端口 用户名SSH服务器建立 SSH 连接本地主机与 SSH 服务器之间建立 SSH 连接。这一步确保所有数据都通过安全的 SSH 隧道传输。 设置本地 SOCKS 代理本地计算机在指定端口例如 8080上启动一个 SOCKS 代理。任何发送到该端口的流量都会通过 SSH 隧道转发到远程服务器。 用户配置应用程序用户配置需要通过代理访问网络的应用程序如浏览器使其使用本地 SOCKS 代理端口例如 8080。 应用程序发出请求用户在应用程序中访问某个远程服务器例如访问某个网站。应用程序的请求首先发送到本地 SOCKS 代理端口。 请求转发本地计算机捕获通过 SOCKS 代理端口的请求通过已建立的 SSH 隧道将请求加密并转发到 SSH 服务器。 SSH 服务器处理请求SSH 服务器接收到请求后根据请求中的目标地址和端口访问远程服务器。 远程服务器处理请求并返回响应远程服务器接收请求后进行处理生成响应数据并将其返回给 SSH 服务器。SSH 服务器将响应数据通过 SSH 隧道加密并发送回本地主机。
3.2 动态转发应用场景
假设你希望通过中转服务器 sshserver.com 访问多个远程网站例如example.com。可以在本地设置一个 SOCKS 代理。
ssh -D 1080 usersshserver.com执行上述命令后可以配置浏览器或其他应用程序使用 localhost:1080 作为 SOCKS 代理通过中转服务器访问任意远程网站。 在本地计算机上运行 ssh -D 1080 usersshserver.com。本地计算机在 localhost:1080 上监听。应用程序通过 SOCKS 代理连接到 localhost:1080。SSH 客户端根据请求的目标地址通过 SSH 隧道将请求转发到 sshserver.com。sshserver.com 将请求转发到目标服务器例如example.com。目标服务器返回的响应通过相同的路径返回到本地计算机。
四、小结
SSH 的本地转发、远程转发和动态转发功能为用户提供了强大的网络访问和安全保障。这些功能不仅提升了网络操作的灵活性还增强了数据传输的安全性。掌握这些 SSH 技术可以在日常工作中更加高效和安全地访问各种网络资源。
推荐阅读
深入探究 Spring Boot Starter从概念到实践深入理解 Java 中的 volatile 关键字OAuth 2.0现代应用程序的授权标准Spring 三级缓存深入了解 MyBatis 插件定制化你的持久层框架