钢铁知识库,一个学习python爬虫、数据分析的知识库。人生苦短,快用python。

xshell是什么

通俗点说就是一款强大ssh远程软件,可以方便运维人员对服务器进行管理操作,功能很多朋友们自行探索,今天只聊其中一个功能点那就是隧道转发。

隧道转移是什么

xshell隧道转移到底是干嘛的,有什么作用呢?隧道是一种技术,它允许你通过一个加密连接发送原本不安全的流量。这就像在不安全的网络上建立了一个安全的“隧道”。主要用于在不安全的网络中安全地传输数据。这种技术通过在客户端和服务器之间建立一个加密的网络连接,来保护数据的安全性和隐私性。

xshell隧道转发的三种类型:

Xshell的隧道转发功能有三种主要类型:本地端口转发(Local Port Forwarding)、远程端口转发(Remote Port Forwarding)和动态端口转发(Dynamic Port Forwarding)。下面是每种类型的详细解释:

  1. 本地拨出 Local(Outgoing)

    • 作用
      :将本地计算机的一个端口连接到远程服务器的一个指定端口上。
    • 应用场景
      :当你想从本地机器安全地访问位于远程服务器上的服务(如数据库、web服务等)时使用。
    • 工作原理
      :通过SSH连接,用户在本地机器上指定一个端口,Xshell会创建一个隧道,把这个本地端口上的所有数据发送到远程服务器的指定端口。
  2. 远程传入Remote(Incoming)

    • 作用
      :将远程服务器的一个端口连接到本地计算机的一个指定端口上。
    • 应用场景
      :当远程服务器需要访问你的本地机器上的服务(例如,你在本地运行的web应用)时使用。
    • 工作原理
      :通过SSH连接,用户在远程服务器上指定一个端口,Xshell会创建一个隧道,把这个远程端口上的所有数据发送到本地计算机的指定端口。
  3. Dynamic(SOCKS4/5)

    • 作用
      :建立一个SOCKS代理服务器,通过这个代理服务器转发网络流量。
    • 应用场景
      :常用于访问通过常规网络无法直接访问的服务,比如绕过网络审查或访问局域网内的资源。
    • 工作原理
      :用户指定一个本地端口用作SOCKS代理,Xshell会将通过这个端口的数据通过SSH隧道转发到任意目的地。这种方式提供了更多的灵活性,可以转发到多个远程服务。

使用场景

​ 网上有很多使用场景,有通过隧道访问内网服务器的;有通过转发访问某个web页面的;还有通过隧道代理绕过无法访问的网络资源。

​ 今天我说一个目前自己经常在用的使用场景,借助远程传入功能实现远程服务器某些网络资源无法访问的问题。

通过转发绕过限制网络

​ 原理大概是这样:我在阿里云有一台深圳节点的ECS,工作原因需要下载k8s集群中某些资源,因为网络限制会导致下载超时,而我本地PC刚好没有网络限制可以直接下载,这时可以通过xshell远程传入功能将服务器http_proxy转发到本地计算机,从而实现网络资源下载。


image-20240121121851603

1.开始转发前

image-20240121122854223

​ 可以看到在没有配置转移规则前,curl连接访问是超时的。

2.配置转移规则

​ 先在服务器上执行export http_proxy将请求代理转发到9999,

export http_proxy=http://127.0.0.1:9999/ https_proxy=http://127.0.0.1:9999/

​ 然后在xshell会话中,转移规则空白处点击添加,转移规则如下:

类型(方向):远程(传入)
源主机:localhost(服务器代理传入的ip)
侦听端口:9999(服务器传入的端口)
目标主机:localhost(本机fiddler)
目标端口:8888(fiddler监听的端口)

image-20240121123240902

​ 同时在本机打开fiddler准备好接受请求

image-20240121123917598

3.完成转发配置后

​ 完成配置后再次访问可以看到不再超时,可以正常获取到头信息。

image-20240121132747394

---- 钢铁 648403020@qq.com 2024.01.21

​ 到此使用场景演示就结束了,隧道转发功能还有很多使用技巧,朋友们可以慢慢挖掘。

​ 除了xshell有隧道转发功能外,securecrt也有这个功能,操作原理是一样,这里就不再做另外演示。

​ 今天先分享到这里。

标签: none

添加新评论