Linux常见问题

Q01:云服务器 docker 无法启动?

A:

现象:

[root@dockercentos ~]# service docker start
Redirecting to /bin/systemctl start  docker.service
Job for docker.service failed because the control 
process exited with error code. See "systemctl status
docker.service" and "journalctl -xe" for details.

查看日志:

Ubuntu 日志路径 /var/log/syslog


Jun 27 16:26:11 localhost dockerd[5045]: time="2017-06-27T16:26:11.101291226+08:00" level=fatal msg="Error starting daemon: Error initializing network controller: Error creating default \"bridge\" network: failed to parse pool request for address space \"LocalDefault\" pool \"\" subpool \"\": could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network"

CentOS 日志路径 /var/log/daemon.log


Jun 27 15:50:42 localhost dockerd-current: time="2017-06-27T15:50:42.338123424+08:00" level=fatal msg="Error starting daemon: Error initializing network controller: Error creating default \"bridge\" network: failed to parse pool request for address space \"LocalDefault\" pool \"\" subpool \"\": could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network"

原因:

启动 Docker 守护进程时 docker0 网桥未生成,可以采用手动新建网桥的方式解决,具体方法如下:

Ubuntu、Debian:


apt-get install bridge-utils -y
brctl show
brctl addbr docker0              #自定义网桥
ifconfig docker0 172.16.0.1/12   #给自定义网桥指定IP和子网
ifconfig docker0 up
systemctl start docker

Centos:


yum install bridge-utils -y
brctl show
brctl addbr docker0              #自定义网桥
ifconfig docker0 172.16.0.1/12   #给自定义网桥指定 IP 和子网
ifconfig docker0 up
systemctl start docker

Q02:命令 docker-compose up 报错?

如果云服务器绑定了公网则在执行命令 docker-compose up 时可能报如下异常:

此时可以用将云服务器的外网 IP 解绑的方式进行解决。将云服务器的外网 IP 解绑后再使用内网 + VPN的方式连接云服务器,后再次执行命令 docker-compose up。

Q03:使用相同私钥文件云服务器免密码互联失败?

A:

云服务器中默认没有私钥文件,因此免密码互联时无法进行公私钥配对,需要将下载的私钥文件上传到云服务器中/root/.ssh 路径下,将私钥文件名称修改为 id_rsa,执行 chmod 600 id_rsa 将私钥文件权限改为600即可。

Q04:本地命令方式连接云服务器权限错误?

A:

需要将私钥文件的权限改为600,然后执行命令 ssh root@IP -i 私钥文件再次连接。

Q05:如何测试云服务器网速?

A:

可以使用speedtest进行测速,具体可以参考容器测速

Q06:hostname 重启、修改规格后被还原?

A:

较早的镜像可能会出现此问题,目前线上镜像已经不存在此问题,出现此问题时可以使用同版本新镜像新建一个云服务器,然后用新建云服务器中的文件 /etc/cloud/cloud.cfg 替换问题云服务器中的 /etc/cloud/cloud.cfg 文件。

Q07:密钥认证异常,无法进入云服务器?

A:

出于安全考虑,目前 Linux 云服务器使用密钥验证的方式登陆,但是以下情况出现时需要通过 VNC + root 密码的方式进入服务器进行问题排查:

  • 系统内设置了防火墙,导致无法远程 SSH;
  • 挂载磁盘把配置写到了/etc/fstab 中,卸载磁盘没有删除配置导致进入修复模式;
  • 其他异常导致无法正常 SSH 进入系统的

如果已经创建密码,可以通过密码认证 ssh 连接服务器或者通过 VNC 进入服务器;
如果未创建密码密码遗忘,但系统目前无异常,可以通过控制台重置 Linux 密码,具体参考:重置 Linux 密码
如果重置密码出现异常,则需要进入单用户模式修改密码,不同版本系统进入单用户模式的方法不同,具体操作文档如下:

  1. Centos6.x 重置密码:点击下载文档
  2. Centos7.0 重置密码:点击下载文档
  3. Centos 7.2 重置密码:点击下载文档
  4. Debian 8.6 重置密码:点击下载文档
  5. Ubuntu 16.04 重置密码:点击下载文档

Q08:linux 云服务器 ping 不通?

A:

如果此时云硬盘是挂载的,且在云服务器中文件 /etc/fstab 中设置了开机自动挂载,此时可以通过云服务器实例的 VNC + 服务器密码的方式进入云服务器,云服务器未设置密码可以参考 Q7 进入单用户模式重置 root 密码,删除 /etc/fstab 中的云硬盘挂载项,保存配置文件后重启云服务器。 此问题主要出现在云硬盘已经更换但是 /etc/fstab 配置文件中仍有之前云硬盘开机自动挂载信息的情况。

如果仍有问题可以咨询我们售后技术支持

Q09:为何设置的防火墙规则不生效?

A:

遇到这种问题,首先确保您的防火墙规则顺序是没问题的,比如有些规则会拒绝所有连接,那么放行的规则就需要放在其规则之上,否则就会导致无法生效。其次,确保进程是运行的。举个例子:

[root@server ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Fri Oct 20 10:04:58 2017
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [19:1908]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A INPUT -s 10.173.32.7/32 -p tcp -m tcp --dport 3306 -j ACCEPT
COMMIT
# Completed on Fri Oct 20 10:04:58 2017

上述规则中 3306 端口就无法连通,需要将其放在放行 22 端口之下 REJECT 规则之上才可以。

Q09:为什么 VPC 开放了端口,还是无法连接到目标端口?

A:

可用区 B 在 VPC 放行了端口后,有些镜像是默认开启了系统防火墙,需要配置系统防火墙放行对应的端口。

Q10: 为什么云服务器文件没有了?

答: 通常情况下如果确认不是您自己删除或您的同事删除则99%是被黑了,首先检查下服务器有没有异常文件,另外在平时做好数据备份,避免数据丢失造成的不必要的损失,此外云服务器要做好安全防护,定期修复系统或软件漏洞等安全措施。

Q11: 为什么 SSH 连接服务器特别慢?

A:

这种情况请确保 SSH 配置文件中的 GSSAPIAuthentication 和 UseDNS 参数都为 no。

Q12:Cannot add dependency job for unit firewalld.service, ignoring: Unit is masked.

A:

服务遇到这种情况 unmask 下即可,以 firewalld 为例 systemctl unmask firewalld。

Q13:SSH 远程连接较慢?

A:

可以修改下 sshd 服务的配置文件 /etc/ssh/sshd_config ,将GSSAPIAuthentication 设置为 no ,UseDNS 设置为 no ,然后重启下 sshd 服务,再重新连接。