Netplan Configuration Generator
Build a bounded, review-only netplan YAML file for one interface from explicit fields.
This tool handles input and primary processing in your browser and is designed not to send the input to QuickKit’s server.
Avoid live production secrets; use dummy or masked data where possible. Data handling details
Generated netplan configuration
Notes
How it works
Targets netplan 0.104+ (Ubuntu 22.04 LTS and later). Default routes are always written as a `routes:` list entry (needs netplan 0.103+); this generator never emits the deprecated `gateway4`/`gateway6` keys. A VLAN adds a stub `ethernets:` entry for the parent link plus a `vlans:` entry for the tagged interface, because netplan requires the link device to be defined.
IPv6 "None" configures no IPv6 on this interface: it writes `dhcp6: false`, `accept-ra: false`, and `link-local: []`, so the interface runs no DHCPv6 client, ignores Router Advertisements, and has no IPv6 link-local address (netplan enables IPv6 link-local when `link-local` is omitted). `link-local: []` also covers IPv4 link-local, which this generator never enables, so IPv4 addressing is unchanged. With the networkd renderer netplan writes `LinkLocalAddressing=no`. Its NetworkManager back end ignores `link-local` for IPv6 and would leave IPv6 to the kernel (`ipv6.method=ignore`), so with that renderer the YAML also sets `ipv6.method: "disabled"` through `networkmanager.passthrough`. NetworkManager does not accept IPv6 DNS servers on such a connection, so with that renderer they are refused while IPv6 is "None"; IPv4 DNS servers are fine.
None of this is the kernel's `disable_ipv6` sysctl: the output does not write it, system-wide or per interface. IPv6 "None" applies only to the interface being configured (the VLAN interface when a VLAN is set) and does not disable IPv6 on any other interface, including a VLAN's parent link. Static, Auto, and DHCP leave `link-local` unset and keep the IPv6 link-local address they need.
netplan's NetworkManager back end also maps two other methods differently from networkd, so with that renderer the YAML corrects them through `networkmanager.passthrough`. IPv4 "None" sets `ipv4.method: "disabled"`; netplan alone would write `ipv4.method=link-local` and bring up a 169.254/16 address.
The VLAN parent stub is handled separately from the methods you choose: with this renderer it always gets `ipv4.method: "disabled"`, but its IPv6 stays netplan's `ipv6.method=ignore`. `ignore` does not disable IPv6; NetworkManager leaves the parent's IPv6 to the kernel, so depending on kernel settings and other network configuration the parent can still have an IPv6 link-local address and process Router Advertisements. The parent is therefore not guaranteed to be a layer-2-only link. With the networkd renderer the stub is unchanged (netplan writes `LinkLocalAddressing=ipv6`).
IPv6 "Auto" sets `ipv6.method: "auto"`; netplan alone ignores `accept-ra` and writes `ipv6.method=ignore`, or `manual` with no address when an IPv6 DNS server is given, which NetworkManager rejects. With either renderer, Auto uses Router Advertisements and starts DHCPv6 when the router's flags ask for it (networkd `IPv6AcceptRA=yes`). With IPv4 "None", IPv6 "Auto", and no IPv6 DNS server, netplan would drop the search domains, so they are passed as `ipv6.dns-search`. NetworkManager does not accept IPv4 DNS servers on a connection whose IPv4 is disabled, so with that renderer they are refused while IPv4 is "None". The networkd renderer output does not change.
This page only renders YAML text: it does not run `netplan apply` or `netplan try`, does not read or merge any existing `/etc/netplan/*.yaml` file, and does not contact a host. Review the output and the target netplan version before applying it.