Skip to content

Network Management

DroidVM provides a virtual Bridge Network with support for NAT, DHCP, STP, VLAN, and IPv4/IPv6. Switch to the Network tab on the main screen to manage it.

A VM connects by selecting an already-configured network in the VM network tab.

Network list

📷 Screenshot placeholder: network list

Creating / Editing a Network

Tap create or edit to enter the network configuration.

Cannot edit while running

A running network cannot be edited (the UI shows a banner and disables saving). Please stop the VMs using this network first.

Common Settings

FieldMeaningOptions
NameNetwork name, uniqueRequired
Bridge nameLinux interface name, ≤12 chars, starts with a letterAuto-suggests br+8 digits
Auto-enable on startupBring up the network automatically on bootToggle
STPSpanning Tree ProtocolToggle
Bridge typeLinux bridge (default) / gVisor bridge
External connection modeLayer-2 Bridging (L2) / Layer-3 Routing (L3, default)

How to choose the bridge type

  • Linux bridge: good performance, supports more features such as secondary networks, but some capabilities like IPv6 SNAT are limited
  • gVisor bridge: a user-space network stack supporting IPv6 SNAT and IPv6 Port Forwarding; L3 mode only

L2 · Layer-2 Bridging Mode

The VM connects directly to the upstream Layer-2 network and resides on the same subnet as the host.

FieldMeaning
Uplink interfaceWi-Fi / Ethernet / tethering / a specific physical device
Pseudo-bridgeForced on and locked for uplinks that cannot be bridged directly (e.g. Wi-Fi); optional for bridgeable uplinks

The host acts as a router and the VM goes out via NAT. This is the most commonly used mode with the best compatibility.

FieldMeaning
Bridge MACCan be randomly generated

VLAN Cards

In L3 mode, subnets are defined via VLAN cards. Each VLAN card can be configured with:

FieldMeaning
VLAN ID0 = Untagged domain
Primary IPv4 network CIDRe.g. 10.181.7.1/24 (a non-conflicting 192.168.N.1/24 is auto-picked at creation)
IPv4 SNATIPv4 outbound NAT (Port Forwarding depends on this)
DHCPv4Once enabled, set the address pool start/end offset (default 128 / 192)
IPv6 sourceStatic CIDR / DHCP-PD (gVisor does not support PD)
Primary IPv6 network CIDRe.g. fd00:7::1/64 (when static)
PD uplink interface / DUIDIn DHCP-PD mode (leave DUID blank to auto-generate)
IPv6 SNATAvailable only with the gVisor bridge
DHCPv6Once enabled, set the address pool start/end offset
SLAAC::/64 stateless address autoconfiguration
Secondary IPv4/IPv6 networksComma-separated (Linux bridge only)
DNS serversComma-separated (leave blank to follow the system DNS)

Network edit

📷 Screenshot placeholder: L3 network / VLAN card configuration


Port Forwarding

Port Forwarding is set per VM in the VM's NIC configuration (under DHCPv4 / DHCPv6 static assignment).

Format: one per line, [protocol] host-port:guest-port

22:22            # tcp+udp, host 22 → guest 22
tcp 8080:80      # tcp only
8000-9000:8000-9000   # port range

Conditions to take effect

  • Port Forwarding requires SNAT to be enabled on the owning network
  • IPv6 Port Forwarding additionally requires the gVisor bridge

Save Validation and Network Info

On save, the following are validated: name / bridge name uniqueness, valid CIDR, and non-overlapping subnets (including across networks). After saving, if the daemon already knows this network, the update is pushed in sync.

The Network Info page shows the network's run state and network-tool logs, useful for troubleshooting connectivity issues.

Network info

📷 Screenshot placeholder: network info / status

Released under the GNU GPL v3.0 License