Azure Linux 虚拟机常见导致无法远程的操作
对Azure虚拟机的一些操作可能会导致无法远程连接,本文罗列了以下导致不能远程连接的场景:
- 场景1 - 在虚拟机配置IP地址或MAC地址
- 场景2 - 错误地修改服务的配置文件
- 场景3 - 误设置防火墙规则
- 场景4 - 挂载UUID相同的系统盘
- 场景5 - 使用device名称挂载软raid的device,名称发生变化引起启动失败
场景1
在配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0)中配置固定的IP地址或MAC地址:
DHCP_HOSTNAME=DanCentOS65
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.36
NETMASK=255.255.255.224
GATEWAY=10.0.0.33
HWADDR=00:0C:29:13:5D:74
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
IPV6INIT=no
修改后,在界面上关机后再开机,虚拟机会无法ssh登陆。(针对固定IP的情况,如果配置文件中写入的IP与虚拟机启动后DHCP获取到的IP恰巧一致,这种情况下可以链接,但是如果再次重启的时候,DHCP获取到的IP可能会变化,所以仍然存在风险)
注:本场景测试环境为CentOS 6.5, 如果您当前使用的非该版本, 请注意版本的差异性。
场景2
错误地修改服务的配置文件/etc/ssh/sshd_config(语法错误或者配置错误),导致sshd服务无法启动失败:
由于针对该文件的修改方法多种多样,所以这里只举例说明,例如我们在修改sshd配置文件的时候,在某一行手误多输入了一个字母:

结果sshd服务就无法正常启动了:

注:本场景测试环境为CentOS 6.5, 如果您当前使用的非该版本, 请注意版本的差异性。
场景3
错误地配置了虚拟机的防火墙(firewalld),iptables等等: 出于安全角度考虑,很多用户会针对ssh的客户端ip进行限制,或者配置其他安全策略,这种情况下,如果出现配置不当或者错误配置,会导致客户端不能正常ssh连接。 关于iptables的使用说明,请阅读这篇文章 关于firewalld的使用说明,请阅读这篇文章
场景4
同一个版本的Linux映像创建出来的虚拟机的系统盘UUID相同,例如使用平台映像创建两台CentOS6.5的虚拟机,系统盘UUID都为8fc4d768-29cd-462c-a7ab-5bf4bcfa9fa2:


因此如果将虚拟机的系统盘挂载到用相同平台映像创建其他机器上作为数据盘,不要使用UUID挂载(可以使用device名称来挂载),否则可能因为UUID相同导致挂载错误的系统盘引起启动失败,导致无法连接(如果这种情况发生,分离磁盘可能会将正常的系统盘分离下来)。
注:本场景测试环境为CentOS 6.5, 如果您当前使用的非该版本, 请注意版本的差异性。
场景5
虚拟机做软raid后,使用device名称挂载而非UUID挂载,重启后软raid的device名称发生变化,导致无法正常挂载,虚拟机启动失败从而无法正常ssh: 例如,在创建raid的时候,使用md0,md1,md2作为名称进行创建(参考链接):
mdadm --create /dev/md0 --level 0 --raid-devices 2 /dev/sdc1 /dev/sdd1
mdadm --create /dev/md1 --level 0 --raid-devices 2 /dev/sde1 /dev/sdf1
mdadm --create /dev/md2 --level 0 --raid-devices 2 /dev/md0 /dev/md1
创建完成后,如果虚拟机重启,device名称会发生变化,从127开始向前递减:

