SmartDNS 无法启动排查_解决缺少OpenSSL 1.1.x

闲着没事,给路由器装个 SmartDNS。移动的 dns 太烂了。

结果 dns 列表配置好之后点运行。仍然提示:

SmartDNS - 未运行

SmartDNS - 未运行


那好吧。动手排查。

openwrt 没看 log 的地方。ssh 连上看看端口监听。

6053端口无监听

看来确实没跑起来。


step1

找一下程序装哪了。因为很多程序会在自己的路径下写 log

[root@Kwrt:01:25 AM /var/log] # which smartdns
/usr/sbin/smartdns

看来是装好了。


step2

直接运行看看

smartdns -v

然后就报错了:

Error loading shared library libssl.so.1.1: No such file or directory (needed by /usr/sbin/smartdns)
Error loading shared library libcrypto.so.1.1: No such file or directory (needed by /usr/sbin/smartdns)
Error relocating /usr/sbin/smartdns: SSL_CTX_set_default_verify_paths: symbol not found
Error relocating /usr/sbin/smartdns: EVP_DigestInit_ex: symbol not found
Error relocating /usr/sbin/smartdns: ERR_reason_error_string: symbol not found
Error relocating /usr/sbin/smartdns: SSL_SESSION_free: symbol not found
(省略一大堆)
Error relocating /usr/sbin/smartdns: SSL_CTX_set_verify: symbol not found
Error relocating /usr/sbin/smartdns: EVP_DecodeBlock: symbol not found

说人话就是:缺少 OpenSSL 1.1.x 库


step3

那先看看路由器装的哪一个版本

ls -la /usr/lib*/libssl.so.* 2>/dev/null
ls -la /usr/lib*/libcrypto.so.* 2>/dev/null

返回:

=== 现有SSL库 ===
-rw-r--r--    1 root     root        735044 Sep  2 01:22 /usr/lib/libssl.so.3
-rw-r--r--    1 root     root        735044 Sep  2 01:22 /usr/lib64/libssl.so.3
-rw-r--r--    1 root     root       4595856 Sep  2 01:22 /usr/lib/libcrypto.so.3
-rw-r--r--    1 root     root       4595856 Sep  2 01:22 /usr/lib64/libcrypto.so.3

step4

问题找到:路由器没 OpenSSL 1.1。

那就装一个解决:

opkg install nginx-ssl-util

step5

验证一下:

[root@Kwrt:01:19 AM /var/log] # openssl version
OpenSSL 1.1.1w  11 Sep 2023

[root@Kwrt:01:19 AM /var/log] # smartdns -v
smartdns 1.2022.36

✅ 问题搞定!

SmartDNS - 运行中

就职于重庆某互联网小作坊的工程师。

发表评论