1.查看自己的网卡是否工作正常

centos shell 查询本地连接ssh IP ssh查看连接ip_服务端

可以看到,有多块网卡在工作,其中eno1是有线网卡,UP表示开启了,但没有运行(RUNNING),因为此时主机并没有连接有线网络。

lo是本地虚拟网卡,所有设备都为127.0.0.1,可以在没有网络的环境中用来测试。

wlp4s0是无线网卡,它被开启(UP),且正在工作(RUNNING)。第二行可以看到IP地址是192.168.31.104,这就是当前主机的IP地址。

其实,也可以在设置中直接看到IP地址,与上述的结果是一致的。

centos shell 查询本地连接ssh IP ssh查看连接ip_IP_02


 

2.查看当前主机是否安装了ssh的服务端

输入下列命令:

centos shell 查询本地连接ssh IP ssh查看连接ip_IP_03

如果只有一个ssh的进程,则说明没有安装ssh的服务端,通过下列命令安装:

sudo apt-get install openssh-server

3.检验ssh服务端是否安装成功

在终端输入下列命令:

centos shell 查询本地连接ssh IP ssh查看连接ip_服务端_04

 如果可以连接(如上图),则证明当前主机的ssh server安装成功。

4.配置路由器端口转发

此时,主机可以通过ssh localhost命令,或者ssh name@IP(步骤1中得到的IP)在自己的主机上登录自己的主机,但其他主机仍然无法通过ssh连接该主机。

原因是步骤1中得到的IP地址是主机所连路由器分配的局部地址。一般同一台路由器连接设备的IP前三个字节相同,最后一个字节不同。这前三个字节是路由器本身确定的,一般标注在路由器的背面,如下图:

centos shell 查询本地连接ssh IP ssh查看连接ip_linux_05

该路由器所连设备的IP的前三个字节都是192.168.31。这个IP地址是路由器分配的局部地址,其他主机无法通过该局部地址找到当前主机。因此,必须使用路由器的全局IP地址来进行ssh连接

在浏览器中打开192.168.31.1(一般要输入路由器管理密码),找到外网IP地址:

centos shell 查询本地连接ssh IP ssh查看连接ip_IP_06

随后,找到“端口转发”设置,添加下列规则:

centos shell 查询本地连接ssh IP ssh查看连接ip_服务端_07

该规则的意义是,该路由器22号端口收到的数据都会转发给局部IP为192.168.31.104的设备的22号端口。其中,外部端口不一定为22,因为ssh客户机申请连接时可以指定端口(-p 端口号)。但内部端口一定为22,因为ssh的主机是接收22号端口的信息。如果怕麻烦,可以都设置为22。

5.ssh连接

最后,外部ssh客户机可以直接通过ssh name@IP来访问该主机,这里的IP为步骤4中获得的路由器外网地址

centos shell 查询本地连接ssh IP ssh查看连接ip_IP_08