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

Android主机用qemu-system-aarch64运行Alpine虚拟机时DNS解析故障求助

解决Alpine Linux在QEMU aarch64(Android Termux)中DNS解析失败问题

核心问题定位

QEMU用户网络后端默认的10.0.2.3 DNS转发服务,在Android Termux环境下可能因主机网络权限限制或转发生效逻辑异常,无法将Alpine的DNS请求正常转发到公网服务器,导致wget: bad address 'mirrors.alpinelinux.org'报错。

可行解决方案

1. 强制锁定Alpine的DNS配置

进入Alpine启动后的命令行环境,先手动覆盖DNS配置并锁定,再执行setup-alpine:

# 写入公网DNS地址
echo -e "nameserver 1.1.1.1\nnameserver 8.8.8.8" > /etc/resolv.conf
# 锁定文件防止setup-alpine自动修改
chattr +i /etc/resolv.conf
# 执行安装流程
setup-alpine
# 安装完成后解锁文件(可选)
chattr -i /etc/resolv.conf

2. 调整QEMU启动参数,强制指定DNS并优化网络后端

在Termux的QEMU启动命令中,明确指定DNS同时使用virtio-net-pci设备(部分场景下比virtio-net兼容性更好):

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -M virt \
-drive file=alpine.img,format=raw \
-netdev user,id=n0,dns=1.1.1.1,hostfwd=tcp::2222-:22 \
-device virtio-net-pci,netdev=n0 \
-nographic

3. 用网桥模式共享Android主机网络(需Termux root权限)

如果Termux拥有root权限,直接让QEMU挂载主机的网络接口,绕过用户网络的DNS转发限制:

# 安装iproute2工具
pkg install iproute2
# 创建网桥并绑定主机无线网卡
ip link add name br0 type bridge
ip link set br0 up
ip link set wlan0 master br0
# 网桥模式启动QEMU
qemu-system-aarch64 -m 2048 -cpu cortex-a57 -M virt \
-drive file=alpine.img,format=raw \
-netdev bridge,id=n0,br=br0 \
-device virtio-net-pci,netdev=n0 \
-nographic

此模式下Alpine会自动获取与Android主机同网段的IP,DNS配置直接继承主机设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:12:56