Я написал Java-сервер для прослушивания порта 49474. Мой клиент работает на телефонах Android по всей территории США. . Конечно, они будут подключаться из разных сетей: дома, на работе, в школе, в библиотеке, McDonalds. Трафик между сервером и клиентом через сокет Java, передающий необработанный JSON.
Кто-то сказал мне, что я должен использовать порт 80 или 443 И что мой трафик должен быть фактическим трафиком HTTP, иначе маршрутизаторы / брандмауэры обнаружат, что мой трафик не является трафиком HTTP, и сбросят его.
Насколько часто сетевой администратор блокирует подключения к портам в диапазоне, в котором находится мой порт?
Кроме того, если я просто переключу номер порта на 443, маршрутизатор / брандмауэр обнаружит, что мой трафик не HTTP-трафик и блокировка даже на известном порту?
Блокируют ли сетевые администраторы исходящий трафик на незнакомые порты?
Да.В большинстве управляемых сетей, вероятно, будет брандмауэр, который ограничивает исходящий трафик в соответствии с локальными политиками и для предотвращения злоупотреблений. Фактические конфигурации будут отличаться, но вы не можете повсеместно полагаться на открытый необычный порт.
Кроме того, если я просто переключу номер своего порта на общий номер порта, такой как 80 или 443, маршрутизатор / брандмауэр обнаружит, что мой трафик это не HTTP (S) трафик и заблокировать его?
Даже общие номера портов могут быть заблокированы, и это единственный способ, которым пользователи могут получить доступ в Интернет через прокси-сервер , который сможет распознавать действительные HTTP-запросы.
Когда веб-порты действительно открыты и к Интернету можно получить прямой доступ, брандмауэр все еще может использовать глубокую проверку пакетов , чтобы разрешить только действительный HTTP через порт HTTP, хотя у меня сложилось впечатление, что DPI не так распространен, как прокси-сервер.
Рекомендация: у вас будет наибольшая переносимость, если вы используете общий веб-порт для своего сервера, и ваше приложение должно соблюдать настройки прокси и использовать HTTP (S).
Короткий ответ это зависит . Как и в случае с почтовыми серверами, администратор удаленной сети решает, какой трафик принимать, а что запрещать.
Это правда, что некоторые сети не позволяют произвольные соединения изнутри наружу. Я установил те, которые работают, и те, которые нет, в зависимости от требований безопасности клиента.
Если ваш трафик может законно обрабатываться через HTTP / HTTPS (вы говорите, что это JSON, но если я не ошибочно, JSON - это протокол содержимого, а не транспортный протокол), а сервер работает на порте 80/443, вы увеличиваете свои шансы на попадание людей на ваш сервер. Если вы отойдете от стандартного порта, меньше клиентов сможет связаться с вами. Если вы используете нестандартные протоколы на стандартных портах, меньше клиентов сможет связаться с вами.
Что вам действительно нужно знать, так это процент клиентов, которые не смогут связаться с вами, и я не знаю ни одной опубликованной работы, позволяющей это количественно оценить. Но в настоящий момент я не вижу причин, по которым вы не запускали эту службу, используя стандартный транспортный протокол на его стандартном порту, и пока вы не установите, что у вас есть такая уважительная причина, вы будете глупо не соблюдать стандарты.