Weave application networks can be integrated with an external host network, establishing connectivity between the host and with application containers running anywhere.

For example, returning to the netcat example, you’ve now decided that you need to have the application containers that are running on $HOST2 accessible by other hosts and containers.

On $HOST2 run:

host2$ weave expose

This command grants the host access to all of the application containers in the default subnet. An IP address is allocated by Weave Net especially for that purpose, and is returned after running weave expose.

Now you are able to ping the host:

host2$ ping

And you can also ping the a1 netcat application container residing on $HOST1:

host2$ ping $(weave dns-lookup a1)

Exposing Multiple Subnets

Multiple subnet addresses can be exposed or hidden using a single command:

host2$ weave expose net:default net:
host2$ weave hide   net:default net:

Adding Exposed Addresses to weaveDNS

Exposed addresses can also be added to weaveDNS by supplying fully qualified domain names:

host2$ weave expose -h exposed.weave.local

Routing from Another Host

After running weave expose, you can use Linux routing to provide access to the Weave network from hosts that are not running Weave Net:

ip route add <network-cidr> via <exposing-host>


  • <network-cidr> is an IP address range in use on Weave Net, for example, or and,
  • <exposing-host> is the address of the machine on which you ran weave expose.

Note: You must ensure that the IP subnet used by Weave Net does not clash with anything on those other hosts.

See Also