设置Android模拟器的IP地址

时间:2013-03-11 23:25:46

标签: android android-emulator ip ip-address static-ip-address

我有一个场景需要启动具有特定IP地址的Android Emulator? 我可以像那样启动模拟器吗?

我不想进行IP转发或其他工作,因为在模拟器中运行的Android程序在启动时将使用启动时存在的Android Emulators IP地址进行配置。

默认情况下,模拟器的IP地址是10.0.2.15,我需要更改。 此外,此Ip在init.goldfish.rc和init.goldfish.sh中设置。 如果我改变它们,那么android的ip仍然是10.0.2.15。

1 个答案:

答案 0 :(得分:2)

我这样做了:

在Android模拟器中,如果你执行ifconfig,那么你会看到bridge,eth0& eth1作为网络设备。其中bridge的10.0.2.15为ip,eth0为up但没有任何ip,eth1在没有任何ip的情况下关闭。

现在在您的主机上创建一个TAP和Bridge设备,并将您的TAP设备与您主机上的任何工作以太网卡连接起来。

可以按照以下步骤创建TAP设备(tap1)和带有eth0的桥接(br1):

$sudo ip tuntap add dev tap1 mode tap
$sudo ip link show dev tap1
$sudo brctl addbr br1
$sudo brctl addif br1 tap1
$sudo brctl addif br1 eth0
$sudo ip link set eth0 up
$sudo ip link set br1 up
$sudo brctl show

现在,一旦您的TAP启动,并且您的eth1连接到任何dhcp服务器,请启动dhcp服务器。 启动dhcp服务器后,使用以下命令运行模拟器:

$sudo ./emulator -avd <avd_name> -qemu -net nic,vlan=1 -net user,vlan=1,hostname=<hostname_you_want> -net nic,vlan=2,macaddr=<mac_id_of_eth1_of_android_emulator> -net tap,ifname=tap1,script=no,vlan=2

在你的android模拟器shell中运行命令:

$netcfg

您应该能够通过ip 0.0.0.0查看eth1,现在在命令下运行以显示eth1:

$netcfg eth1 dhcp

瞧!你有从ip服务器分配的ip地址的eth1。

让我知道它是否有效!!!

现在如果你在外部服务器ip地址的android模拟器开放端口有任何程序,它将通过主机的eth0到外部服务器。