为什么要远程连接Linux系统??

  在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显示器了,此时,只能通过远程连接的方式管理Linux系统。因此,在装好linux系统后,学习Linux运维的第一步应该是配置好客户端软件远程(通过ssh软件进行连接)连接Linux系统进行管理

telnet连接服务器是明文的,非加密的; 默认为23端口

SSH连接服务器是加密的连接; 默认为22端口

ssh连接示意

  • 服务器端===>通过ssh协议提供===>守护进程sshd监听22端口(不断的监听是否有人需要服务)
  • 客户端(客户):ssh协议,ip地址,端口号(需要什么服务),用户名,密码

如何查看Linux系统的IP地址??

如图所示,我的Linux系统IP为192.168.179.133。

可以通过这两个命令来查看IP地址
ip地址/24:代表子网掩码255.255.255.0
lo:回环网卡:用于检测设备自测
eth0:你的第一块网卡
eth1:你的第二块网卡

ifup 网卡名与ifconfig 网络名 up的区别

假如你发现你的虚拟机没有IP地址的话,那么也许你的网卡设备处于关闭状态

方法一:ifup + 网卡名(ethx) 可以开启设备

方法二:ifconfig +网卡名(ethx)+ up 也可以开启设备

讨论

既然这两个命令都能开启成功,那么它们到底有没有区别呢?请跟随我来做个实验。

  • 第一步:我们删掉eth1网卡的配置文件

/etc/sysconfig/network-scripts/:这个路径是网卡配置文件的路径,作为运维人员我们是必须熟记得

  • 第二步,我们关闭eth1这个网卡设备
  • 第三步,我们尝试开启这个设备

继续讨论

为什么我们的试验结果是这样的呢?当我删除了eth1这个网卡的配置文件,ifup这个命令就失灵了?

  • 这是因为,ifup/ifdown这个命令控制的实际上并不是物理网卡的开启和关闭,而实际上他控制的仅仅是网卡的配置文件而已,它是通过网卡配置文件间接的操作网卡设备。
  • 而ifconfig xxxx up/down:则是控制物理网卡设备的开启和关闭,因此并不受配置文件的干扰。

CRT远程连接的基本原理

  • 我们在前几节中提到过,sshd这个服务,实际上是服务器的一个守护进程。
  • 正是因为存在这个守护进程,因此服务器的22端口才会持续不断的被监听(监视)
  • 当CRT通过ssh协议访问服务器的22端口的时候,服务器的sshd服务才会马上回应这个访问,因此才能进行远程连接
  • 故,当服务器不存在sshd(把进程kill掉)这个服务时,xshell是无法通过ssh协议进行远程访问的。

当我远程用CRT执行命令kill 1486进程后,只剩下当前CRT连接Linux的sshd进程(Pid=19130)。即 我若想在CRT再开一个会话连接Linux,是绝对连不上的。

如果服务器端sshd服务被未运行,那么所有通过ssh协议的访问都将失败(包含xshell,CRT)

当sshd这个服务监听的不再是22端口时(通过配置文件可以改),CRT必须切换到它监听的端口进行访问才能正确连接。

总结:

ifconfig + 网卡名:可以查看开启状态的网卡的IP地址(看不到关闭状态的网卡设备)

ip a:可以查看所有网卡的IP地址(还能看到关闭状态的网卡)

ip link:可以查看所有网卡的物理状态

ifup/ifdown + 网卡名:通过网卡配置文件来开启和关闭网卡设备

ifconfig 网卡名 up/down:直接关闭和开启网卡设备。

通过kill + Pid号 或者pkill + 服务名称 来杀掉进程

sshd服务的配置文件路径:/etc/ssh/sshd_config

网卡的配置文件路径:/etc/sysconfig/network-scripts/ifcfg-网卡名

netstat -antup或ps -ef :可以用来查看当前服务器开启的所有服务

故障排查(通过ssh工具无法连接Linux主机)

1、两个机器之间物理网络是否通畅(网线网卡,IP是否正确)
ping 192.168.xx.xx ====>在当前的CRT或xshell下ping Linux系统,看物理网络是否通畅

2、防火墙或selinux是否处于开启状态

SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制的实现,这个功能让系统管理员又爱又恨,这里我们还是把它关闭了吧,至于安全问题,后面通过其他手段来解决,这也是大多数生产环境的做法,如果非要开启也是可以的。关闭方式如下:

命令说明

  • setenforce:用于命令行管理SELinux的级别,后面的数字表示设置对应的级别
  • getenforce:查看SElinux当前的级别状态

提示:修改配置SElinux后,要想使生效,必须要重启系统。因此,可配合使用setenforce 0 这个临时关闭的命令,这样在重启前后都可以使得SElinux关闭生效了,也就是说无需立刻重启服务器了,在生产环境下Linux机器是不能随意重启。

3、查看服务器的服务进程是否处于开启状态(sshd)

  • netstat -antup或ps -ef :可以用来查看当前服务器开启的所有服务

