# dhclient error while loading shared libraries libdns-export.so.1102
Date: 2020-08-25


- 环境：
    
    - cenos7(X86\_64)
- 问题：
    
    网站显示无法链接数据库，重启后发现无法链接服务器,通过管理端登录服务器 `/var/log/messages`显示
    

```bash
  dhclient: error while loading shared libraries: libdns-export.so.1102:
  cannot open shared object file: No such file or directory
```

- 修复：
    
    需要root权限
    

```bash
 # ldconfig
 # dhclient --help
 # systemctl restart NetworkManager.service
 # ip -a
```

- 其他

查找过程及问题：

1. 由于前一阵刚好在服务器上增加了防火墙相关配置，所以当时开始一直判断是防火墙设置问题。关闭防火墙后仍无法访问。
2. 排除防火墙问题后，查看了下网络配置发现eth0没有相关IP信息。
3. 在到/var/log/messages中查看错误信息，最终通过error定位到dhclient错误.

当然还是决定改为静态方式配置IP， 我用的是`eth0`, 修改下面配置即可

```C
/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=XXX.XXX.XXX.XXX
NETMASK=255.255.255.0
GATEWAY=XXX.XXX.XXX.XXX
DNS1=XXX.XXX.XXX.XXX
```

- 相关Bug

[Bug 1726534](https://bugzilla.redhat.com/show_bug.cgi?id=1726534) 与我遇到的问题一样, 大致的意思说就是说安装一些库的时候, 比如`libapr`虽然安装失败，导致 `/etc/ld.so.cache` 保存的是老版本`libdns-export.so.100` 不是新版本的`libdns-export.so.1102` 导致`dhclient`载入`libdns-export.so.1102`失败， 通过`ldconfig`重新更新一下 `/etc/ld.so.cache`即可。

[serverfault.com-Cannot Access My Google VM after reboot](https://serverfault.com/questions/985784/cannot-access-my-google-vm-after-reboot)

