如何从其他设备访问Kali Linux上运行的LocalStack?
解决LocalStack无法通过主机IP访问的问题
问题根源
你的LocalStack容器端口仅绑定在主机的127.0.0.1回环地址上,同时环境变量配置存在语法错误,导致只能通过localhost访问,无法通过主机对外IP地址访问。
具体修复步骤
1. 修改端口映射配置
在docker-compose.yaml的ports段中,将绑定127.0.0.1的核心端口改为绑定主机所有网卡(0.0.0.0),让外部能通过主机IP访问:
ports: - "0.0.0.0:4566:4566" # LocalStack Gateway,绑定所有网卡 - "0.0.0.0:4510-4559:4510-4559" # 外部服务端口范围 # Pro版专属端口若无需对外访问,可保留127.0.0.1绑定 - "127.0.0.1:53:53" # DNS配置(仅Pro版需要) - "127.0.0.1:53:53/udp" # DNS配置(仅Pro版需要) - "127.0.0.1:443:443" # HTTPS网关(仅Pro版需要)
2. 修正环境变量并添加监听配置
原配置中HOSTNAME_EXTERNAL-localstack是语法错误,需改为HOSTNAME_EXTERNAL=localstack,同时添加LOCALSTACK_BIND_ADDRESS=0.0.0.0让LocalStack服务监听容器内所有接口:
environment: - DEBUG=${DEBUG-} - PERSISTENCE=${PERSISTENCE-} - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-} - LOCALSTACK_API_KEY=${LOCALSTACK_API_KEY-} # 仅Pro版需要 - DOCKER_HOST=unix:///var/run/docker.sock - LOCALSTACK_BIND_ADDRESS=0.0.0.0 - HOSTNAME_EXTERNAL=localstack
3. 重启容器生效配置
执行以下命令重启LocalStack容器:
docker-compose down docker-compose up -d
4. 测试主机IP访问
用主机IP执行AWS命令验证:
aws --endpoint-url=http://10.xxx.xxx.xxx:4566 s3 ls
额外检查项
- 确认Kali Linux主机防火墙(如
ufw)已放行4566端口:sudo ufw allow 4566/tcp - 确保主机IP
10.xxx.xxx.xxx在局域网内是可达状态。
内容的提问来源于stack exchange,提问作者Scott McReynolds
相关产品推荐
相关产品推荐

