基础不牢,地动山摇,我在网上搜这个问题的时候感觉自己很沙缺哈哈哈,但是问题出现了,我看了十几篇文章和提问,一些直说ssh基于tcp,其他一堆直接写了个标题“ssh是tcp还是udp”然后长篇大论的内容全跟我在这解释什么是tcp、udp。。。。我醉了呜呜呜
1.背景: 今天搞了一下内网穿透,用windows的xshell去连局域网内的linux主机,当使用花生壳为linux的22端口做映射的时候,出现了让我选协议的情况,而xshell在连接主机时也同样要求选择协议,一般在xshell下我们会选择ssh,但是花生壳要求我们选择的协议中并没有ssh,而是http/tcp等协议,直觉告诉我是tcp,后续成功链接也证明确实是tcp,但是我难受极了,我要知道为什么是tcp呜呜呜  2.分析、证明: 2.1主观判断: 1)首先ssh位于应用层或者说应用层之上,为它提供服务的就是TCP或者UDP,再者ssh的过程是加密的,它是一种安全可靠的远距离传输协议 2)另外,我们知道,ssh进行通信的默认端口是22号(当然也可以修改),那么我去查了22端口的百科,如下:  由ssh的安全性(udp安全性不足)以及这个看起来不太官方的“22端口百科”,我们基本上可以下结论:ssh基于tcp,但是搞研究嘛,即使问题不复杂,也要客观分析,然后我想到“netstat -apn”(linux查看当前已开启端口)这小玩意,害,我废了半天劲儿,早用它就好了嘛,于是: 2.2客观判断: 从第六行我们看到,22端口确实由tcp支持 关于tcp和udp这里就不过多叙述了,都很轻松可以查到,附上TCP/IP:

|