proxy-go support for IGD
I tried using the proxy-go in two setup, one on a laptop behind NAT, the other on a server with its own restrictive firewall.
In both cases the NAT type was detected as "restricted". My understanding is that at most one end of the connection can be restricted, so a restricted proxy can't talk to a restricted client. Getting an unrestricted NAT is better as it's compatible with more clients.
To that effect, proxy-go could use IGD to ask the NAT to create a dynamic port forwarding so it is effectively unrestricted. This would help with the laptop situation (assuming the router doing NAT supports IGD, which mine does), and using something like miniupnp, it would also be possible to dynamically open ports on a local, restrictive, firewall.