You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用gpg --search时出现Network unreachable错误的解决方法

GPG --search-key 报「Network is unreachable」错误的排查与修复

可能的问题根源

  • GPG默认使用的密钥服务器或协议(如HKPS)存在连接障碍,即便能ping通目标服务器也无法建立TCP连接
  • 系统防火墙/SELinux拦截了GPG的网络请求(ping基于ICMP协议,与GPG使用的TCP协议权限不同)
  • 配置文件拼写错误导致设置未生效(比如误写为dirnmgr.conf,正确文件名是dirmngr.conf)
  • DNS解析异常:ping使用的是缓存IP,但GPG解析密钥服务器时出现失败
  • 旧版本GPG存在协议兼容性问题

修复步骤

1. 临时指定密钥服务器与协议测试

直接在命令中明确指定密钥服务器和HTTP/HKP协议,绕过默认配置验证:

gpg --keyserver hkp://keys.openpgp.org --search-key xxx
# 或使用HTTP端口直接访问
gpg --keyserver http://keys.openpgp.org:80 --search-key xxx

如果此命令能正常执行,说明默认密钥服务器配置存在问题。

2. 修正并生效密钥服务器配置

首先确认配置文件名正确(是~/.gnupg/dirmngr.conf,而非dirnmgr.conf),编辑该文件添加以下内容:

keyserver hkp://keys.openpgp.org
standard-resolver
no-use-tor

保存后重启dirmngr服务使配置生效:

gpgconf --kill dirmngr
# 若使用systemd系统,也可执行
systemctl restart dirmngr

3. 检查防火墙与SELinux限制

  • 防火墙:临时关闭防火墙测试是否恢复正常:
    systemctl stop firewalld
    
    若恢复,需添加允许GPG联网的规则,例如:
    firewall-cmd --add-service=gnupg --permanent
    firewall-cmd --reload
    
  • SELinux:临时设置为宽容模式测试:
    setenforce 0
    
    若恢复,永久允许GPG联网:
    setsebool -P gnupg_use_network 1
    

4. 验证DNS解析是否正常

使用dirmngr自带工具测试密钥服务器的解析与连接:

dirmngr --debug-level guru --hostkeys keys.openpgp.org

查看输出中是否存在DNS解析失败、TCP连接被拒绝等信息,若有则需检查系统DNS配置(如/etc/resolv.conf)。

5. 升级GPG版本

如果使用的是较旧版本的GPG,可能存在协议兼容性问题,升级到最新稳定版后重试。

内容的提问来源于stack exchange,提问作者RubenLaguna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 10:18:22