OpenSSH多路复用Multiplexing配置
设置 Session Multiplexing
在客户端节点如下配置/etc/ssh/ssh_config 或~/.ssh/config 就可以直接开启 Session Multiplexing 功能:
清单 1. 配置 Session Multiplexing
Host * #该部分的定义将应用到全部主机
ControlMaster yes #Session Multiplexing 开关
ControlPath ~/.ssh/master-%r@%h:%p #供 Session Multiplexing 使用的 Control Socket (Unix Socket) 路径
ControlPersist yes #是否开启后台 Control master 模式
成功开启后,无论从该客户端节点用同一用户向同一 SSH Server 节点发起多少次连接,都有且仅有一条连接被建立,负责该节点到该 Server 之间的所有 SSH 包文。
下面我们给出一个实际案例:如清单 2 所示,设有一个 SSH 服务器节点:9.115.241.18,一个 SSH 客户端节点:9.115.241.20。在客户端的 Session Multiplexing 开启的情况下,向服务器端建立若干个 SSH 会话,最后在客户端或服务器端检测实际存在的连接数,会发现整个过程仅仅有一条 TCP 被建立起来。
清单 2. Multiplexing 实际使用案例
# 注:以下的操作均在客户端节点(9.115.241.20)完成
# 建立一个连接到服务器端,定期执行 ls 命令打印出当前目录下的文件
$ ssh zhang@9.115.241.18 'while /bin/true; do ls; sleep 1; done > /dev/null' &[]
# 再建立另一个连接到服务器端,执行同样的操作
$ ssh zhang@9.115.241.18 'while /bin/true; do ls; sleep 1; done > /dev/null' &[]
# 最后,显示出当前节点接入服务器端(9.115.241.18) 端口(SSH 协议)的所有连接
$ netstat -n | grep '9.115.241.18:22'
tcp 9.115.241.18: 9.115.241.20: ESTABLISHED
由清单 2 最后的 netstat 命令可知,无论由客户端发起多少个 SSH 进程,都只会有一条连接建立起来,而这一条连接便承载了 9.115.241.20 到服务器端的所有 SSH 通讯。
例子
新建文件ip.txt
清单 3.ip.txt
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
新建脚本ssht.sh
清单 4.ssht.sh
#!/bin/bash
while read line;do
ssh -n $line "echo ok &>/dev/null" && echo -e "\e[1;32m OK \e[0m" || echo -e "\e[1;31m FAIL \e[0m"
done < ip.txt
然后执行 time sh ssht.sh
清单 5.结果
OK
OK
OK
OK
OK
OK
OK real 0m17.460s
user 0m1.109s
sys 0m0.607s
参考资源
OpenSSH多路复用Multiplexing配置的更多相关文章
- 静态NAT、动态NAT、PAT(端口多路复用)的配置
静态NAT.动态NAT.PAT(端口多路复用)的配置 NAT的实现方式有三种,即静态转换Static Nat.动态转换Dynamic Nat 和 端口多路复用OverLoad. 静态转换 ( ...
- Windows上安装配置SSH教程(2)——在Windows XP和Windows 10上安装并配置OpenSSH for Windows
知识点汇总:http://www.cnblogs.com/feipeng8848/p/8559803.html ------------------------ 安装方式有3种: (1)Windows ...
- openssh 在32位、64位操作系统上的安装配置
openssh是安装在windows系统上的提供SSH服务的服务端软件,可以提供安全的命令行远程连接管理.下面介绍下openssh成功安装使用的操作步骤. 工具/原料 openssh window ...
- 【Http】队头阻塞(Head of line blocking)多路复用(Multiplexing)
图中第一种请求方式,就是单次发送request请求,收到response后再进行下一次请求,显示是很低效的. 于是http1.1提出了管线化(pipelining)技术,就是如图中第二中请求方 ...
- centos8上配置openssh的安全
一,openssh服务版本号的查看 1,查看当前sshd的版本号 : [root@yjweb ~]# sshd --help unknown option -- - OpenSSH_7.8p1, Op ...
- Flume NG 配置详解(转)
原文链接:[转]Flume NG 配置详解 (说明,名词对应解释 源-Source,接收器-Sink,通道-Channel) 配置 设置代理 Flume代理配置存储在本地配置文件.这是一个文本文件格式 ...
- Flume NG 配置详解
配置 设置代理 Flume代理配置存储在本地配置文件.这是一个文本文件格式,是Java属性文件格式.在相同的配置文件,可以指定一个或多个代理的配置.配置文件包括每个源,接收器和通道,把它们连接在一起, ...
- 部署openssh服务器
1.安装服务器端软件包 先查看是否已经安装openSSH服务器软件包 # rpm -qa|grep openssh openssh-askpass-.3p1-.el6_6..x86_64 openss ...
- sourcetree和gitlab配置图解
一.前期准备安装 1.git客户端(1.产生gitlab服务端和本地git相互传输时所需要校验的私钥和公钥 2.直接在Idea中使用git提交和push代码,当然也可以用sourcetree提交 ...
随机推荐
- pc端复制方法
dom结构如下: <div id="btn">复制</div> <input id="content" type="te ...
- Java依赖注入方式
pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
- error: ld returned 1 exit status 解决
1.程序未结束运行 2.全局变量冲突,不是宏定义冲突
- (3)diango的架构
MVC架构:主流的web都是MVC架构 M 就是模型层指得是model,对应的就是数据库操作层 V 就是视图,和MTV架构的视图层不是一个概念,对应MTV架构中的T C 控制器,根据请求地址执行什么代 ...
- 《DSP using MATLAB》Problem5.23
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% O ...
- mysql 常用函数-locate 和 instr 和 regexp
★1 -- 表级锁 情况SHOW STATUS LIKE 'table%';-- 行级锁 情况SHOW STATUS LIKE 'innodb_row_lock%'; -- 进程列表SHOW PROC ...
- 【BZOJ3992】【SDOI2015】序列统计
数论劲啊 原题: 小C有一个集合S,里面的元素都是小于M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属于集合S. 小C用这个生成器生成了许多这样的数列.但是小 ...
- day39KNN算法和其他的算法
PS: 1.现在明白为什么其他的同学一直都在做数字图像处理,matlab这种东西了,因为机器学习,其他底层主要是做预先处理,然后调用某一个算法 2.感觉knn算法就是根据先验数据计算下一个跟自己一样不 ...
- centos7部署phpipam(ip管理系统)
安装必要的软件 yum install httpd mariadb-server php php-cli php-gd php-common php-ldap php-pdo php-pear php ...
- C libraries in Linux
Copy from a book. There are several C libraries to choose from. The main options are as follows: gli ...