Сетевой порт: различия между версиями
Отмена правки 83535, сделанной участником 185.2.105.6 (обс.) |
Ascola (обсуждение | вклад) м викификация, стилевые правки, обновление данных |
||
Строка 1: | Строка 1: | ||
{{wikipedia|Порт (TCP/IP)}} |
{{wikipedia|Порт (TCP/IP)}} |
||
''Порт прослушивания'' (также называемый портом для входящих соединений или портом сервера) используется программой, ждущей приглашений к соединениям от других программ. Подробнее |
'''Порт прослушивания''' (также называемый портом для входящих соединений или портом сервера) используется программой, ждущей приглашений к соединениям от других программ. ''Подробнее — см.'' '''[[TCP/IP]]'''. |
||
«Недоступным» порт прослушивания называют, когда эти приглашения не приходят, а пропадают где-то по дороге. Ещё такой порт часто называют «закрытым», поэтому шаги, делающие порт доступным, называют «открытием порта». |
|||
== Как открыть порт == |
== Как открыть порт == |
||
Если у вас «нет внешнего IP- |
Если у вас «нет внешнего IP-address» (то есть вы за [[Порт/NAT|NAT]] провайдера), то ничего сделать нельзя. |
||
Иначе просто настройте свои сетевой экран (файервол) и маршрутизатор (роутер): |
Иначе просто настройте свои сетевой экран (файервол) и маршрутизатор (роутер): |
||
# |
# [[Порт/Firewall|'''Как настроить файервол''']]. |
||
# |
# [[Порт/NAT|'''Что такое NAT и как определить, находитесь ли вы за NAT''']]. |
||
# |
# [[Порт/Router|'''Роутер и его настройки''']]. |
||
# |
# [[Порт/UPnP|'''Использование UPnP для перенаправления порта''']]. |
||
# |
# [[Порт/Forwarding|'''Перенаправление порта вручную''']]. |
||
== Кому нужны доступные порты == |
== Кому нужны доступные порты == |
||
Это зависит от программ, которыми вы пользуетесь: |
Это зависит от программ, которыми вы пользуетесь: |
||
* программы-клиенты, такие как [[w:веб-браузер|веб-браузер]] или почтовая программа |
* программы-клиенты, такие как [[w:веб-браузер|веб-браузер]] или почтовая программа, всегда сами начинают соединения к другим компьютерам, поэтому порта прослушивания у них нет вообще; |
||
* программы-серверы, например [[w:веб-сервер|веб-сервер]] или [[w:ftp|ftp]]-сервер |
* программы-серверы, например [[w:веб-сервер|веб-сервер]] или [[w:ftp|ftp]]-сервер, имеют свои порты прослушивания, на которых они ждут соединений, инициируемых клиентами. Если вы хотите, чтобы к вашему серверу могли обращаться из Интернета, эти порты надо обязательно сделать доступными; |
||
* [[w:P2p|P2P]] программа, например битторрент-клиент |
* [[w:P2p|P2P]] программа, например битторрент-клиент, одновременно и ждёт приглашений к соединениям (как сервер), и сама инициирует соединения к другим P2P клиентам. Поэтому делать её порт прослушивания доступным в принципе не обязательно, но очень желательно. ''Подробнее — см.'' '''[[Bittorrent/Порт|Порт в битторрент клиенте]]'''. |
||
== Выбор номера == |
== Выбор номера == |
||
Порт — это просто любое условное число от |
Порт — это просто любое условное число от 0 до 65535. Теоретически номер порта ни на что не влияет. Важно только, чтобы этот порт был свободен. Впрочем, если ваша программа при запуске обнаружит, что указанный вами порт занят (то есть его уже слушает какая-то другая программа на вашем компьютере), то она вам сразу пожалуется сама. |
||
Важно только, чтобы этот порт был свободен. Впрочем, если ваша программа при запуске обнаружит, что указанный вами порт занят (то есть его уже слушает какая-то другая программа на вашем компьютере), то она вам сразу пожалуется сама. |
|||
На практике некоторые номера выбирать не сто́ит. Некоторые номера, особенно небольшие, могут быть заняты системными службами вашего компьютера. Некоторые номера могут специально блокироваться интернет-провайдерами. |
На практике некоторые номера выбирать не сто́ит. Некоторые номера, особенно небольшие, могут быть заняты системными службами вашего компьютера. Некоторые номера могут специально блокироваться интернет-провайдерами. |
||
Строка 35: | Строка 32: | ||
Если вам не важен с эстетической точки зрения номер порта, то рекомендуется выбрать какой-нибудь порт выше 5000. Некоторые пользователи рекомендуют выбирать порт выше 42000. |
Если вам не важен с эстетической точки зрения номер порта, то рекомендуется выбрать какой-нибудь порт выше 5000. Некоторые пользователи рекомендуют выбирать порт выше 42000. |
||
Для системных и некоторых популярных программ выделены |
* Для системных и некоторых популярных программ выделены порты с номерами от 0 до 1023, называемые системными или общеизвестными. |
||
* Порты с номерами 1024 — 49151 называются пользовательскими или зарегистрированными. |
|||
⚫ | |||
⚫ | |||
Википедия [http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2_TCP_%D0%B8_UDP] Список портов TCP и UDP |
|||
''См. также:'' [[w:Список портов TCP и UDP|'''Список портов TCP и UDP''']] |
|||
== Проверка доступности == |
== Проверка доступности == |
||
Строка 46: | Строка 44: | ||
=== Клиентом === |
=== Клиентом === |
||
Можно проверять доступность порта сервера соответствующей программой-клиентом. Например если у вас стоит ftp-сервер, то вы можете проверять, подключается ли к нему ftp-клиент. Однако это не всегда возможно и иногда неудобно. |
Можно проверять доступность порта сервера соответствующей программой-клиентом. Например, если у вас стоит ftp-сервер, то вы можете проверять, подключается ли к нему ftp-клиент. Однако это не всегда возможно и иногда неудобно. |
||
Недостаток этого (как и следующего способа) состоит в том, что проверку нужно обязательно делать с другого компьютера со своим собственным интернет-подключением. |
Недостаток этого (как и следующего способа) состоит в том, что проверку нужно обязательно делать с другого компьютера со своим собственным интернет-подключением. |
||
=== Telnet === |
=== Telnet === |
||
Для проверки доступности TCP-порта (а большинство прикладных протоколов используют TCP) достаточно попытаться установить с вашим сервером «сырое» TCP-соединение с помощью [[w:telnet|telnet]]. |
Для проверки доступности TCP-порта (а большинство прикладных протоколов используют TCP) достаточно попытаться установить с вашим сервером «сырое» TCP-соединение с помощью [[w:telnet|telnet]]. |
||
• В '''Windows XP''': |
|||
нажмите '''Пуск -> Выполнить''' (Win+R), затем в открывшемся окне наберите |
* В '''Windows XP''': нажмите '''Пуск -> Выполнить''' (Win+R), затем в открывшемся окне наберите <code>cmd</code> и нажмите "Ок". |
||
• В '''Windows Vista и Windows 7''' необходимо установить соответствующий компонент: |
|||
'''Панель управления" - "Программы и компоненты" - "Включение или отключение компонентов Windows" - "Клиент Telnet'''.< |
* В '''Windows Vista и Windows 7''' необходимо установить соответствующий компонент: '''"Панель управления" - "Программы и компоненты" - "Включение или отключение компонентов Windows" - "Клиент Telnet"'''. После перезагрузки компьютера нажмите '''Пуск -> Выполнить''' (Win+R), наберите <code>cmd</code> и нажмите "Ок". |
||
После перезагрузки компьютера нажмите '''Пуск -> Выполнить''' (Win+R), наберите (без кавычек) <code>cmd</code> и нажмите "Ок".<br> |
|||
В появившемся окне командной строки наберите <code>telnet</code>, введите через пробелы ''IP-адрес'', затем ''номер порта'' и нажмите "Enter". |
|||
Если соединение установится, экран либо станет пустым, либо на нём появятся какие-то символы, в зависимости от вашего сервера. В случае неудачи появится сообщение о том, что соединение установить не получилось. |
Если соединение установится, экран либо станет пустым, либо на нём появятся какие-то символы, в зависимости от вашего сервера. В случае неудачи появится сообщение о том, что соединение установить не получилось. |
||
=== Сканером === |
=== Сканером === |
||
В сети есть специальные '' |
В сети есть специальные ''онлайн-сканеры портов''. |
||
<span style="float:right; margin-left:10px; border: 2px solid gray; padding:5px; background:#A0A0A0; cursor:normal"> |
<span style="float:right; margin-left:10px; border: 2px solid gray; padding:5px; background:#A0A0A0; cursor:normal"> |
||
Port Number: |
Port Number: |
||
<span style="background:white; border: 2px #B0B0B0 inset; padding:0px"> 5908 </span> |
<span style="background:white; border: 2px #B0B0B0 inset; padding:0px"> 5908 </span> |
||
<span style="background: #DBDBDB; border: 4px #DBDBDB outset;"> |
<span style="background: #DBDBDB; border: 4px #DBDBDB outset;"> Scan Port </span> |
||
</span> |
</span> |
||
Зайдите на страницу любого из них, например [http://whatsmyip.org/ |
Зайдите на страницу любого из них, например [http://www.whatsmyip.org/port-scanner/ whatsmyip.org/port-scanner].<br />Введите номер порта для проверки и нажмите кнопку Scan Port. |
||
<br clear="both" /> |
<br clear="both" /> |
||
<table style="float:right; margin-left:10px; background:#505050; font-weight: bold;"> |
<!-- <table style="float:right; margin-left:10px; background:#505050; font-weight: bold;"> |
||
<tr style="color:#a9a9a9"><td> Port</td><td> Status</td></tr> |
<tr style="color:#a9a9a9"><td> Port</td><td> Status</td></tr> |
||
<tr style="background: #b0b0b0"><td> Port 5908 </td><td style="color:red; font-weight:normal"> Open</td></tr> |
<tr style="background: #b0b0b0"><td> Port 5908 </td><td style="color:red; font-weight:normal"> Open</td></tr>--> |
||
</table> |
</table> |
||
Ваш IP-адрес сканер видит сам, а порт вы ему сообщаете, и он делает попытку установить к вашему серверу TCP-соединение. Статус порта Open означает, что ваш порт прослушивания доступен |
Ваш IP-адрес сканер видит сам, а порт вы ему сообщаете, и он делает попытку установить к вашему серверу TCP-соединение. Статус порта Open означает, что ваш порт прослушивания доступен. <!--Иначе сканер покажет TimeOut (Stealth) или Closed.--> |
||
<br clear="both" /> |
<br clear="both" /> |
||
Другие сканеры: |
Другие сканеры: |
||
Строка 85: | Строка 82: | ||
Недостатком такого метода является невозможность задать произвольный IP-адрес. Поэтому вы не можете проверять компьютеры других. И если вы пользуетесь веб-браузером через отдельный прокси, то проверка бесполезна — сканер будет пытаться начать соединение к IP-адресу прокси. |
Недостатком такого метода является невозможность задать произвольный IP-адрес. Поэтому вы не можете проверять компьютеры других. И если вы пользуетесь веб-браузером через отдельный прокси, то проверка бесполезна — сканер будет пытаться начать соединение к IP-адресу прокси. |
||
Этот сканер позволяет проверить порт для любого IP-адреса |
Этот сканер позволяет проверить порт для любого IP-адреса: |
||
* [http://dnstools.com/ dnstools.com] |
* [http://dnstools.com/ dnstools.com] |
||
== Как задать вопрос == |
== Как задать вопрос == |
||
Итак, у вас не получается открыть порт и вы собираетесь просить о помощи на каком-нибудь форуме. |
Итак, у вас не получается открыть порт, и вы собираетесь просить о помощи на каком-нибудь форуме. |
||
Обязательно расскажите, что вы сделали все нужные шаги, и какие результаты при этом получили: |
Обязательно расскажите, что вы сделали все нужные шаги, и опишите, какие результаты при этом получили: |
||
* о том, что вы запустили вашу программу и проверили доступность порта |
* о том, что вы запустили вашу программу и проверили доступность порта онлайн-сканером (в битторрент-клиенте не полагайтесь на индикатор порта или показания трекера); |
||
* адрес вашего компьютера [[Порт/NAT#IP |
* адрес вашего компьютера из команды [[Порт/NAT#IP-адрес компьютера|<code>ipconfig</code>]] (<code>ifconfig</code> для unix-подобных ОС); |
||
* адрес, под которым вас видно в Интернете (можно первые два числа из четырёх) |
* адрес, под которым вас видно в Интернете (можно первые два числа из четырёх); |
||
* какой файервол и как вы пытались его настроить (со скриншотом) |
* какой файервол и как вы пытались его настроить (со скриншотом); |
||
* какой роутер и как вы пытались его настроить (со скриншотом) |
* какой роутер и как вы пытались его настроить (со скриншотом). |
||
<!-- |
<!-- |
||
Кроме того, если вы собираетесь спросить «как мне открыть порты в моей программе», значит вы невнимательно всё это читали: |
Кроме того, если вы собираетесь спросить «как мне открыть порты в моей программе», значит вы невнимательно всё это читали: |
||
* в большинстве случаев вам нужен ''только один порт'' прослушивания (исключением например является битторрент клиент BitTornado) |
* в большинстве случаев вам нужен ''только один порт'' прослушивания (исключением например является битторрент клиент BitTornado) |
||
* открывать порт нужно ''для'' |
* открывать порт нужно ''для'' вашей программы — обычно в вашем роутере и/или в файерволе. |
||
--> |
--> |
||
[[Категория:Компьютеры]] |
[[Категория:Компьютеры]] |
Версия от 13:49, 27 января 2014
Порт прослушивания (также называемый портом для входящих соединений или портом сервера) используется программой, ждущей приглашений к соединениям от других программ. Подробнее — см. TCP/IP.
«Недоступным» порт прослушивания называют, когда эти приглашения не приходят, а пропадают где-то по дороге. Ещё такой порт часто называют «закрытым», поэтому шаги, делающие порт доступным, называют «открытием порта».
Как открыть порт
Если у вас «нет внешнего IP-address» (то есть вы за NAT провайдера), то ничего сделать нельзя.
Иначе просто настройте свои сетевой экран (файервол) и маршрутизатор (роутер):
- Как настроить файервол.
- Что такое NAT и как определить, находитесь ли вы за NAT.
- Роутер и его настройки.
- Использование UPnP для перенаправления порта.
- Перенаправление порта вручную.
Кому нужны доступные порты
Это зависит от программ, которыми вы пользуетесь:
- программы-клиенты, такие как веб-браузер или почтовая программа, всегда сами начинают соединения к другим компьютерам, поэтому порта прослушивания у них нет вообще;
- программы-серверы, например веб-сервер или ftp-сервер, имеют свои порты прослушивания, на которых они ждут соединений, инициируемых клиентами. Если вы хотите, чтобы к вашему серверу могли обращаться из Интернета, эти порты надо обязательно сделать доступными;
- P2P программа, например битторрент-клиент, одновременно и ждёт приглашений к соединениям (как сервер), и сама инициирует соединения к другим P2P клиентам. Поэтому делать её порт прослушивания доступным в принципе не обязательно, но очень желательно. Подробнее — см. Порт в битторрент клиенте.
Выбор номера
Порт — это просто любое условное число от 0 до 65535. Теоретически номер порта ни на что не влияет. Важно только, чтобы этот порт был свободен. Впрочем, если ваша программа при запуске обнаружит, что указанный вами порт занят (то есть его уже слушает какая-то другая программа на вашем компьютере), то она вам сразу пожалуется сама.
На практике некоторые номера выбирать не сто́ит. Некоторые номера, особенно небольшие, могут быть заняты системными службами вашего компьютера. Некоторые номера могут специально блокироваться интернет-провайдерами.
Если вам не важен с эстетической точки зрения номер порта, то рекомендуется выбрать какой-нибудь порт выше 5000. Некоторые пользователи рекомендуют выбирать порт выше 42000.
- Для системных и некоторых популярных программ выделены порты с номерами от 0 до 1023, называемые системными или общеизвестными.
- Порты с номерами 1024 — 49151 называются пользовательскими или зарегистрированными.
- Порты с номерами 49152 — 65535 называются динамическими или эфемерными.
См. также: Список портов TCP и UDP
Проверка доступности
Перед проверкой порта нужно обязательно запустить вашу программу (сервер), которая начнёт на вашем компьютере этот порт слушать, иначе и проверять будет нечего.
Клиентом
Можно проверять доступность порта сервера соответствующей программой-клиентом. Например, если у вас стоит ftp-сервер, то вы можете проверять, подключается ли к нему ftp-клиент. Однако это не всегда возможно и иногда неудобно.
Недостаток этого (как и следующего способа) состоит в том, что проверку нужно обязательно делать с другого компьютера со своим собственным интернет-подключением.
Telnet
Для проверки доступности TCP-порта (а большинство прикладных протоколов используют TCP) достаточно попытаться установить с вашим сервером «сырое» TCP-соединение с помощью telnet.
- В Windows XP: нажмите Пуск -> Выполнить (Win+R), затем в открывшемся окне наберите
cmd
и нажмите "Ок".
- В Windows Vista и Windows 7 необходимо установить соответствующий компонент: "Панель управления" - "Программы и компоненты" - "Включение или отключение компонентов Windows" - "Клиент Telnet". После перезагрузки компьютера нажмите Пуск -> Выполнить (Win+R), наберите
cmd
и нажмите "Ок".
В появившемся окне командной строки наберите telnet
, введите через пробелы IP-адрес, затем номер порта и нажмите "Enter".
Если соединение установится, экран либо станет пустым, либо на нём появятся какие-то символы, в зависимости от вашего сервера. В случае неудачи появится сообщение о том, что соединение установить не получилось.
Сканером
В сети есть специальные онлайн-сканеры портов.
Port Number:
5908
Scan Port
Зайдите на страницу любого из них, например whatsmyip.org/port-scanner.
Введите номер порта для проверки и нажмите кнопку Scan Port.
Ваш IP-адрес сканер видит сам, а порт вы ему сообщаете, и он делает попытку установить к вашему серверу TCP-соединение. Статус порта Open означает, что ваш порт прослушивания доступен.
Другие сканеры:
Недостатком такого метода является невозможность задать произвольный IP-адрес. Поэтому вы не можете проверять компьютеры других. И если вы пользуетесь веб-браузером через отдельный прокси, то проверка бесполезна — сканер будет пытаться начать соединение к IP-адресу прокси.
Этот сканер позволяет проверить порт для любого IP-адреса:
Как задать вопрос
Итак, у вас не получается открыть порт, и вы собираетесь просить о помощи на каком-нибудь форуме.
Обязательно расскажите, что вы сделали все нужные шаги, и опишите, какие результаты при этом получили:
- о том, что вы запустили вашу программу и проверили доступность порта онлайн-сканером (в битторрент-клиенте не полагайтесь на индикатор порта или показания трекера);
- адрес вашего компьютера из команды
ipconfig
(ifconfig
для unix-подобных ОС); - адрес, под которым вас видно в Интернете (можно первые два числа из четырёх);
- какой файервол и как вы пытались его настроить (со скриншотом);
- какой роутер и как вы пытались его настроить (со скриншотом).