Использование HTTP-порта для обхода брандмауэра - PullRequest
2 голосов
/ 08 октября 2010

Я создаю клиент-серверное приложение, которое взаимодействует через собственный протокол сокетов.Мне бы хотелось, чтобы клиент был применим из сетей, в которых установлен ограничительный брандмауэр (корпоративный, школьный и т. Д.).Обычно это делается путем подключения через HTTP, поскольку это всегда доступно.

Если я хочу это сделать, действительно ли мне нужно использовать HTTP или достаточно использовать мой собственный протокол через порт сервера 80?

Ответы [ 3 ]

4 голосов
/ 08 октября 2010

Брандмауэр может иметь больше ограниченных проверок, чем просто ограничение портов, и у вас также могут быть прокси на этом пути, и они будут работать с HTTP.

Тем не менее, используя известный порт для чего-то другого, кромеего обычное использование по-прежнему намного лучше, чем у многих схем, которые по своей сути делают не HTTP-компоненты по HTTP и по сути реализуют RFC 3093 (когда люди реализуют RFC-коды от April Fools, обычно это сочетание юмора и технической проницательности, RFC 3093 является исключением).

Чтобы обойти проблему с прокси, вы можете использовать 443, а не 80, поскольку трафик HTTPS не может быть проксирован таким же образом.Действительно, вам часто даже не нужно использовать SSL, поскольку прокси-сервер просто предположит, что они его не видят.

Хотя с вашим приложением ничего этого не нужно делать.Ваше приложение должно сделать так, чтобы его порт был настраиваемым (это должно быть сделано с любым серверным приложением в любом случае).По умолчанию должно быть что-то далеко от известных портов, но системный администратор сможет использовать 80 или 443 или что-то еще, если им нужно.

0 голосов
/ 10 октября 2010

Вам лучше было бы исследовать туннелирование с помощью SSH. Он предназначен именно для этого. HTTP-прокси вряд ли будет работать по ряду причин, в том числе приведенных в других ответах.

0 голосов
/ 08 октября 2010

Если это собственный протокол сокета, то это не HTTP.

Но вы все равно можете использовать TCP на порте 80 для выхода из брандмауэра, но тогда вам придется справиться и с ситуацией с прокси.Прокси-серверы поддерживают HTTP, и пользовательский TCP может не работать, и они, вероятно, не будут пересылать ваши запросы.

Я не знаю, по каким причинам вы хотите это сделать (легально или нет), но есть программное обеспечение,используются для обхода фильтрации в таких странах, как Иран.Одна из программ (Haystack) использует сложное шифрование, чтобы маскировать запрос как невинно выглядящий пакет.

...