SSH 通过代理连接服务器

SSH 通过代理连接服务器,第1张

老规矩,先说结论:

或者:

注意:由于 macOS 版 Ncat 的 7.90 和 7.91 版本的 bug,上述方式不再生效。起码 7.91 版本在 macOS 10.15.7 上是不行的。此问题在 7.92 版本中已经解决。

具体原因参见: https://nmap.org/changelog.html

但 Linux 上没问题。所以增加个 socat 的替补方案:

Scout 本身很强大,但对代理的支持这部分貌似差一些,只支持 SOCKSv4 和 HTTP Proxy,不支持 SOCKS5。详情参考 《socat 初窥门径》 。

有些时候,由于网络限制等原因,不能直接连通过 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) nc

macOS 上常用这种方案。但是 nc 不支持需要认证的代理。

常用参数:

(2) Ncat

Ncat 在 macOS 上通过代理连接时会出现连接断开的情况。

常用参数:

以 nc 为例,如使用 Ncat 可以自行替换。

默认为 Socket5 代理,这时可以省略 -X 参数

或者采用另一种写法:

SSH 配置文件位置:

增加如下两行内容:以 nc 为例,如使用 Ncat 可以自行替换。

使用配置文件之后,就不需要在命令行中进行代理配置了。

对于大部分情况,都可以直接使用 nc 或者 Ncat 解决。但对于一些复杂情况,也可以通过其它方案完成。如在 macOS 上想通过需要认证的代理连接,用 nc 不支持代理认证, Ncat 又有些问题。

对于代理类型的问题,可以通过 Brook 来进行类型转换。

1、 corkscrew

只支持 HTTP 代理

如需要访问带认证的代理服务器

~/.ssh/myauth 的内容:

2、 proxytunnel

只支持 HTTP 代理

命令行里只填用户名,会提示输入密码,或者通过环境变量传入。

(完)

在新建Xstart/XDMCP会话时,当我们选择使用协议时可以对协议进行设置,那么在Xstart/XDMCP中如何设置SSH协议,看这些协议如何正确设置。本集以Xstart为例向大家详细介绍一下它们的属性。更多属性介绍可以查看Xmanager使用教程。

当设置一个SSH协议时,点击Xstart会话选择SSH,单击旁边的设置,就可进入协议的具体设置。

SSH协议【常规】

图1:SSH协议【常规】

主机

输入主机名或SSH隧道代理服务器的IP地址。在这种情况下,您需要配置SSH代理服务器,以便它不仅可以绑定环回地址(127.0.0.1),还可以进行外部连接。

首选版本

选择一个要使用的SSH协议。推荐使用SSH2,因为它可以比SSH1提供更好的安全性与更多的功能。

端口号

输入SSH连接端口号。

使用默认值

SSH协议缺省端口默认设置为22。

发送活动信号

发送活动信号到远程主机。这个设置是用来防止用户缺席时断开。在一些网络环境中,当连接空闲空闲时,网关或防火墙系统可能会终止连接,且不另行通知。

SSH协议【选项】

图2:SSH协议【选项】

加密

加密算法用于加密和解密。用户可以从列表中选择他们喜欢的算法,如果选择密码列表,可以按照优先次序尝试几种算法,修改密码列表,点击编辑。

MAC

MAC(消息身份验证代码)确保传输数据通过网络时不会由第三方更改。它提供了比SSH更安全的SSH2协议。用户可以从列表中选择他们喜欢的MAC算法,也可以在MAC列表中按照优先次序尝试算法,修改MAC列表,点击编辑。

网络数据压缩(使用ZLIB压缩)

选择此选项可以压缩ZLIB算法的所有数据流量。压缩后在低速网络环境中提供更好的性能。

执行命令前分配终端

当你想分配一个虚拟终端的远程主机时,选择这个选项执行命令。

TCP/IP转移

在【隧道】选项卡中,你可以在列表中添加、编辑、删除TCP/IP转移通道。

一般来说,代理服务器需要在虚拟主机上运行一个代理服务程序,如tproxy等。 因为虚拟主机通常只能运行web程序,你看看你的虚拟主机支持哪种语言,如linux的支持PHP/Python等,WIndows的支持ASP, ASP.net等。然后你去百度或者Google搜索 “语言 代理服务器” ,如 “PHP 代理服务器”, 将程序下载下来安装到你的虚拟主机上就可以了。如果你的虚拟主机支持PHP,你可以看看 Phpsocks5,网址:

一般的虚拟主机不支持 SSH/VPN做代理,如果要支持这些你必须买 VPS 。一般的虚拟主机的apache2你不能控制他的配置文件,所以你也不能将其配置成代理服务器。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11097510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存