ssh 通过代理连接服务器


老规矩,先说结论:
#用于,未经测试$ssh-="nc--%h%p"user@
或者:
#如果代理服务器需要认证,可以使用nc的升级版ncat指定代理服务器的用户名和密码#用于 。在上使用ncat无法连接,原因不明$ssh-="ncat--proxy-typehttp/socks4/socks5--proxyproxy.net:port--proxy-authproxyuser:proxypwd%h%p"user@server.net
由于不明原因,在macOS上,Ncat某版本升级后,上述方式不再生效 , 起码7.91版本在macOS10.15.7上是不行的 。但Linux上没问题 。所以增加个socat的替补方案:
#主机:user@server.net#代理:http://proxyuser:proxypwd@proxy.net:30808$ssh-o\ProxyCommand='socat-proxy:proxy.net:%h:%p,proxyport=30808,proxyauth=proxyuser:proxypwd'\user@server.net
Scout本身很强大,但对代理的支持这部分貌似差一些,只支持SOCKSv4和HTTPProxy,不支持SOCKS5 。详情参考《socat初窥门径》 。
一、背景
有些时候 , 由于网络限制等原因,不能直接连通过SSH连到指定服务器,需要经过代理进行连接 。例如如下场景:
客户机:client.net
代理服务器:proxy.net,安装代理服务器软件,通过1080端口,提供Socket5代理服务
目标服务器:server.net , 在默认22端口,提供SSH服务
其中,
client.net
不能直接访问server.net
client.net
可以访问proxy.net
proxy.net
可以访问server.net
二、解决方案
使用SSH的ProxyCommand选项 , 配合nc/Ncat命令 , 实现client.net通过代理proxy.net,以SSH访问server.net 。
1、连接代理工具
(1)nc
macOS上常用这种方案 。但是nc不支持需要认证的代理 。
常用参数:
-X
指定代理协议
4
SOCKSv.4
5
SOCKSv.5(默认)
connect
HTTPSproxy
【ssh 通过代理连接服务器】
相关阅读

  • ssh隧道代理方法
  • windows下用ssh做代理的方法
  • ssh 代理设置
  • 透过代理连接sshLainmes Blog
  • linux 中国◆开ssh代理源社区
  • ssh代理
  • 透过代理连接sshLainmes Blog
  • ssh 代理设置
  • ssh 通过代理连接服务器
  • 分享到:QQ空间新浪微博腾讯微博人人网微信百度复制网址

      猜你喜欢