Ответ 1
Хорошо, я нашел ответ. Иногда вы просто не видите лес для деревьев.
Во-первых, обработка заблокированных портов тривиальна. Простой try/catch
делает трюк. Я был просто смущен тем, как Chrome показал это исключение и не сразу распознал его как таковое (я обычно использую Firefox).
Во-вторых, Спецификация API WebSockets явно указывает, что
Если порт представляет собой порт, на который пользовательский агент настроен на блокировку доступа, затем выведите исключение SECURITY_ERR. (Пользовательские агенты обычно блокируют доступ к известным портам, таким как SMTP.)
В каких портах подразумевается именно то, что похоже на реализацию Websocket браузера. Мои тесты показали, что Chrome и Safari блокируют следующие порты (были протестированы только порты ниже 1024):
- 1: TCPMUX
- 7: Протокол эхо-сигнала
- 9: Отменить протокол
- 11: служба systat
- 13: Дневной протокол
- 15: служба Netstat
- 17: Цитата дня
- 19: Протокол генератора символов
- 20: FTP
- 21: FTP
- 22: SSH
- 23: Telnet
- 25: SMTP
- 37: протокол TIME
- 42: nameserver/WINS
- 43: WHOIS
- 53: DNS
- 77: Служба RJE
- 79: Finger
- 87: link
- 95: supdup
- 101: имя хоста NIC
- 102: ISO-TSAP
- 103: gppitnp
- 104: ACR/NEMA
- 109: POP2
- 110: POP3
- 111: SunRPC
- 113: ident
- 115: SFTP
- 117: Служба путей UUCP
- 119: NNTP
- 123: NTP
- 135: Microsoft EPMAP
- 139: Служба сеансов NetBIOS
- 143: IMAP
- 179: BGP
- 389: LDAP
- 465: протокол Cisco
- 512: comsat
- 513: rlogin
- 514: Syslog
- 515: Датчик линейного принтера
- 526: темп
- 530: RPC
- 531: IRC
- 532: netnews
- 540: UUCP
- 556: RFS
- 563: NNTPS
- 587: SMTP
- 601: неизвестно
- 636: LDAPS
- 993: IMAPS
- 995: POP3S
Связанные службы берутся из списка номеров портов TCP и UDP на Wikipeda.