受限主机通过ssh的socks5代理访问其他计算机网络的方法

!!!注:本文只讨论技术,其他与本文无关

场景

访问某些网络受限的计算机A
可访问某些网络受限的计算机B
公网服务器C

方法原理

本方法基于SSH提供的反向代理隧道功能,配合frp(Fast Reverse Proxy)服务,在网络受限的场景下实现计算机A与计算机B间的安全连接。SSH反向隧道能够让位于内网的计算机B主动建立连接到公网服务器C,并将请求转发到计算机A,实现远程访问的目的。frp服务作为内网穿透的工具,进一步增强了连接的稳定性和灵活性。

具体实现过程

  1. 在计算机B和公网服务器C上配置frp内网穿透服务
    • 在公网服务器C上部署frp服务端。
    • 在计算机B上部署frp客户端,配置好对应服务端的连接信息,以确保B可以通过C转发请求。
  2. 计算机A通过ssh经过C的frp转发,连接到B
    • ssh -D 1080 -p 2222 user@serverC
  3. 在A上配置socks5s代理(可使用proxychain完成,即插即用)
    • 利用ProxyChains或类似工具,配置代理为socks5 127.0.0.1 1080,可以让计算机A上的流量通过计算机B访问网络。

带宽瓶颈分析

  • 带宽瓶颈主要受公网服务器C的网络带宽和计算机A、B之间的网络质量限制。
  • 反向代理和Socks5代理会引入额外的网络延迟,对于大量数据的传输和要求高响应速度的应用,性能可能受到影响。

安全性能分析

  • 使用SSH隧道和frp服务,整个通信过程都是加密的,提高了数据传输的安全性。
  • 需要妥善保管公网服务器C的访问凭证,以防遭到未授权访问。
  • 定期更新SSH和frp相关软件,应用安全补丁以防范潜在的安全风险。

总结

本文介绍了利用SSH反向代理隧道和frp内网穿透服务,在网络受限的情况下实现远程连接计算机A与计算机B的方法。该方案在提供跨网络连接的同时,也保证了通信的安全性。然而,需要注意网络带宽和延迟对性能的影响,并妥善管理安全凭证和更新维护相关软件。这种方式为许多需要远程工作和数据传输的场景提供了一种有效的解决方案。


受限主机通过ssh的socks5代理访问其他计算机网络的方法
https://yintel12138.github.io/2024/06/17/ssh-with-socks5/
作者
Yintel
发布于
2024年6月17日
许可协议