华为云用户手册

  • 处理方法 用chattr命令将i权限撤销,然后再修改密码。 如果文件属性为"i",执行以下命令。 chattr -i /etc/passwd /etc/shadow 如果文件属性为"a",执行以下命令。 chattr -a /etc/passwd /etc/shadow (可选)如果对修改过属性的文件有安全要求需要设置相应的属性,请重新设置相应的属性。 如果设置文件属性为"i",执行以下命令。 chattr +i /etc/passwd /etc/shadow 如果设置文件属性为"a",执行以下命令。 chattr +a /etc/passwd /etc/shadow 查看修改后的文件属性,执行以下命令。 lsattr /etc/passwd /etc/shadow
  • CentOS 6/RedHat 6系列 使用控制台提供的VNC方式登录云服务器。 在云服务器操作列下单击“远程登录”。 图11 使用控制台提供的VNC方式登录云服务器 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。 确认开始重启后,立即反复单击“Esc”阻止系统继续启动,并进入一个grub菜单。 图12 grub菜单 将光标移动到第一个默认的内核,按字母键e进行编辑。 图13 按字母键e编辑 将光标移动到kernel行,再次按字母键e进行编辑。 图14 移动至kernel行 将光标移动到“rd_NO_DM”的末尾,在空格后面添加数字“1”。 图15 在末尾添加数字“1” 将光标向左移动到“console=ttyS0,115200n8”的位置,删掉“console=ttyS0,115200n8”,然后按回车键接受编辑。 图16 删掉“console=ttyS0,115200n8” 按“b”引导使用该内核,并引导到运行级别1(单用户模式)。 当看到“#”提示符时执行以下命令重置密码。 passwd root 重启服务器。 reboot
  • Debian/Ubuntu系列 使用控制台提供的VNC方式登录云服务器。 在云服务器操作列下单击“远程登录”。 图17 使用控制台提供的VNC方式登录云服务器 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。 确认开始重启后,立即反复单击“Esc”阻止系统继续启动,并进入一个grub菜单。 图18 grub菜单 在grub引导菜单下按“e”键进入grub2菜单编辑模式。 找到linux行末尾,删除不需要加载的参数(ro参数开始到末尾),修改ro为rw(以读写方式挂载根分区),并添加“init=/bin/bash”。 图19 修改ro参数 按Ctrl+x进入救援模式。 执行以下命令,重置root密码。 passwd root 执行以下命令,重启服务器。 reboot
  • CentOS 7/EulerOS 系列 使用控制台提供的VNC方式登录云服务器。 在云服务器操作列下单击“远程登录”。 图7 使用控制台提供的VNC方式登录云服务器 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。 确认开始重启后,立即反复单击上下键,阻止系统继续启动,在出现内核选项时按字母键e进入内核编辑模式。 图8 进入内核编辑模式 Euler镜像默认对grub文件进行了加密,进入编辑内核模式时会提示:Enter username,需要输入用户和密码,请联系客服进行获取。 找到linux16行末尾,执行以下操作。 删除不需要加载的参数(ro参数开始到末尾)。 ARM(鲲鹏计算)架构云服务器以及裸金属服务器需要保留参数“console=tty0 console=ttyS0”。 修改ro为rw,以读写方式挂载根分区。 并添加rd.break,然后执行Ctrl+X。 图9 修改前 图10 修改后 执行以下命令切换至/sysroot目录。 chroot /sysroot 执行以下命令,重置root密码。 passwd root (可选,系统开了SELinux需要执行此步骤)执行以下命令,让SELinux生效。 touch /.autorelabel 执行以下命令,退出当前根目录。 exit 执行以下命令重启云服务器。 reboot
  • SUSE12系列 使用控制台提供的VNC方式登录云服务器。 在云服务器操作列下单击“远程登录”。 图22 使用控制台提供的VNC方式登录云服务器 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。 然后快速刷新页面,按“Esc”阻止系统继续启动,并进入一个grub菜单。 图23 grub菜单 在grub引导菜单下按“e”键进入grub2菜单编辑模式。 将光标移至linux行末尾,添加“init=/bin/bash”。 图24 init=/bin/bash 按Ctrl-x进入救援模式。 执行以下命令,重置root密码。 passwd root 执行以下命令,重启服务器。 reboot
  • SUSE 11系列 使用控制台提供的VNC方式登录云服务器。 在云服务器操作列下单击“远程登录”。 图20 使用控制台提供的VNC方式登录云服务器 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。 然后快速刷新页面,按上下键,阻止系统继续启动,并进入一个grub菜单。 删除boot options中的启动参数,添加init=/bin/bash参数。 图21 boot options 按回车键进入单用户模式。 执行以下命令,重置root密码。 passwd root 执行以下命令,重启服务器。 reboot
  • CentOS 8系列 使用控制台提供的VNC方式登录云服务器。 在云服务器操作列下单击“远程登录”。 图1 使用控制台提供的VNC方式登录云服务器 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。 确认开始重启后,立即反复单击上下键,阻止系统继续启动,在出现内核选项时按字母键e进入内核编辑模式。 图2 进入内核编辑模式 修改启动权限配置。 将ro参数修改为:rw init=/sysroot/bin/bash 图3 修改前 图4 修改后 然后执行Ctrl+X。 请耐心等待页面加载。 图5 进入紧急模式 运行命令chroot /sysroot/切换回原始系统。 执行以下命令,重置root密码。 passwd root 图6 紧急模式下重置root密码 (可选,系统开了SELinux需要执行此步骤)执行以下命令,让SELinux生效。 touch /.autorelabel 执行以下命令,退出当前根目录。 exit 执行以下命令重启云服务器。 reboot
  • 根因分析 执行以下命令,查看系统内核是否开启了TIME_WAIT快速回收和重利用策略 sysctl -a |grep tcp_tw 如图1所示,确认已开启该策略。 图1 TIME_WAIT 由于服务端开启了TIME_WAIT快速回收和重利用策略导致,即启用了net.ipv4.tcp_tw_recycle或者net.ipv4.tcp_tw_reuse。系统默认是不启用该功能。 客户端通常在NAT环境下,多台终端使用同一个公网ip,无法实现服务端与客户端的一对一连接。如果开启此参数服务端会回收处于TIME_WAIT状态的TCP连接,导致连接断开。
  • 常见的链路异常案例 目标主机配置不当 如下示例所示,数据包在目标地址出现了100%的丢包。从数据上看是数据包没有到达,其实很有可能是目标服务器网络配置原因,需检查目的服务器的防火墙配置。 Host Loss% Snt Last Avg Best Wrst StDev 1. ??? 2. ??? 3. 1XX.X.X.X 0.0% 10 521.3 90.1 2.7 521.3 211.3 4. 11X.X.X.X 0.0% 10 2.9 4.7 1.6 10.6 3.9 5. 2X.X.X.X 80.0% 10 3.0 3.0 3.0 3.0 0.0 6. 2X.XX.XX.XX 0.0% 10 1.7 7.2 1.6 34.9 13.6 7. 1XX.1XX.XX.X 0.0% 10 5.2 5.2 5.1 5.2 0.0 8. 2XX.XX.XX.XX 0.0% 10 5.3 5.2 5.1 5.3 0.1 9. 1XX.1XX.XX.X 100.0% 10 0.0 0.0 0.0 0.0 0.0 ICMP限速 如下示例所示,在第5跳出现丢包,但后续节点均未见异常。所以推断是该节点ICMP限速所致。该场景对最终客户端到目标服务器的数据传输不会有影响,分析时可以忽略此种场景。 Host Loss% Snt Last Avg Best Wrst StDev 1. 1XX.XX.XX.XX 0.0% 10 0.3 0.6 0.3 1.2 0.3 2. 1XX.XX.XX.XX 0.0% 10 0.4 1.0 0.4 6.1 1.8 3. 1XX.XX.XX.XX 0.0% 10 0.8 2.7 0.8 19.0 5.7 4. 1XX.XX.XX.XX 0.0% 10 6.7 6.8 6.7 6.9 0.1 5. 1XX.XX.XX.XX 60.0% 0 27.2 25.3 23.1 26.4 2.9 6. 1XX.XX.XX.XX 0.0% 10 39.1 39.4 39.1 39.7 0.2 7. 1XX.XX.XX.XX 0.0% 10 39.6 40.4 39.4 46.9 2.3 8. 1XX.XX.XX.XX 0.0% 10 39.6 40.5 39.5 46.7 2.2 环路 如下示例所示,数据包在第5跳之后出现了循环跳转,导致最终无法到达目标服务器。出现此场景是由于运营商相关节点路由配置异常所致,需联系相应节点归属运营商处理。 Host Loss% Snt Last Avg Best Wrst StDev 1. 1XX.XX.XX.XX 0.0% 10 0.3 0.6 0.3 1.2 0.3 2. 1XX.XX.XX.XX 0.0% 10 0.4 1.0 0.4 6.1 1.8 3. 1XX.XX.XX.XX 0.0% 10 0.8 2.7 0.8 19.0 5.7 4. 1XX.XX.XX.XX 0.0% 10 6.7 6.8 6.7 6.9 0.1 5. 1XX.XX.XX.65 0.0% 10 0.0 0.0 0.0 0.0 0.0 6. 1XX.XX.XX.65 0.0% 10 0.0 0.0 0.0 0.0 0.0 7. 1XX.XX.XX.65 0.0% 10 0.0 0.0 0.0 0.0 0.0 8. 1XX.XX.XX.65 0.0% 10 0.0 0.0 0.0 0.0 0.0 9. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 链路中断 如下示例所示,数据包在第4跳之后就无法收到任何反馈。这通常是由于相应节点中断所致。建议结合反向链路测试做进一步确认。该场景需要联系相应节点归属运营商处理。 Host Loss% Snt Last Avg Best Wrst StDev 1. 1XX.XX.XX.XX 0.0% 10 0.3 0.6 0.3 1.2 0.3 2. 1XX.XX.XX.XX 0.0% 10 0.4 1.0 0.4 6.1 1.8 3. 1XX.XX.XX.XX 0.0% 10 0.8 2.7 0.8 19.0 5.7 4. 1XX.XX.XX.XX 0.0% 10 6.7 6.8 6.7 6.9 0.1 5. 1XX.XX.XX.XX 0.0% 10 0.0 0.0 0.0 0.0 0.0 6. 1XX.XX.XX.XX 0.0% 10 0.0 0.0 0.0 0.0 0.0 7. 1XX.XX.XX.XX 0.0% 10 0.0 0.0 0.0 0.0 0.0 8. 1XX.XX.XX.XX 0.0% 10 0.0 0.0 0.0 0.0 0.0 9 1XX.XX.XX.XX 0.0% 10 0.0 0.0 0.0 0.0 0.0
  • Windows操作系统Tracert介绍和使用 Tracert是路由跟踪程序,Tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间。Tracert命令功能与Ping命令类似,但获得的信息要比Ping命令详细,它可以显示数据包所走的全部路径、节点的IP以及时间。 登录Windows云服务器。 打开cmd命令窗,执行以下命令跟踪IP地址。 tracert IP地址/网站地址 例如:tracert www.example.com 对数据节点分析如下: Tracert默认最大跳数30,第1列为起跳顺序号。 Tracert每次会发送三个数据包,第2、3、4列为对应三个数据包的返回时间。第5列为跳转的IP节点。 假如某一层中出现了“* * * request timed out”,那么则需要定位这层的问题,可能这里导致连接不到目标节点。
  • Linux操作系统MTR介绍和使用 安装MTR 目前现有的Linux发行版本都预装了MTR,如果您的Linux云服务器没有安装MTR,则可以执行以下命令进行安装: CentOS 操作系统: yum install mtr Ubuntu 操作系统: sudo apt-get install mtr MTR相关参数说明 -h/--help:显示帮助菜单。 -v/--version:显示MTR版本信息。 -r/--report:结果以报告形式输出。 -p/--split:与 --report相对,分别列出每次追踪的结果。 -c/--report-cycles:指定每次探测发送的数据包数量,默认值是10。 -s/--psize:设置数据包的大小。 -n/--no-dns:不对IP地址做域名解析。 -a/--address:用户设置发送数据包的IP地址,主要用户单一主机多个IP地址的场景。 -4:IPv4。 -6:IPv6。 以本机到IP为119.xx.xx.xx的服务器为例。 执行以下命令,以报告形式输出MTR的诊断报告。 mtr 119.xx.xx.xx --report 回显信息如下: [root@ecs-0609 ~]# mtr 119.xx.xx.xx --report Start: Thu Aug 22 15:41:22 2019 HOST: ecs-652 Loss% Snt Last Avg Best Wrst StDev 1.|-- 100.xx.xx.xx 0.0% 10 3.0 3.4 2.8 7.5 1.3 2.|-- 10.xx.xx.xx 0.0% 10 52.4 51.5 34.2 58.9 6.3 3.|-- 10.xx.xx.xx 0.0% 10 3.2 5.0 2.7 20.8 5.5 4.|-- 10.xx.xx.xx 0.0% 10 1.0 1.0 1.0 1.1 0.0 5.|-- 192.xx.xx.xx 0.0% 10 3.5 4.2 2.8 11.6 2.5 6.|-- 10.xx.xx.xx 0.0% 10 35.3 34.5 6.0 56.4 22.6 7.|-- 10.xx.xx.xx 0.0% 10 3.3 4.7 3.1 14.7 3.6 8.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0 主要输出的信息如下: HOST:节点的IP地址或域名。 Loss%:丢包率。 Snt:每秒发送的数量包的数量。 Last:最近一次的响应时间。 Avg:平均响应时间。 Best:最短的响应时间。 Wrst:最长的响应时间。 StDev:标准偏差,偏差值越高,说明各个数据包在该节点的响应时间相差越大。
  • 原因分析 丢包或时延较高可能是链路拥塞、链路节点故障、服务器负载高、系统设置问题等原因引起。 在排除云服务器自身原因后,您可以使用Tracert或MTR工具进行进一步诊断。 使用网络诊断工具MTR可以帮助您确认网络问题的根因。 本节操作导航: Windows: (推荐使用)Windows操作系统Tracert介绍和使用。 Windows操作系统WinMTR介绍和使用。 Linux: Linux操作系统MTR介绍和使用。
  • Windows操作系统WinMTR介绍和使用 登录Windows云服务器。 通过浏览器访问外网,搜索并下载WinMTR安装包。 解压缩WinMTR安装包,WinMTR无需安装,可以直接解压运行。 双击WinMTR.exe,打开WinMTR工具。 在WinMTR窗口的Host处,输入目的服务器IP地址或者域名,单击“Start”。 根据实际情况,等待WinMTR运行一段时间,单击“Stop”,结束测试。如下图所示: 测试结果的主要信息如下: Hostname:到目的服务器要经过的每个主机IP或域名。 Nr:经过节点的数量。 Loss%:对应节点的丢包率。 Sent:已发送的数据包数量。 Recv:已接收到响应的数量。 Best:最短的响应时间。 Avrg:平均响应时间。 Worst:最长的响应时间。 Last:最近一次的响应时间。
  • WinMTR和MTR的报告分析处理 以下图为例分析WinMTR和MTR的报告。 服务器本地网络:即图中A区域,代表本地局域网和本地网络提供商网络。 如果客户端本地网络中的节点出现异常,则需要对本地网络进行相应的排查分析。 如果本地网络提供商网络出现异常,则需要向当地运营商反馈问题。 运营商骨干网络:即图中B区域,如果该区域出现异常,可以根据异常节点的IP查询其所属的运营商,向对应运营商进行反馈。 目标端本地网络:即图中C区域,即目标服务器所属提供商的网络。 如果丢包发生在目的服务器,则可能是目的服务器的网络配置原因,请检查目的服务器的防火墙配置。 如果丢包发生在接近目的服务器的几跳,则可能是目标服务器所属提供商的网络问题。
  • 处理方法 执行以下命令,排查磁盘的物理空间是否已满。 df -h 图1 检查磁盘物理空间 如图1所示,磁盘空间还有剩余,排除物理磁盘空间已满的情形 执行以下命令,查看系统可用的inode节点使用率。 df -i 当结果中的Use%为100%时则为inode耗尽,可以执行以下的操作步骤释放inode。 执行以下命令,将所有在目录文件进行归档。 tar czvf /tmp/backup.tar.gz /home/data 删除对应目录下确认不需要的文件释放inode。
  • 根因分析 通常不会出现删除文件后空间不释放的情况,特殊情况是文件进程锁定,或有进程一直在向这个文件写数据。 为了分析根因,首先需要了解Linux文件的存储机制和存储结构。 一个文件在文件系统中存放分为两个部分: 指针部分:指针位于文件系统的meta-data中,在将数据删除后,这个指针就从meta-data中清除了。 数据部分:而数据部分存储在磁盘中。 将数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容。出现删除access_log文件后,空间还没有释放的原因,是因为httpd进程还在一直向这个文件写入内容,导致删除了access_log文件后,进程锁定,文件对应的指针部分并未从meta-data中清除,由于指针并未删除,系统内核就默认文件并未被删除,因此查询文件系统使用率时,显示空间并未释放。
  • 问题现象 Linux操作系统云服务器根目录空间占用率过高。例如,以图1为例,根目录空间占用率为96%。 图1 根目录空间占用率过高 查询当前系统存在一个约42G大小的文件access_log,这个文件是apache产生的访问日志文件,从日志大小判断是很久没有清理的apache日志文件了。 执行以下命令删除access_log。 rm /tmp/access_log 执行以下命令查看文件系统使用率。 df -h 删除该文件后使用df查看文件系统使用率仍是96%。
  • 根因分析 执行以下命令,查询有问题的mount unit。 systemctl list-units --type=mount |grep failed test1.mount loaded failed failed /test1 执行以下命令,查询该unit的状态。 systemctl status test1.mount 回显信息如下所示: ● test1.mount - /test1 Loaded: loaded (/etc/fstab; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2019-08-28 15:32:53 CST; 3min 27s ago Where: /test1 What: /dev/vdb1 Docs: man:fstab(5) man:systemd-fstab-generator(8) Process: 4601 ExecUnmount=/bin/umount /test1 (code=exited, status=0/SUCCESS) Process: 3129 ExecMount=/bin/mount /dev/vdb1 /test1 -t ext4 (code=exited, status=0/SUCCESS) ... ... Warning: test1.mount changed on disk. Run 'systemctl daemon-reload' to reload units. 如回显信息所示test1.mount磁盘发生了改变,需要运行systemctl daemon-reload重新加载units。 更改/etc/fstab时,必须执行systemctl daemon-reload。在运行该命令之前,systemd不读取fstab并生成装载单元。
  • 处理方法 在控制台重启主机,进入单用户模式。 进入单用户模式的详细操作请参考Linux云服务器如何进入单用户模式重置root密码 执行以下命令检查/etc/passwd文件 。 cat /etc/passwd 确认passwd文件已被破坏,执行以下命令使用系统初始的备份passwd-文件替换损坏的passwd文件 。 cp /etc/passwd- /etc/passwd 该操作会造成自行添加的用户丢失,如果为应用运行的用户会导致应用启动失败,待修复后请自行添加用户。 执行以下命令退出当前根目录至initramfs的根目录。 exit 重启云服务器。 (可选)待系统启动,添加丢失的用户,例如执行以下命令添加Nginx运行用户nobody并指定该用户shell为/sbin/nologin(请根据场景添加用户,需要登录系统的用户需要指定shell为/bin/bash)。 useradd nobody -s /sbin/nologin
  • 操作场景 本节操作适用于Linux操作系统云服务器/etc/passwd文件损坏导致云服务器无法登录的问题。 本节操作为紧急恢复系统方法,需要在单用户模式下会将系统备份初始备份/etc/passwd-文件替换已损坏的/etc/passwd文件,该操作会造成自行添加的用户丢失(包括应用运行的用户,可以参考/etc/shadow文件添加其他账号)。 本节操作涉及重启云服务器操作,重启云服务器会造成业务中断,请谨慎操作。
  • 根因分析 服务端sshd服务开启UseDNS选项状态下,当客户端试图使用SSH连接服务器时,服务器端先根据客户端的IP地址进行DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,验证与其原始IP地址是否一致,这是防止客户端欺骗的一种措施,但一般我们的是动态IP不会有PTR记录,建议关闭该选项。 执行如下命令确认是否开启了UseDNS选项。 grep UseDNS /etc/ssh/sshd_config 如果该选项值为“yes”或者为注释行则说明已开启该选项。建议参考本节操作修改UseDNS。
  • 场景一:/var/empty/sshd属主非root导致sshd启动失败 sshd启动失败,查看journal日志,提示/var/empty/sshd must be owned by root。 journalctl -xe 查看/var/empty/sshd文件属主信息 ll /var/empty/sshd 如上图所示,由于/var/empty/sshd目录属主非root用户导致sshd服务启动失败。 修改/var/empty/sshd属主,及其权限。 chown -R root.root /var/empty/sshd chmod -R 711 /var/empty/sshd 重启sshd服务,执行: systemctl restart sshd
  • 根因分析 出现该问题通常有三个原因: /etc/resolv.conf未配置DNS地址或者DNS地址错误导致。 /etc/nsswitch.conf文件删除DNS解析记录导致。 /lib64/libnss_dns.so.2库文件丢失导致无法解析域名。 执行以下命令,查看解析域名打开的所有文件。 strace -e trace=open ping www.baidu.com -c 1 该结果中出现的所有文件都会影响域名解析。
  • 处理方法 场景一:/etc/resolv.conf未配置DNS地址或者DNS地址错误导致。 /etc/resolv.conf中最关键的是nameserver项,如果没指定nameserver就找不到DNS服务器,其它关键字是可选的。 nameserver表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的,且只有当第一个nameserver没有反应时才查询下一个的nameserver。 请检查/etc/resolv.conf中配置的DNS地址。 场景二:/etc/nsswitch.conf文件删除DNS解析记录导致。 检查/etc/nsswitch.conf是否有DNS解析配置。 grep hosts /etc/nsswitch.conf 回显信息如下所示,hosts行中未配置DNS选项,导致解析域名时不会读取/etc/resolv.conf,导致域名解析失败。 #hosts: db files nisplus nis dns hosts: files myhostname 打开/etc/nsswitch.conf找到hosts行添加DNS解析。 #hosts: db files nisplus nis dns hosts: files dns myhostname hosts项的值代表按优先级顺序列出服务,这些服务用于查找域名的IP地址。 “file”表示使用/etc/hosts文件,“ dns”表示使用域名服务。如果“file”位于“ dns”之前,则意味着系统将首先尝试在/etc/hosts中查找域名,然后才通过DNS查找(这是默认配置)。如果未配置dns则不会使用DNS查找。 场景三:/lib64/libnss_dns.so.2库文件丢失导致无法解析域名。 /lib64/libnss_dns.so.2库文件由glibc包产生,可以通过校验glibc查看包是否被修改。 rpm -V glibc 在正常的Linux系统执行 rpm -qf /lib64/libnss_dns.so.2生成库文件。 回显信息如下所示,说明/lib64/libnss_dns.so.2文件缺失。 missing /lib64/libnss_dns.so.2 执行以下命令,重新建立软链接。 在正常的云服务器上执行ls -l /lib64/libnss_dns.so.2可知/lib64/libnss_dns.so.2的源文件为/usr/lib64/libnss_dns-2.17.so。 ln -s /usr/lib64/libnss_dns-2.17.so /usr/lib64/libnss_dns.so.2
  • 定位过程 查看客户端DHCP请求记录 grep -E "dhclient|DHCP" /var/log/messages 图2 DHCP请求记录 dhclient续租记录显示在5月12日重新续租成功(当时正确的时间为4月26日,系统时间是被手动修改过)。 dhclient记录下一次续租发生在33696秒后(约9小时21分,通常为租约的1/2时发出续租请求),即下次续租发生在5月12日21点21分左右。 也可以通过查询dhclient租约信息记录文件,每一次续租成功都会记录在该文件中。执行以下命令查询文件的保存路径(文件以.lease结尾)。 ps -ef |grep dhclient 继续查看系统日志(messages)发现在续租后的5小时14分后系统时间发生跳变,回退至4月26日,但是由于下次续租请求发生在16天后,但是在9小时后未发出续租请求,租约到期后ip被DHCP服务端回收,导致ip丢失。 grep "Time has been changed" /var/log/messages 图3 系统日志
  • 根因分析 登录管理控制台,并通过VNC方式登录云服务器。 执行以下命令,查看是否开启了firewalld。 systemctl status firewalld 图1 开启firewalld 如图1所示,系统已开启firewalld。 执行以下命令,查看firewalld中的规则。 firewall-cmd --list-all 图2 查看firewalld规则 如图2所示,firewall当前的zone为public,该zone默认只放通ssh和dhcpv6-client服务。其中ssh服务为默认的22端口,当ssh修改为非22端口时就无法访问。
  • 处理方法 方法1:执行以下命令,停止firewalld服务并取消开机自启。 建议通过安全组和ACL进行访问控制,如业务需要开启firewalld请参考•方法2:执行以下命令,在firewalld服务... systemctl stop firewalld systemctl disable firewalld 方法2:执行以下命令,在firewalld服务中添加新的端口55660。 firewall-cmd --add-port=55660/tcp --permanent --zone=public firewall-cmd --reload
  • 根因分析 出现该问题的可能原因如下: CentOS 7中/etc/rc.d/rc.local文件没有执行权限。解决方案请参考处理方法1。 /etc/rc.local为/etc/rc.d/rc.local的软链接 /etc/rc.local配置路由重启不生效的场景,是由于添加路由依赖网络服务,而在CentOS 7系统启动过程中内核读取rc.local时网络服务尚未启动,导致添加路由失败。解决方案请参考处理方法2。
  • 处理方法1 针对/etc/rc.d/rc.local文件没有执行权限导致开机启动脚本执行失败的场景,解决方案如下。 CentOS7中该文件默认没有可执行权限 查看/etc/rc.d/rc.local是否有执行权限 ls -l /etc/rc.d/rc.local -rw-r--r-- 1 root root 473 Sep 14 02:19 /etc/rc.d/rc.local 如回显信息所示该文件没有执行权限,需要为/etc/rc.d/rc.local添加可执行权限。 执行以下命令为/etc/rc.d/rc.local添加可执行权限 chmod +x /etc/rc.d/rc.local
  • 问题分析 在 Linux 的内存管理中,buffer是Linux内存中的Buffer cache。cache是Linux内存中的Page cache。 Buffer cache:主要是当系统对块设备进行读写的时候,对块进行数据缓存的系统来使用,即对块的操作会使用buffer cache进行缓存。 例如:当对一个文件进行写操作的时候,page cache 的内容会被改变,而buffer cache则可以用来将page标记为不同的缓冲区,并记录是哪一个缓冲区被修改了。内核在后续执行脏数据的回写writeback时,就不用将整个page写回,而只需要写回修改的部分即可。 Page cache:主要用来作为文件系统上的文件数据的缓存来用,尤其是针对当进程对文件有read/write操作的时候。Linux默认会将读取的文件内容缓存在内存中,方便后续使用。 Linux默认使用的是lazy模式,即内存如果还够用,则不会主动释放当前的占用的buffer和cache,如果需要内存,则会自动释放buffer和cache,所以正常情况下,cache占用高不会对系统造成影响。
共100000条