github.com/decred/dcrlnd@v0.7.6/docs/nat_traversal.md (about)

     1  # NAT Traversal
     2  
     3  `dcrlnd` has support for NAT traversal using a number of different techniques.
     4  At the time of writing this documentation, UPnP and NAT-PMP are supported. NAT
     5  traversal can be enabled through `dcrlnd`'s `--nat` flag.
     6  
     7  ```shell
     8  $ dcrlnd ... --nat
     9  ```
    10  
    11  On startup, `dcrlnd` will try the different techniques until one is found that's
    12  supported by your hardware. The underlying dependencies used for these
    13  techniques rely on using system-specific binaries in order to detect your
    14  gateway device's address. This is needed because we need to be able to reach the
    15  gateway device to determine if it supports the specific NAT traversal technique
    16  currently being tried. Because of this, due to uncommon setups, it is possible
    17  that these binaries are not found in your system. If this is case, `dcrlnd` will
    18  exit stating such error.
    19  
    20  As a bonus, `lnd` spawns a background thread that automatically detects IP
    21  address changes and propagates the new address update to the rest of the
    22  network. This is especially beneficial for users who were provided dynamic IP
    23  addresses from their internet service provider.