4、查看服务器的ssh端口是否改变

  • sshd服务的配置文件路径:/etc/ssh/sshd_config

远程SSH连接服务与基本排错的更多相关文章

  1. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

  2. (转)远程SSH连接服务与基本排错

    远程SSH连接服务与基本排错 原文:https://www.cnblogs.com/chensiqiqi/p/6224474.html#top 1.1 为什么要远程连接Linux系统 在实际的工作场景 ...

  3. Linux实战教学笔记05:远程SSH连接服务与基本排错

    第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果 ...

  4. Linux优化远程SSH连接

    优化远程SSH连接 1.Linxu和Window的ssh连接区别 Windom默认3389端口,管理员administartor 普通是guest Linux 默认22端口 管理员root 普通一堆 ...

  5. 关于Ubuntu远程ssh连接失败的问题

    在做机器人项目的时候,用的是Ubuntu的linux,跟之前的CentOS的操作命令有一点差别,就比如防火墙的名字,在Ubuntu系统中叫什么ufw,真是有点不好接受. 为了能模拟环境,我又弄了一台电 ...

  6. 不能ssh连接ubuntu linux 服务器 secureCRT不能ssh连接服务器 不能远程ssh连接虚拟机的ubuntu linux

    我是用的是secureCRT,远程连接我的虚拟机里面的ubuntu 直接报错,连接不上 1,先分别在windows上ipconfig和ubuntu上ifconfig下 互ping一下,是可以ping通 ...

  7. 【Linux利用远程SSH连接】SecureCRT中文出现乱码解决办法 Linux服务器技术

    1. 修改远程linux机器的配置   vim /etc/sysconfig/i18n   把LANG改成支持UTF-8的字符集   如:   LANG="zh_CN.UTF-8″   或者 ...

  8. mac下让iterm2记住远程ssh连接

    brew安装sshpass brew install http://git.io/sshpass.rb 在根目录下建立passowrd目录用来管理密码,vim testserver 输入明文密码,保存 ...

  9. JAVA实现远程SSH连接linux并运行命令

    博客转移到http://blog.codeconch.com

随机推荐

  1. js动态加载的蒙板弹框

    我们访问一些网站时总会遇到这种点击后,背景像被打上一层模板一样,这个是怎么做到的呢? 它是将这个弹框div独立于页面容器wrap,设置position为absolute,将其水平垂直之后都居中,设置弹 ...

  2. 【转】请求处理机制其二:Django中间件的解析

    Middleware 开始工作了 get_response 做的第一件事就是遍历处理器的 _request_middleware 实例变量并调用其中的每一个方法,传入 HttpRequest 的实例作 ...

  3. Linux+Nginx+Asp.net Core部署

    上篇<Docker基础入门及示例>文章介绍了Docker部署,以及相关.net core 的打包示例.这篇文章我将以oss.offical.site站点为例,主要介绍下在linux机器下完 ...

  4. 读书笔记 effective c++ Item 34 区分接口继承和实现继承

    看上去最为简单的(public)继承的概念由两个单独部分组成:函数接口的继承和函数模板继承.这两种继承之间的区别同本书介绍部分讨论的函数声明和函数定义之间的区别完全对应. 1. 类函数的三种实现 作为 ...

  5. 判断是否支持WebP

    PC端,触屏版: 前端JS方案——利用img标签加载一张base64的WebP图片,在img标签的onload事件中判断该图片是否具有宽高的属性,若有表示支持webP,若没有表示不支持webP.后台判 ...

  6. 深度学习实践系列(2)- 搭建notMNIST的深度神经网络

    如果你希望系统性的了解神经网络,请参考零基础入门深度学习系列,下面我会粗略的介绍一下本文中实现神经网络需要了解的知识. 什么是深度神经网络? 神经网络包含三层:输入层(X).隐藏层和输出层:f(x) ...

  7. C#研究OpenXML之路(3-OpenXMLSDKToolV25.msi)

    一.OpenXMLSDKToolV25.msi 看了几天的OpenXml,感觉如果完全手写代码,将会是一件非常苦逼的事情,即要分析对应xlsx文件层次结构,以及包含的xml文件的xml标签结构,还要关 ...

  8. Redis基础学习(二)—数据类型

    一.Redis支持的数据类型 Redis中存储数据是通过key-value存储的,对于value的类型有以下几种: (1)字符串. (2)Map (3)List (4)Set   public cla ...

  9. Hibernate基础学习(六)—Hibernate二级缓存

    一.概述      Session的缓存是一块内存空间,在这个内存空间存放了相互关联的Java对象,这个位于Session缓存内的对象也被称为持久化对象,Session负责根据持久化对象的状态来同步更 ...

  10. JavaWeb总结(三)—JSP

    一.JSP简介 1.基本认识 (1)JSP页面是由HTML语句和嵌套在其中的Java代码组成的一个普通文本文件,JSP 页面的文件扩展名必须为.jsp. (2)在JSP页面中编写的Java代码需要嵌套 ...