irungentoo / toxcore

The future of online communications.
https://tox.chat/
GNU General Public License v3.0
8.74k stars 1.27k forks source link

Nodes on port 80,443,..., to work around firewalls #1523

Open mrkiko opened 8 years ago

mrkiko commented 8 years ago

I know this isn't a "project issue" in the real sense: nodes are run by volunteers and to them goes my gratitude. So take this as a technical stance, not an "issue" or a "report2.

the problem, from my perspective, is: if we want to replace Skype we should be able to cope with TCP-only newtowkr, and networks that don't allow outgoing connections on "arbitrary" ports. If Tox starts getting used really and by a lot of people, there will be a lot of situations (in my opinion9 where we'll need to work with this. So I think we should think about having more and more nodes running on usually-permitted ports. It' not clean nor nice maybe, but this seems the norm.

Well-accepted ports from my experience: I list here the purposes of the ports to give an idea of why I think these ports are mostly allowed.

this is only what I found, so take it as an example.

Thank you for your great work guys.

LuccoJ commented 8 years ago

Keep in mind that working around firewalls this way may result in sysadmins banning Tox from their networks completely. When sysadmins limit ports, they generally mean it.

mrkiko commented 8 years ago

... Oh, I wasn't referring to working around network restrictions (even if I apreciate it often I should say :D ). But to make tox usable. various software uses well-known ports simply because they end up "working". Look at what Telegram does for example. Or Skype. Then sysadmins can ban Tox from their network anyway probably. I think weneed to be pragmatic in this case. :D Thank you.

ProMcTagonist commented 8 years ago

may result in sysadmins banning Tox from their networks completely.

if they're able to we've failed our users

LuccoJ commented 8 years ago

"Able to"? It's not like Tox is a stealthy app that hides itself... and the normal protocols that run on those ports can be distinguished from Tox.

ProMcTagonist commented 8 years ago

not like Tox is a stealthy app that hides itself

Yet. Traffic disguising has been discussed in the past. But we're drifting off-topic.

ananace commented 8 years ago

If we're talking common ports that often aren't blocked for outgoing traffic, port 53 (UDP and TCP) is a good candidate. Not many people block DNS access after all.

fcore117 commented 8 years ago

LuccoJ: tox should work even if someone "sysadmin" try to block tox or else censored countries will use those ways. Only way to block tox should be takedown of whole internet link. Old times i remember that skype was reallly really hard to block.

LuccoJ commented 8 years ago

@fcore117 It's an endeavour I could get behind, just keep in mind that it's very difficult to make traffic from something like Tox completely opaque and indistinguishable from other types of traffic. It would be a much bigger job than just letting Tox run on 80 or 443.

optimumtact commented 8 years ago

At the very least offering some tox nodes running on well known unblocked ports will help users behind restrictive corporate firewalls.

ElLamparto commented 8 years ago

IMHO, first of all the Tox ports should be clearily defined on tox.chat. Then they should be configurable.

ghost commented 8 years ago

IIRC Tor nodes are TCP 443 by default. And many proxies are only allowing TCP 80 and 443.

LittleVulpix commented 8 years ago

When you get the bootstrap daemon, assuming you don't change anything, the ports that are set by default are 33445, 443 and 3389.

ElLamparto commented 8 years ago

@LittleVulpix, tcp, udp or both ? All three are required ?

GrayHatter commented 8 years ago

no, it just tries for all three. if you're running a bootstrap node, you REALLY SHOULD use both. But if you can only UDP that's fine

ElLamparto commented 8 years ago

@GrayHatter, Thanks!

  1. Some information on how to run a bootstrap node would be useful,
  2. A small, discrete indicator on the GUI, showing if the port is open / incoming connections accepted, would be useful too.
LittleVulpix commented 8 years ago

@ElLamparto

https://wiki.tox.chat/users/runningnodes + https://github.com/irungentoo/toxcore/tree/master/other/bootstrap_daemon how to run a node and https://nodes.tox.chat/ to see which ports/protocols are used on a node. Green = all good, Orange= UDP disabled, Red = down. Click on each row to see all the ports advertised/available by the node, not just the "main" port.

You can contact @Impyy to add you to the node list once you have a running node.