如何连接部署在AWS EC2实例上的远程HashiCorp Vault服务器
故障根因与解决方案
最核心的错误是Vault监听地址配置错误:AWS EC2的公网IP是AWS网络层面做的NAT映射地址,并没有直接绑定在EC2实例的操作系统网卡上,你在listener配置里直接填公网IP的话,Vault无法绑定到这个不存在的本地网卡地址,导致启动后根本没有监听8200端口,自然会返回连接拒绝。
按照以下步骤修改即可解决:
- 第一步:修改
vault.config的listener配置,将address改为0.0.0.0:8200(监听所有网卡,适合同时允许私网和公网访问),或者填EC2实例的私网IP(仅允许同VPC内访问,更安全),修改后参考配置如下:
backend "inmem" {} listener "tcp" { address = "0.0.0.0:8200" tls_disable = 1 } disable_mlock = true
- 第二步:重启Vault服务后,在EC2实例本地执行以下命令确认监听状态正常:
ss -tulpn | grep 8200
正常返回应该显示Vault进程监听在0.0.0.0:8200或者对应的私网IP:8200
- 第三步:检查EC2实例内部的防火墙规则,确认没有拦截8200端口:
- 若使用ufw防火墙:执行
ufw allow 8200/tcp放通端口 - 若使用iptables:执行
iptables -I INPUT -p tcp --dport 8200 -j ACCEPT放通端口
- 若使用ufw防火墙:执行
- 第四步:同VPC内的客户端建议使用EC2的私网IP访问Vault,修改本地VAULT_ADDR为
http://<EC2私网IP>:8200即可,公网访问再用公网IP。 - 额外校验:确认AWS安全组入站规则的源地址覆盖了客户端的IP段,若为同VPC访问,源地址填VPC的网段即可。
内容的提问来源于stack exchange,提问作者Tapan Hegde
相关产品推荐
相关产品推荐

