Image

备注:本文提到的代理工具泛指Shadowsocks,V2Ray,Gost等,请根据自己的网络环境选择合适的代理工具。

文中以Arch Linux系统作为演示,对于其他*nix系统有疑问可以留言提问。

Netcat 是一个“瑞士军刀”级别的工具,用途十分广泛。市面上常说的Netcat有两种一种是BSD版本的Netcat,另一种是GNU重写的Netcat。目前只有BSD版本的Netcat支持代理SSH流量。


本教程基于以下假设:

  • 假设你已经运行了代理工具,入口监听地址为socks5://127.0.0.1:1080
  • 假设服务器IP地址为256.256.256.256(虚构IP地址)
  • 假设服务器域名为996.rip,并DNS解析出的IP为256.256.256.256
  • 假设用户名为rip_996
  • 假设SSH服务器端口号为22

软件安装

通常openssh客户端为系统自带软件,无需额外安装。

安装BSD版本的Netcat

sudo pacman -S openbsd-netcat

实现SSH代理

ssh -o ProxyCommand="nc -X 5 127.0.0.1:1080 996.rip 22" rip_996@996.rip

配置 ~/.ssh/config

每次连接SSH服务器手动输入这么长的代码有些麻烦,可以在~/.ssh/config里面进行配置并起一个别名:

Host proxy_ssh_demo_996_rip
    HostName 996.rip
    User rip_996
    Port 22
    ProxyCommand  nc -X 5 -x 127.0.0.1:1080 %h %p

保存推出后每次登陆可以使用:

ssh proxy_ssh_demo_996_rip


以上的服务器域名服务器IP是可以互换使用的(interchangable)

代理SSH的好处

  • 国内的网络环境,通常SSH直连服务器稳定性欠佳
  • 代理服务器作为跳板机,设置好防火墙规则可以有效防止SSH爆破攻击
  • 运用灵活;通过代理链可以实现更好的匿名
Last modification:September 6th, 2020 at 01:31 pm