github.com/mit-dci/lit@v0.0.0-20221102210550-8c3d3b49f2ce/nat/upnp.go (about) 1 package nat 2 3 import ( 4 "context" 5 6 "github.com/mit-dci/lit/logging" 7 8 UpnP "github.com/NebulousLabs/go-UpnP" 9 ) 10 11 func SetupUpnp(port uint16) error { 12 // Connect to router 13 deliver, err := UpnP.DiscoverCtx(context.Background()) 14 if err != nil { 15 logging.Fatalf("Unable to discover router %v\n", err) 16 } 17 // Get external IP 18 ip, err := deliver.ExternalIP() 19 if err != nil { 20 logging.Fatalf("Unable to get external ip %v\n", err) 21 } 22 logging.Infof("Your external IP is %s", ip) 23 // Forward peer port 24 err = deliver.Forward(uint16(port), "lnd peer port") 25 if err != nil { 26 logging.Fatalf("UpnP: Unable to forward pear port ip %v\n", err) 27 } 28 return nil 29 }