Номер порта tcp
Содержание:
- Как работает TCP соединение
- Кому нужны доступные порты[править]
- Как проверить открытые порты в Linux. Как узнать, какая служба прослушивает порт
- Что такое порты компьютера . Хотите полюбоваться на них?
- Порты для видеосигнала
- Стандартные средства системы
- Как открыть или заблокировать порт TCP или UDP
- Практика¶
- Как проверить, открыт ли порт для подключения
- Уровень приложения
Как работает TCP соединение
Соединение отправителя и получателя (два узла) происходит так:
1. Отправитель отсылает получателю специальный пакет, именуемый SYN, т.е. пригашает к соединению2. Получатель отвечает уже пакетом SYN-ACK, т.е. соглашается3. Отправитель отсылает спец. пакет ACK, т.е. подтверждает, что согласие получено
На этом TCP-соединение успешно установлено и получатель с отправителем могут спокойно обмениваться информацией. При передаче все пакеты данных нумеруются, отсылаются подтверждения о получении каждого из них, а потерянные пересылаются заново.
TCP порты
На каждом компьютере установлено, как минимум несколько программ. И сразу несколько из них могут обмениваться информацией, как же их различать? Именно для этого и были придуманы TCP порты, это по сути уникальный идентификатор соединения между двумя программами.
Номер порта — это число от 0 до 65535 в 16 битном формате, оно указывает какому именно приложению предназначается определенный пакет данных. Т.е. позволяет различным программам, работающим на одном компьютере, независимо друг от друга отправлять и получать информацию.
Есть целый ряд уже зарезервированных портов, которые являются стандартом:
Также, стоит отметить, что порты данного протокола никак не пересекаются с такими же, но у UDP. Так, например, порт: 1234 не пересечется с таким же, но у UDP.
В заключение
Вот вы и узнали, что это такое, постарался написать, как можно более понятно, без лишних терминов. Главное знать, как это работает и серфинг в интернете станет еще куда интереснее.
Кому нужны доступные порты[править]
Это зависит от программ, которыми вы пользуетесь:
- программы-клиенты, такие как веб-браузер или почтовая программа, всегда сами начинают соединения к другим компьютерам, поэтому порта прослушивания у них нет вообще;
- программы-серверы, например веб-сервер или ftp-сервер, имеют свои порты прослушивания, на которых они ждут соединений, инициируемых клиентами. Если вы хотите, чтобы к вашему серверу могли обращаться из Интернета, эти порты надо обязательно сделать доступными;
- P2P программа, например битторрент-клиент, одновременно и ждёт приглашений к соединениям (как сервер), и сама инициирует соединения к другим P2P клиентам. Поэтому делать её порт прослушивания доступным в принципе не обязательно, но очень желательно. Подробнее — см. Порт в битторрент клиенте.
Как проверить открытые порты в Linux. Как узнать, какая служба прослушивает порт
Для Linux тоже есть команда netstat, но она, вроде как, теперь считается устаревшей и на её замену рекомендуется команда ss. Показываемая информация у ss и netstat очень похожи. Даже основные опции идентичны.
Итак, для вывода открытых портов TCP и UDP протоколов вместе с показом процессов, которые их прослушивают, используется команда:
sudo ss -tulpn
Чтобы вывести список установленных соединений для портов TCP и UDP, используйте команду:
sudo ss -tupn
Больше опций, а также больше способов найти, какие порты прослушиваются, смотрите в статье «4 способа узнать, какие порты прослушиваются в Linux».
Что такое порты компьютера . Хотите полюбоваться на них?
Со списком распространённых портов вы знакомы, однако некоторые сервисы вполне могут использовать порт, по умолчанию назначенный не для них. Или же, что не редкость, открытые порты применяются в качестве лазейки для злоумышленника. Так что, если вы решили самостоятельно менять настройки портов, нужно убедиться, что законопослушные клиент и сервер найдут друг друга. В противном случае стоит позволить Windows заблокировать порт, настроить блокировку в роутере или понадеяться на провайдера, который частенько порты блокирует ещё на излёте, особо клиентуру о том не спрашивая.
Вы можете прямо сейчас посмотреть на своём компьютере, какие порты чем занимаются. Наберите в терминале:
и крутите мышкой до конца. Вот они во всей красе.
В Кали Линукс полезная во всех смыслах nmap тоже может отобразить их список:
Если вы читаете эту статью в Windows, чтобы посмотреть сейчас открытые порты, запустите консоль команд от имени администратора cmd и выполните в ней команду:
Однако более развёрнуто работающие в Windows порты вам откроет небольшая программка с названием Process and port analyzer, которую можно легко скачать в сети. Она просто и доходчиво объяснит, какие порты сейчас открыты и какие программы эти порты слушают. Вот одна из вкладок утилиты:
С помощью программы легко можно проверить местонахождение этого процесса в системе и определиться, насколько он безопасен.
Порты для видеосигнала
RCA (композитное видео)
Один из самых старых примеров видеовхода. Композитный интерфейс изобрали еще в пятидесятых годах прошлого века — тогда, когда появились первые цветные телевизоры. Многие старые ТВ и мониторы использовали RCA, но теперь найти такой порт в материнских платах невозможно. Встретить его можно либо в специализированном «железе», либо в очень старых ПК.
VGA
Video Graphics Array — еще один старый (но не такой старый, как RCA) видеовыход, через который сигнал когда-то выводили на мониторы. Это коннектор с 15 пинами и двумя винтами по бокам, которые обеспечивали его надежное крепление. Первые VGA начали использовать в 1987 году, и сейчас встретить их тоже очень сложно — для вывода видео в современных системах используются HDMI и DisplayPort. Впрочем, для совместимости со старыми дисплеями DVI все-таки иногда добавляют.
Как можно догадаться из названия, через DVI-коннектор передается только видео — без звука.
S-Video
Этот порт тоже разработали в 1987 году — это гораздо более продвинутая версия RCA с четырьмя пинами и возможностью передачи только видеосигнала. Найти такой коннектор на современном компьютере не получится.
Mini-VGA
Это уменьшенная и более компактная версия стандартного VGA, которая раньше часто встречалась на ноутбуках. Mini-VGA имеет меньше пинов и занимает меньше места, чтобы умещаться даже на небольших девайсах. Как и в случае с VGA, Mini-VGA найти сейчас практически невозможно — HDMI и DisplayPort его полностью заменили.
DVI
DVI разработали в конце девяностых годов двадцатого века с целью замены VGA. Digital Video Interface имеет 24 пина и бывает трех видов — DVI-D (только цифровой сигнал), DVI-A (только аналоговый сигнал; больше всего похож на VGA) и DVI-I (поддерживает и аналоговый, и цифровой сигналы; на картинке сверху).
Ограничения DVI очень заметны на современных экранах. Так, DVI-D Single Link не имеет шести средних пинов и может выдавать только до 2048х1152 точек с частотой развертки до 60 Гц, а DVI-D Dual Link — до 2560х1600 точек с частотой развертки до 60 Гц.
По сути, DVI был революционной альтернативой VGA, но и он уже успел устареть.
Mini-DVI
Этот коннектор был разработан Apple специально для ее компьютеров PowerBook, MacBook и iMac начала двухтысячных годов. Потребители и эксперты сильно критиковали такое решение — так, для того, чтобы выводить сигнал на внешние мониторы, требовался специальный адаптер.
Нужно ли говорить, что популярность Mini-DVI так и не снискал, и сейчас он полностью и окончательно забыт?
Micro-DVI
Как и Mini-DVI, Micro-DVI был разработан инженерами Apple — ноутбуки корпорации из Купертино становились все меньше, и им требовался все более компактный порт для вывода видеосигнала. Здесь история такая же, как и с Mini-DVI — жесткая критика, необходимость использования адаптера и полное забвение.
HDMI
Этот порт разработали в начале двухтысячных как универсальный интерфейс для передачи как видео, так и аудио в цифровом виде. Сейчас High-Definition Multimedia Interface — один из самых распространенных интерфейсов как в компьютерах, так и в домашней электронике.
Иногда можно встретить уменьшенные версии HDMI — Mini-HDMI и Micro-HDMI. Они не отличаются популярностью из-за своей хрупкости, но иногда их использование обосновывается компактностью девайсов (например, камер или планшетов).
Более подробно о версиях HDMI (это очень важно!) можно почитать в нашей статье об HDMI 2.1
DisplayPort
HDMI — очень популярный и гибкий интерфейс, но у него есть свои ограничения. К примеру, он не так хорошо подходит для экранов высокого разрешения (если речь не идет об HDMI 2.1) и систем с несколькими мониторами. А еще за использование HDMI производителям приходится платить ощутимые ощущения.
DisplayPort разработали в 2006 году с целью устранения этих ограничений — как ультимативный порт для передачи практически любых данных. Это надежный и очень способный интерфейс, который сейчас можно встретить практически в любом мониторе и на любой видеокарте. DisplayPort 2.0 поддерживает вывод картинки в разрешении 8K с частотой до 60 Гц.
Mini-DisplayPort
Еще один интерфейс, созданный Apple. Mini-DisplayPort заменил micro-DVI и до недавнего времени встречался на большинстве MacBook, а также на некоторых ноутбуках с Windows и даже полноразмерных видеокартах для ПК. Теперь он заменен на Thunderbolt — так, Thunderbolt 1/2 используют тот же физический коннектор, но могут передавать не только видео и аудио.
Стандартные средства системы
Netstat — это утилита, которая показывает исходящие и входящие соединения, а также показывает их статус (закрыто или открыто). Он доступен по умолчанию в операционных системах Windows и Linux и позволяет обнаруживать все порты прослушивания на вашем компьютере.
Для начала нужно запустить командную строку. Для этого в Windows нужно нажать Win + R, ввести в окошке cmd и нажать ОК или Enter.
В Linux вам просто нужно запустить терминал.
Чтобы выполнить команду, пользователь должен ввести «netstat- / конкретная буква /». Вот основные команды, которые помогут вам узнать, какие порты открыты в Windows 7, 8, 10 и что они означают:
- ? Справка, позволяет узнать обо всех функциях, выполняемых утилитой.
- -N. Если вы введете «netstat — n», на экране появятся три столбца. В первом вы можете увидеть локальный адрес, во втором — внешний, а в третьем — статус подключения.
- -А. Отображает все подключенные порты, т.е активные.
- -F. Показывает полное доменное имя (локальная сеть).
- -А ТАКЖЕ. Просмотр статистики сетевых подключений Ethernet.
- -S. Представляет статистику протокола.
Некоторые команды можно комбинировать, например -ee -s (записывается как «netstat-es» или «netstat-es»). Тогда обе функции будут выполняться одновременно.
Если по какой-либо причине вы не можете выполнить план и просмотреть порт компьютера с помощью Netstat, вам следует использовать следующий метод. Порт также можно обнаружить с помощью монитора ресурсов. Для этого нужно получить доступ к самой программе (нажать Win + R и ввести в окне resmon.exe), во вкладке «Сеть» и «Прослушиваемые порты». Третий столбец будет содержать необходимую информацию.
Как открыть или заблокировать порт TCP или UDP
Теперь, когда вы определили порты TCP и UDP на своем ПК с Windows, самое важное. Прежде всего, вам может потребоваться открыть порт для бесперебойной работы приложения
С другой стороны, вам может потребоваться заблокировать определенные порты, поскольку они больше не используются и могут выступать в качестве шлюза для угроз. Следовательно, такие порты блокируются брандмауэром
Прежде всего, вам может потребоваться открыть порт для бесперебойной работы приложения. С другой стороны, вам может потребоваться заблокировать определенные порты, поскольку они больше не используются и могут выступать в качестве шлюза для угроз. Следовательно, такие порты блокируются брандмауэром.
Выполните следующие действия, чтобы открыть или заблокировать порт TCP или UDP.
Откройте меню «Пуск», нажав клавишу Windows. Тип Брандмауэр Защитника Windows, и выберите Брандмауэр Защитника Windows в режиме повышенной безопасности от результатов.
Откроется следующее окно.
Нажать на Входящие правила вкладка в меню слева.
Нажать на Новое правило… на панели Действия в правом боковом меню. Когда откроется это окно, выберите Порт переключатель и щелкните Следующий.
При нажатии Следующий вкладка, следующее окно Мастер создания нового входящего правила открывается. В этом окне вы можете выбрать тип порта, который хотите открыть или заблокировать. Вы также можете выбрать, хотите ли вы открыть или заблокировать все порты выбранного типа или определенный локальный порт. Укажите количество или диапазон локальных портов, которые вы хотите открыть или заблокировать. И нажмите Следующий.
Следующее окно открывается, когда вы нажимаете Далее. Здесь вы можете открыть порты, выбрав Разрешить соединение или же Разрешить соединение, если оно безопасное Радио-кнопки. Выберите третий переключатель Заблокировать соединение чтобы заблокировать указанные порты.
Теперь выберите, применяется ли правило к Домен, Частный или же Общественные или все это. Нажмите Следующий.
Следующее окно открывается при нажатии Следующий. В этом окне укажите Имя для этого нового правила для входящих подключений. Вы также можете указать, какие порты были заблокированы или открыты в Описание раздел.
Нажмите Заканчивать для создания этого нового правила для входящих подключений.
Обратите внимание, что иногда после блокировки определенного порта приложения могут работать некорректно. Вы также можете столкнуться с проблемами при подключении к определенным ресурсам
Это означает, что заблокированный вами порт может потребоваться открыть. Вы можете отменить блокировку портов в любое время, выполнив тот же процесс.
Читать дальше: Как контролировать TCP, UDP связь в Windows с помощью PortExpert.
Практика¶
1. Напишите функции для передачи данных с помощью модели TCP/IP от клиента сети.
Каждая функция должна имитировать работу одного из уровней передачи данных.
Используйте заготовку кода ниже:
''' 4 уровень, функция application() - отвечает за формат данных, их шифрование input функции - данные, которые хотим отправить по сети, протокол данных ('SMTP','HTTP','FTP') output: данные + информация про формат данных и шифрование ''' def application (data, protocol): ... ''' 3 уровень, функция transport() - отвечает за способ передачи данных и их транспортировку input: результат работы функции application(), протокол транспортировки данных ('TCP', 'UDP') output: данные + информация про транспортировку''' def transport(data, protocol): ... ''' 2 уровень, функция internet() - отвечает за маршрутизацию в сети. Она ищет кому и как доставить данные input: результат работы функции transport() output: данные + информация про адресата и маршрут доставки''' def internet(data): ... '''1 уровень, функция network_interface - отвечает за соединение с сетью input: результат работы функции internet(), информация о соединении output: кортеж из 2 значений: 1. данные, преобразованные в бинарный формат 2. информация о типе соединения (1 - 'Ethernet', 2 -'Wi-Fi', другие числа - "No connection")''' def network_interface (data, connection): ... data = '01101' print (data) data_app = application(data,'SMTP') print ('application level - ', data_app) data_transport = transport (data_app,'TCP') print ('transport level - ', data_transport) data_ip = internet (data_transport) print ('internet level - ', data_ip) data_from_network = network_interface (data_ip,'Wi-Fi') print ('network_interface level - ', data_from_network)
2. Напишите функции для получения данных из сети клиентом с помощью модели TCP/IP.
Каждая функция должна имитировать работу одного из уровней передачи данных.
Используйте заготовку кода ниже, учтите потери данных:
'''1 уровень, функция network_interface - отвечает за соединение с сетью передаём в функцию 2 аргумента: 1 аргумент, data - это данные в виде бинарного числа 2 аргумент, connection - это тип соединения (1 - 'Ethernet', 2 -'Wi-Fi', другие числа - "No connection") возвращаем: - если удалось установить соединение - то кортеж из 2 значений: данные в виде строки из нулей и единиц и тип соединения - если не удалось установить соединение, то строку "No connection"''' def network_interface(data, connection): ... ''' 2 уровень, функция internet() - отвечает за маршрутизацию в сети. Она ищет кому и как доставить данные передаём в функцию результат работы функции network_interface() возвращаем данные в виде строки, если данные переданы в кортеже и адресованы нам, иначе - передаём None''' def internet(data): ... ''' 3 уровень, функция transport() - отвечает за способ передачи данных и их транспортировку передаём в функцию результат работы функции internet() возвращаем: - если c предыдущего уровня получены данные, то формируем кортеж из 2 значений: данные, протокол передачи - None - если данные не получены''' def transport(data): ... ''' 4 уровень, функция application() - отвечает за формат данных, их расшифровку передаём в функцию результат работы функции transport() возвращаем: ''' def application (data): ... data = 0b110110111 print (bin(data)) data_from_network = network_interface (data,1) print ('network_interface level - ', data_from_network) data_ip = internet (data_from_network) print ('internet level - ', data_ip) data_transport = transport (data_ip) print ('transport level - ', data_transport) data_app = application(data_transport) print ('application level - ', data_app)
Как проверить, открыт ли порт для подключения
Порты присутствуют у всех сетевых устройств, включая маршрутизаторы и роутеры, поэтому при анализе среды важно понимать, какой именно узел проверяется. На этом отчасти основаны системы безопасности, когда ради блокировки вероятных хакерских атак закрываются все свободные сокеты и открываются только те, которые используются корпоративным софтом
Существует три основных способа проверки открытых портов:
- Специализированные онлайн-сервисы.
- Прикладные приложения, запускаемые на компьютере.
- Встроенные в операционную систему утилиты.
Выбор решения зависит от задач. Так, если требуется открыть доступ к своему компьютеру извне, можно воспользоваться сервисами 2ip.ru или portscan.ru. При локальных работах удобнее приложения типа Portforward Network Utilities или штатная утилита TELNET. Она поставляется в «стандартной» сборке Windows и доступна для запуска в консоли CMD.
Перечень открытых портов на локальном компьютере
Открытый порт на домашнем или рабочем компьютере – это фактически «дыра» в безопасности и риски утраты контроля над ситуацией. Именно через них проникают трояны и иные вирусы, которые имеют цель предоставить злоумышленнику возможность удаленного подключения к ПК без разрешения владельца.
Проверить занятые порты легко:
- Нужно нажать комбинацию клавиш <Win+R>.
- Ввести команду CMD и нажать кнопку Enter.
- Ввести команду netstat –a и повторно нажать Enter.
В консоли отобразится перечень занятых портов с указанием, какое приложение или служба ими «распоряжается». Такой вариант проверки интересен тем, что он дает объективную картину. Если рассчитывать только на онлайн-сервисы, иногда создается впечатление, что открытых портов нет. Эффект создается из-за блокировки внешних запросов брандмауэром Windows или другим ПО.
Если хочется изучить список на предмет «посторонних» программ, его лучше выгрузить в файл при помощи команды netstat –a >имя.txt. По умолчанию список сохраняется в каталоге пользователя, в аккаунте которого происходил запуск утилиты (типа C:\\Пользователи\User\). При желании перед запуском утилиты можно перейти в корень диска командой cd c:\.
Просмотр открытых портов на удаленном компьютере
При взаимодействии с удаленным сервером используется другая утилита – TELNET. В Windows она по умолчанию отключена, потому что не относится к пользовательским приложениям. Перед первым запуском придется провести «активацию». Существует два способа включения – в консоли или через графический интерфейс.
Активация заключается во вводе специальной команды:
dism /online /Enable-Feature /FeatureName:TelnetClient
Она сработает только при запуске консоли с правами администратора. Схема открытия приложения несколько иная:
- Нажать комбинацию клавиш <Win+X>.
- Выбрать пункт «Командная строка (администратор)».
- В открывшемся окне ввести команду активации telnet.
Если пользователь предпочитает управлять компьютером через графический интерфейс, нужно запустить панель управления, а в ней утилиту «Удаление программы». В открывшемся окне нужно перейти в раздел «Включение или отключение компонентов Windows», далее в общем списке найти строку «Telnet», поставить в ней галочку и нажать кнопку ОК. Все, служба активирована и готова к использованию (даже в консоли).
Синтаксис:
telnet опции хост порт
Хост – это домен или его IP-адрес, порт – виртуальное дополнение для образования сокета, опции же позволяют менять режим подключения. Их основные варианты:
- -4 – использовать адреса стандарта IPV4;
- -6 – использовать адреса стандарта IPV6;
- -8 – применять 8-битную кодировку типа Unicode;
- -E – отключение поддержки Escape-последовательностей;
- -a – вход с именем пользователя из переменного окружения User;
- -b – использовать локальный сокет;
- -d – включить режим отладки;
- -p – режим эмуляции rlogin;
- -e – задать символ начала Escape-последовательности;
- -l – пользователь для авторизации на удаленном сервере.
Простейший вариант проверки открытых портов – это ввод команды без опций:
telnet 10.0.119.127 80
Если на экран будет выведено сообщение «Сбой подключения», порт закрыт, нужно подбирать другой номер. Если порт открыт, пользователь увидит пустой экран или приглашение со стороны сервера ввести логин и пароль.
Уровень приложения
Прикладной уровень включает в себя протоколы , используемые в большинстве приложений для предоставления услуг пользователя или обмена данных приложений за сетевые соединения , установленных протоколами нижнего уровня. Это может включать некоторые базовые службы поддержки сети, такие как протоколы маршрутизации и конфигурация хоста. Примеры протоколов прикладного уровня включают протокол передачи гипертекста (HTTP), протокол передачи файлов (FTP), простой протокол передачи почты (SMTP) и протокол динамической конфигурации хоста (DHCP). Данные, закодированные в соответствии с протоколами прикладного уровня, инкапсулируются в единицы протокола транспортного уровня (такие как потоки TCP или дейтаграммы UDP), которые, в свою очередь, используют протоколы нижнего уровня для фактической передачи данных.
Модель TCP / IP не учитывает специфику форматирования и представления данных и не определяет дополнительные уровни между прикладным и транспортным уровнями, как в модели OSI (уровни представления и сеанса). Согласно модели TCP / IP, такие функции являются областью библиотек и интерфейсов прикладного программирования . Прикладной уровень в модели TCP / IP часто сравнивают с комбинацией пятого (сеансовый), шестого (представление) и седьмого (приложения) уровней модели OSI.
Протоколы прикладного уровня часто связаны с конкретными клиент-серверными приложениями, а общие службы имеют хорошо известные номера портов, зарезервированные Internet Assigned Numbers Authority (IANA). Например, протокол передачи гипертекста использует порт сервера 80, а Telnet использует порт сервера 23. Клиенты, подключающиеся к службе, обычно используют эфемерные порты , т. Е. Номера портов , назначаемые только на время транзакции случайным образом или из определенного диапазона, настроенного в заявление.
На уровне приложений модель TCP / IP различает пользовательские протоколы и протоколы поддержки . Протоколы поддержки предоставляют услуги системе сетевой инфраструктуры. Пользовательские протоколы используются для реальных пользовательских приложений. Например, FTP — это протокол пользователя, а DNS — протокол поддержки.
Хотя приложения обычно осведомлены о ключевых качествах соединения транспортного уровня, таких как IP-адреса конечных точек и номера портов, протоколы прикладного уровня обычно рассматривают протоколы транспортного уровня (и более низких уровней) как черные ящики, которые обеспечивают стабильное сетевое соединение, через которое осуществляется обмен данными. . Транспортный уровень и уровни нижнего уровня не заботятся о специфике протоколов прикладного уровня. Маршрутизаторы и коммутаторы обычно не проверяют инкапсулированный трафик, а просто предоставляют для него канал. Однако некоторые брандмауэры и приложения для регулирования полосы пропускания используют глубокую проверку пакетов для интерпретации данных приложения. Примером может служить протокол резервирования ресурсов (RSVP). Также иногда необходимо учитывать полезную нагрузку приложения.