如果在fstab文件中使用device名称进行挂载,会导致重启后,系统找不到/dev/md0,/dev/md1,/dev/md2,从而挂载失败无法启动。所以建议使用UUID进行挂载。
注:本场景测试环境为CentOS 6.5, 如果您当前使用的非该版本, 请注意版本的差异性。
Azure Linux 虚拟机常见导致无法远程的操作的更多相关文章
- 【虚拟机-远程连接】Azure Linux 虚拟机常见导致无法远程的操作
对Azure虚拟机的一些操作可能会导致无法远程连接,本文罗列了以下导致不能远程连接的场景: 场景1 - 在虚拟机配置IP地址或MAC地址 场景2 - 错误地修改服务的配置文件 场景3 - 误设置防火墙 ...
- 【虚拟机-远程链接】Azure Windows 虚拟机常见导致无法远程的操作
对Azure虚拟机的一些操作可能会导致无法远程连接,本文罗列了以下导致不能远程连接的场景: 场景1 - 在虚拟机网卡配置中配置IP地址或MAC地址 场景2 - 远程桌面授权过期 场景3 - 误设置“不 ...
- 通过xrdp实现远程桌面连接Windows Azure linux虚拟机
本文以Oracle Linux 6.4虚拟机为示例(22及3389端口必须打开,分别用于SSH及RDP连接) 1.在安装xrdp之前,首先需要安装一些必要的包,如: # yum -y install ...
- Windows Azure Virtual Machine (25) 使用SSH登录Azure Linux虚拟机
<Windows Azure Platform 系列文章目录> 本文介绍内容适合于Azure Global和Azure China 为什么使用SSH登录Azure Linux虚拟机? 我们 ...
- 超大文件上传到Azure Linux虚拟机最佳实践
客户在实际进行迁移的时候,往往碰到需要将本地数据中心的超大文件,比如单个200GB的文件,或者总共1TB的无数文件上传到Azure上的情况,尤其是传到Azure的Linux虚拟机的场景,这种场景包括: ...
- 设置Windows Azure Linux虚拟机中的root账户
使用Windows Azure 创建好Linux虚拟机之后,如果你使用默认的用户密码登陆root是不行的,如下图所示: 其原因是Windows Azure创建Linux虚拟机时并没有同时设置root密 ...
- 使用VNC远程连接Windows Azure Linux虚拟机
本文以Oracle Linux 6.4虚拟机为示例 一. 安装 tigervnc-server 使用“rpm -qa vnc”指令查看是否安装vnc服务,如果没有安装,则可以使用yum或者rpm进行安 ...
- 远程登陆MS azure Linux 虚拟机
http://blogs.technet.com/b/uktechnet/archive/2013/11/12/running-a-remote-desktop-on-a-windows-azure- ...
- 【Linux】常见基础命令之系统操作
linux现在基本上已成为面试的必考题目,特此总结一些常用的基础命令. cd:切换目录 lilip@ubuntu:~$ cd /home/lilip/test pwd:打印当前目录 lilip@ubu ...
随机推荐
- IE8下不识别indexOf的问题
1.为Array原型添加indexOf方法(如果学过面向对象,相当于给Array类添加实例方法),方法体如下: //添加数组IndexOf方法 if (!Array.prototype.indexOf ...
- 13.Reflect
1.概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API.Reflect对象的设计目的有这样几个. (1) 将Object对象的一些明显属于语言内部的方法(比如O ...
- js继承的实现(es5)
js对面向对象的支持很弱,所以在ES6之前实现继承会绕比较多的弯(类似于对面向对象支持弱,然后强行拼凑面向对象的特性) es5中实现继承的几种方式,父类定义为Super function Super( ...
- git stash使用一则
当在新的分支工作,修改的文件提交到暂存区,这时,切换到其他分之,可能报错,因为米有commit,如果切换到其他分支,暂存区的修改可能丢失,我们可以使用git stash save -a(暂存区) &q ...
- git push.default 几种设置笔记
1 simple ,本地和远程分支同名才会推送,只会推送当前的分支到远程 ,默认推送分支数量:1 2 matching , 会推送匹配的本地分之到远程分之,假如本地有的分支远程没有,不会把本地推送到远 ...
- STIL文件(DFT/IC测试方向)
相信很多工程师,特别是刚入行或准备入行的兄弟们或多或少听过测试相关的东西.如果你想做DFT工程师的,测试工程师的,而对于设计/验证工程师们如果能了解下STIL文件的原理,在和DFT/测试工程师聊技术聊 ...
- Node.js之Console用法小结
/** * Created by city--online on 16/3/9. */ //console.time()和console.timeEnd()输出中间代码的执行时间(注意:time和ti ...
- zabbix自动发现与自动注册及SNMP监控
自动发现与自动注册 自动发现:zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多. 自动注册:zabb ...
- C# 之构造函数
构造函数是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化. 构造函数具有一些特殊的性质: (1)构造函数的名字必须与类同名; (2)构造函数没有返回类型,它可以带参数,也可以不 ...
- 撩课-Web大前端每天5道面试题-Day14
1. 请写出至少5个html5新增的标签,并说明其语义和应用场景? section:定义文档中的一个章节; nav:定义只包含导航链接的章节; header:定义页面或章节的头部; 它经常包含 log ...