Jaki jest najwyższy numer portu, którego można użyć?
Jaki jest najwyższy numer portu, którego można użyć?
Odpowiedzi:
Numer portu to 16-bitowa liczba całkowita bez znaku, więc 65535.
Największy numer portu to niepodpisany krótki 2 ^ 16-1: 65535
Port zarejestrowany to port przypisany przez Internet Corporation dla przypisanych nazw i numerów (ICANN) do określonego zastosowania. Każdy zarejestrowany port należy do zakresu 1024–49151.
Od 21 marca 2001 r. Agencją rejestracyjną jest ICANN; przed tym czasem była to IANA.
Porty o numerach niższych niż zarejestrowane porty nazywane są portami dobrze znanymi; porty o numerach większych niż zarejestrowane porty nazywane są portami dynamicznymi i / lub prywatnymi.
Jak rozumiem, powinieneś używać tylko do 49151, ponieważ od 49152 do 65535 są zarezerwowane dla portów efemerycznych
$ cat /proc/sys/net/ipv4/ip_local_port_range
daje wynik 32768 61000
. Jeśli chodzi o to, czy należy korzystać z portu w efemerycznym zakresie portów w swoim systemie, podejrzewam, że większość, jeśli nie wszystkie współczesne sieciowe systemy operacyjne pomijają port, który jest już używany.
Po prostu kontynuacja odpowiedzi roztrzaskania . Zakres portów efemerycznych (przynajmniej w Linuksie i podejrzewam, że także inne Unices) nie jest stały. Można to kontrolować, pisząc na adres
/proc/sys/net/ipv4/ip_local_port_range
Jedynym ograniczeniem (w odniesieniu do IANA) jest to, że porty poniżej 1024 są oznaczone jako porty dobrze znane. Porty powyżej, z których można korzystać bezpłatnie. Często zdarza się, że porty poniżej 1024 są ograniczone do dostępu administratora, z tego właśnie powodu.
Zgodnie z RFC 793 port jest 16-bitowym bez znaku int.
Oznacza to, że zakres wynosi 0 - 65535.
Jednak w tym zakresie porty 0–1023 są zwykle zarezerwowane do określonych celów. Mówię ogólnie, ponieważ poza portem 0 zwykle nie ma egzekwowania rezerwacji 0-1023. Implementacje TCP / UDP zwykle nie wymuszają rezerwacji oprócz 0. Możesz, jeśli chcesz, uruchomić port TLS serwera WWW na porcie 80 lub 25 lub 65535 zamiast standardowego 443. Podobnie, nawet jeśli tak jest standard, że serwery SMTP nasłuchują na porcie 25, można go uruchomić na 80, 443 lub innych.
Większość implementacji rezerwuje 0 na określony cel - losowe przypisanie portów. Dlatego w większości implementacji powiedzenie „nasłuchuj na porcie 0” oznacza „Nie obchodzi mnie, z którego portu korzystam, daj mi tylko trochę nieprzypisanego portu do nasłuchiwania”.
Tak więc wszelkie ograniczenia korzystania z portu z zakresu 0-65535, w tym 0, efemeryczny zakres rezerwacji itp. , Są specyficzne dla implementacji (tj. OS / sterownika) , jednak wszystkie, w tym 0, są poprawnymi portami w RFC 793.
To zależy od zakresu, o którym mówisz, ale zakres dynamiczny idzie w górę do 65535 lub 2 ^ 16-1 (16 bitów).
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
Prawidłowe liczby portów to: od 0 do 2 ^ 16-1 = od 0 do 65535
Jest tak, ponieważ numer portu ma długość 16 bitów.
Porty są jednak podzielone na:
Dobrze znane porty : od 0 do 1023 (używane dla usług systemowych, np. HTTP, FTP, SSH, DHCP ...)
Porty zarejestrowane / użytkownika : od 1024 do 49151 (można go używać na serwerze, ale należy ostrożnie niektóre znane aplikacje: jak serwer systemu zarządzania bazą danych Microsoft SQL Server (MSSQL) lub serwer sieciowy Apache Derby Derby już biorą z tego zakresu, tj. nie jest zalecane przypisywanie portu MSSQL do serwera, w przeciwnym razie, jeśli MSSQL jest uruchomiony, wtedy serwer jest najbardziej prawdopodobnie nie będzie działać z powodu konfliktu portów)
Porty dynamiczne / prywatne : od 49152 do 65535. (nieużywane dla serwerów, a raczej klientów, np. w usłudze NAT)
Podczas programowania możesz używać dowolnych liczb od 0 do 65535 dla swojego serwera, jednak powinieneś trzymać się wyżej wymienionych zakresów, w przeciwnym razie niektóre usługi systemowe lub niektóre aplikacje nie będą działać z powodu konfliktu portów.
Sprawdź listę większości portów tutaj: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers