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

SSH如何通过proxy进行服务器连接的更多相关文章

  1. ssh免密登录linux服务器

    Ssh免密登录 sshd服务 sshd简介: SSH 密钥为登录 Linux 服务器提供了更好且安全的机制.运行 ssh-keygen 后,将会生成公私密钥对.你可以将公钥放置到任意服务器,从持有私钥 ...

  2. 【转】SSH中 整合spring和proxool 连接池

    [摘要:比来做的一个项目中应用到了毗邻池技巧,大概我们人人比拟认识的开源毗邻池有dbcp,c3p0,proxool.对那三种毗邻池来讲,从机能战失足率来讲,proxool轻微比前两种好些.本日我首要简 ...

  3. (数据科学学习手札132)Python+Fabric实现远程服务器连接

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 日常工作中经常需要通过SSH连接到多台远程 ...

  4. 【PostgreSQL】PostgreSQL添加新服务器连接时,报错“Server doesn't listen ”,已解决。

    PostgreSQL添加新的服务器连接时,报错:

  5. Navicat for MySQL的服务器连接管理

    Navicat for MySQL可以导入导出数据库服务器的连接,方便你换机器时不用再设置连接.    导出为一个.ncx的XML文件. 导入后,在执行一个查询时,可能会报以下错误 这是因为源机器和本 ...

  6. 通过MSSQL连接服务器连接至Oracle数据库

    前言 有很多时候,我们需要MSSQL与Oracle进行跨库查询或数据交互.本篇随笔将阐述如何通过MSSQL的连接服务器连接至Oracle数据库,并且读取数据的示例. 具体步骤 首先需要到Oracle的 ...

  7. 解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server

    这段时间在研究火车头的入库教程,在“配置登陆信息和数据库(mysql)”连接中,出现“服务器连接错误Host 'XXX' is not allowed to connect to this MySQL ...

  8. SQL2008和SQL2000可以跨服务器连接查询的测试实例

    测试目的: SQL2008 和 SQL2000 是否可以跨服务器连接查询 -- 测试环境: --A 虚拟机 XP ( IP : .0.0.213 )安装 SQL2000 个人版,并安装 SP4 补丁. ...

  9. ssh免密码登陆远程服务器

    ssh免密码登陆远程服务器 在使用windows下的cygwin或者在linux下使用Terminal进行远程服务器登陆测试的时候总是会要求输入账号密码,对于此我们可以使用ssh将公钥放在服务器上的方 ...

  10. 64位sql server 如何使用链接服务器连接Access

    原文:64位sql server 如何使用链接服务器连接Access 测试环境 操作系统版本:Windows Server 2008 r2 64位 数据库版本:Sql Server 2005 64位 ...

随机推荐

  1. vue3 父子组件间的传值通信

    1.父转子 // 父组件 <template> <div> <div> <p>{{ count }}</p> <Son :countF ...

  2. 哈啰面试:说说Dubbo运行原理?

    Dubbo 是一款高性能.轻量级的开源 RPC(远程过程调用)框架,主要用于构建分布式服务和微服务架构.那 Dubbo 又是如何运行的呢?让我们一起来看. 1.核心组件 要说 Dubbo 运行流程就不 ...

  3. k8s集群搭建及对一些组件的简单理解(一)

    背景 k8s的学习环境(用kubeadm方式搭建),我也搭过几次了,但都有点问题. 要么在云服务器上弄,这个的问题是就只有一台轻量服务器,只能搭个单节点的:后来买了一台便宜的,所以就有了两台,但是不在 ...

  4. Linux 下使用Java连接MySQL数据库,并且实现插入、删除、选择操作

    实验环境: OS : CentOS5.5 (Linux) IDE : Eclipse DBMS : MySQL 准备工作: 1.安装 MySql . 详见http://www.cnblogs.com/ ...

  5. 更难、更好、更快、更强:LLM Leaderboard v2 现已发布

    摘要 评估和比较大语言模型 (LLMs) 是一项艰巨的任务.我们 RLHF 团队在一年前就意识到了这一点,当时他们试图复现和比较多个已发布模型的结果.这几乎是不可能完成的任务:论文或营销发布中的得分缺 ...

  6. Debian安装Redis服务

    Debian安装Redis服务 安装命令 apt-get update apt-get install redis-server 等待安装完成 配置密码 编辑Redis的配置文件/etc/redis/ ...

  7. Linux 内核:设备树(1)dtb格式

    Linux 内核:设备树(1)dtb格式 背景 dtb作为二进制文件被加载到内存中,然后由内核读取并进行解析,如果对dtb文件的格式不了解,那么在看设备树解析相关的内核代码时将会寸步难行,而阅读源代码 ...

  8. 使用Swig转换C++到别的编程语言

    项目github地址: aoce 设定aoce能分别与UE4/Unity3D/android demo对接,就这三来看,分别是C++/C#/java三种语言. C++导出给别的语言使用,一般来说,分为 ...

  9. Java开发常见问题分析和处理方案

    程序Bug的产生,通常分为三种类型 逻辑漏洞: 低级错误,程序执行后无法达到想要效果. 越界访问: 访问了非法区域,造成程序崩溃. 条件考虑不全面: 你以为你万无一失,但你永远都不知道输入参数究竟是什 ...

  10. Linux启动Java程序jar包Shell脚本

    手动方式启动和终止java程序 启动java程序jar:nohup java -jar XXX.jar 查看程序占用pid:ps -ef | grep XXX.jar 或 jps jps是jdk提供的 ...