SSH如何通过proxy进行服务器连接
openssh是什么这里不做解释,但凡是用过linux系统的一般都是会了解这个的,毕竟openssh都是系统自带的应用。
openssh一般都是指linux上的客户端,很多linux系统自有客户端的ssh没有服务器端的ssh,为此我们可以手动安装服务器端的ssh:
sudo apt install openssh-server
===========================================
最近在家想着通过自己的linux主机直接访问校园网的内网,但是学校的vpn客户端只有Windows版本和Mac版本,不能把这个vpn客户端安装到linux主机上,因此不能直接通过linux主机访问学校内网。
于是想到Windows主机上运行的proxy客户端,由于工作的需要,自己的Windows主机是一直都有运行proxy客户端的,这个客户端就是:
由于这个proxy客户端是可以接受局域网中其他主机的sock5请求的,因此平时我在这个linux主机也是通过这个Windows上的proxy客户端转发sock5的信息来实现特种上网的:
既然平时可以通过系统的sock5代理设置实现通过Windows上的proxy进行特种上网,那么是不是也同样可以支持ssh的proxy连接呢?
于是手打命令:
ssh devil@210.35.97.210 -p 53666
结果的显示是无法连接。
想了半天也没有想出一个比较靠谱的解释,最后也只能得到一个结论,那就是认为这个ssh默认的网络连接是不支持sock5的proxy的,既然这样那就不能通过系统的默认sock5的proxy是ssh进行proxy连接,那也必然有其他的设置方法。
现有的网络情况为:
=============================================
经过在网上的查找资料终于发现如何设置ssh通过proxy连接服务器了:
给出一个使用proxy的Demo命令:
ssh -o ProxyCommand='nc -x 192.168.1.105:1080 %h %p' devil@210.35.97.210 -p 53666
如果不使用proxy的话,命令为:
ssh devil@210.35.97.210 -p 53666
也就是说ssh如果使用proxy需要加的命令为:
-o ProxyCommand='nc -x 192.168.1.105:1080 %h %p'
其中,-o ProxyCommand= 是必备的。nc是应用netcat的缩写,
-x 后面跟着proxy的IP和端口,
%h %p 这里的含义不清楚,有种解释说是指目标主机地址和端口。
192.168.1.105 指proxy的地址和端口。
实际效果证明:
ssh -o ProxyCommand='nc -x 192.168.1.105:1080 %h %p' devil@210.35.97.210 -p 53666
这个命令在192.168.1.104的Ubuntu主机上执行,成功的连接到192.168.1.105的proxy上,并通过192.168.1.105上的校园vpn客户端访问到了校园网内的深度服务器。
加入保活参数后无法运行:
ssh -o ProxyCommand='nc -x 192.168.1.105:1080 %h %p' devil@210.35.97.210 -p 53666 ServerAliveInterval=60
校园VPN客户端:
Windows上的proxy:
===========================================================
参考:
https://ieevee.com/tech/2017/10/19/ssh-over-socks5.html
https://blog.csdn.net/ASX20042005/article/details/7041294
posted on 2022-10-18 15:07 Angry_Panda 阅读(2079) 评论(0) 编辑 收藏 举报