互联网上的计算机,都会有一个唯一的32位的地址——ip地址。
我们访问服务器,就必须通过这个ip地址。
局域网里也有预留的ip地址:192/10/172开头。
局域网里的ip地址也是唯一的。
NAT模式,电脑宿主机的ip在局域网里是唯一的。
选择了NAT模式创建虚拟机,虚拟机就是一个新的局域网(私有网络)。
我的mac宿主机的ip是:192.168.0.100
端口port的简单概念:
192.168.0.100 代表一台主机,但是主机上可能会有很多服务。
一台主机上的不同服务功能,就是通过端口区分,然后让外部人员访问。
远程连接服务ssh的 端口号为 22.
协议protocol的简单概念:
一台主机上的不同服务功能,就是通过端口区分,不同的服务端口,客户端和服务器之间通信,就可能使用不同的协议。
不同的服务提供了不同的端口,对应了不同的功能,通信方式可能也是不同的,这种通信的方式我们就可以理解为协议。
协议类比语言就是中文、英语、法语等。
远程连接服务
Linux就是在ssh通信中就是服务器,一直开启ssh服务(守护进程),端口默认是22,监听是否有访问的客户机。
SecureCRT就是客户端,为了与Linux实现通信,就需要提供:ip,端口port,协议protocol(SSH协议),用户名,密码。
最常用的提供Linux远程连接服务的工具就是SSH软件。
SSH分为SSH客户端和SSH服务器端两部分。
SSH服务器端包含的软件主要有openssh和openssl,在Linux系统中可以用如下方法查询SSH软件的安装情况:
[root@oldboy /]# rpm -qa openssh openssl
openssh-5.3p1-111.el6.x86_64
openssl-1.0.1e-42.el6.x86_64
- openssh是提供SSH服务的程序
- openssl是为SSH提供连接加密的程序
SSH服务器端介绍
启动Linux系统时,默认情况下,SSH服务器端程序就会随着系统一起启动,SSH服务是一个守护进程daemon,它在系统后台永久运行并时刻响应所有来自SSH客户端的连接请求。
SSH服务器端的进程名为sshd,负责实时监听远程SSH客户端的连接请求并进行处理,这些请求一般包括
- 公共密钥认证
- 密钥交换
- 对称密钥加密
- 非安全链接等
SSH服务是Linux系统优化时需要保留开机自启动的服务之一。
下面是查看ssh进程命令:
下图是查看ssh进程的是怎么监听22端口的:
0.0.0.0:22表示监听所有网卡的22端口,如果是固定的ip则鉴定固定的ip的22端口。
排查故障
- 两个机器之间是否通畅,看客户端物理链路
- ping 192.168.0.107
- 如果不通,则服务器可能网络有问题:网卡,IP,网线,防火墙
- ssh服务是否是正常运行状态
- telnet 192.168.0.107 22
- windows查看Telnet客户端是否开启
- mac安装 brew install telnet,下面是测试的命令和在Mac上通的效果
- 在客户端上执行该命令,连接服务器ip和端口查看服务器ssh是否正常
~ zoe$ telnet 192.168.0.107 22
Trying 192.168.0.107...
Connected to 192.168.0.107.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3
- 服务器端防火墙阻拦
- /etc/init.d/iptables status
- 关闭防火墙 /etc/init.d/iptables stop
- 端口没开放,服务器端没有监听端口
- netstat -lntup|grep 22
- netstat -lntup|grep ssh
重启ssh服务
[root@oldboy /]# /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]