[Twisted-Python] Punching a firewall with Twisted?
wertiges.produkt at googlemail.com
Thu Jun 17 12:37:32 EDT 2010
Hi Glyph! (Wait, is that really a first name...? :))
> I'm not sure about Deluge, but <http://divmod.org/trac/wiki/DivmodVertex> does some NAT hole-punching. It does it via sending UDP packets though, not by communicating directly with your router.
Yeah, I found that too... it looks quite interesting, but as you say, it
is UDP-based. I know that there is a working TCP-solution. As I said,
Deluge does it, and for example, the original Bittorrent client does it too.
I actually verified this on my machine: With a trick, I can exploit
these clients for my purposes.
I open a server socket in my own program on port 15667. Then I start
Bittorrent. It complains because it can't open the server socket - but
it does open the firewall, and the firewall stays open as long as the
application runs. So voila, I can now access my server from outside. It
is actually open right now, you can try if you like:
telnet 18.104.22.168 15667
> Good luck; this is always an interesting problem ;).
Yeah... it's actually something that begins to really annoy me. Why are
we put behind these firewalls? And why is it so complicated to open
ports on them? It shouldn't be. Let's change that. We have the means!
Every internet user should be able to run a server. This is my credo!
More information about the Twisted-Python