Jak należy wybrać domyślny port TCP / IP dla nowej usługi?

110

Podczas tworzenia aplikacji, która będzie nasłuchiwała na porcie TCP / IP, jak należy wybrać domyślny port? Załóżmy, że ta aplikacja zostanie zainstalowana na wielu komputerach i pożądane jest unikanie konfliktów portów.

Kevin Wong
źródło
1
Lepiej odpowiedzieć na to pytanie: stackoverflow.com/questions/10476987/ ...
matt2000

Odpowiedzi:

49

Przejdź tutaj i wybierz port z opisemUnassigned

Kevin Wong
źródło
11
Sugerujesz, że wybiera port poniżej 100?
otwarte
3
Który wybrać?
Owen,
1
Gdyby wszyscy programiści postępowali zgodnie z tą logiką, oznaczałoby to, że wszystkie nowe usługi gromadzą się wokół kilku nieprzypisanych portów. Jakie byłoby prawdopodobieństwo, że usługa działa na przypisanym porcie w porównaniu z nieprzypisanym portem. (Przepraszam, jeśli nie
ujawniam
1
Jeśli szukasz portu do użytku w sieci wewnętrznej, rozważ odpowiedź na podobne pytanie: stackoverflow.com/questions/218839/…
adrianwadey
32

Pierwszy krok: spójrz na listę IANA :

Tam zobaczysz koniec listy

„Porty dynamiczne i / lub prywatne to porty od 49152 do 65535”

więc to byłyby twoje lepsze zakłady, ale gdy wybierzesz jeden, zawsze możesz go wygooglować, aby sprawdzić, czy istnieje wystarczająco popularna aplikacja, która już ją „zajęła”

curtisk
źródło
8
Ale czy użycie portu dynamicznego nie naraziłoby mnie na sporadyczne (choć rzadkie) konflikty portów? Być może bezpieczniej jest użyć portu w zarejestrowanym zakresie, który jest nieprzypisany lub przypisany do mało znanej aplikacji.
Kevin Wong,
4
chyba, że ​​wyraźnie zarejestrujesz swój wybór portu w IANA, możesz uruchomić te same konfliktowe szanse, używając opcji „NIEPRZEZNACZONY”. Właściwie, ponieważ jest wiele nieprzypisanych na niskim końcu, prawdopodobnie byłyby to bardziej prawdopodobne IMHO
curtisk
2
Zawsze zaczynaj od nieprzypisanego zakresu, z opcją portu konfigurowalnego przez użytkownika / administratora, aby poradzić sobie z możliwymi konfliktami. TYLKO jeśli twoja aplikacja ma szerokie zastosowanie (pomyśl o BitTorrent lub inne duże użycie), powinieneś naprawdę rozważyć ubieganie się o przypisany port. W przeciwnym razie pozostań poza wyznaczonym zakresem. Jeśli dotyczy to czegoś ściśle wewnętrznego / osobistego, po prostu udokumentuj porty używane przez różne usługi i wszystko powinno być w porządku, o ile ludzie mogą je wyszukiwać w Internecie. Pomyśl o prywatnym / dynamicznym zakresie podobnym do nierutowalnych adresów IP - są idealne do małych / prywatnych zastosowań.
jefflunt
3
Po prostu nie popełnij błędu zakładając, że Twoja aplikacja wymaga portu przypisanego przez IANA, ponieważ uważasz, że Twoja aplikacja eksploduje, zanim to się stanie. :)
jefflunt
7
Jeśli chodzi o zakres dynamiczny, myślę, że pytanie o „konflikt” mogło dotyczyć pytania, czy jeśli system operacyjny używa tego zakresu dla portów efemerycznych (tak jak powinien), czy wystąpiłby konflikt z wybranym portem, gdyby system operacyjny zdecydował losowo używać tego portu np. do niektórych połączeń wychodzących. (Rozumiem, że porty efemeryczne służą do przypadkowego użycia tego zakresu.) Zobacz to inne pytanie, które przedstawia obawy bardziej szczegółowo.
Garret Wilson
7

Jeśli przez powszechnie używane, masz na myśli, że chcesz chronić się przed innymi osobami używającymi go w przyszłości, możesz złożyć wniosek o oznaczenie go jako zarezerwowanego dla Twojej aplikacji przez IANA tutaj

jj33
źródło
5

Najbardziej obszerna lista oficjalnych numerów portów IANA i nieoficjalnych numerów portów, jakie znam, to nmap-services .

Thorsten79
źródło
2

Prawdopodobnie nie chcesz używać portów z tej listy (Wikipedia).

Wybrałbym tylko jeden, a gdy aplikacja będzie używana przez masy, numer portu zostanie rozpoznany i umieszczony na takich listach.

Mike Mazur
źródło
2

Jak wspominają inni, sprawdź IANA.

Następnie sprawdź lokalne systemy / etc / services, aby zobaczyć, czy są już używane porty niestandardowe.

I proszę, nie koduj tego na stałe. Upewnij się, że jest w jakiś sposób konfigurowalny - jeśli nie z innego powodu, dla którego chcesz mieć wielu programistów korzystających z własnych zlokalizowanych kompilacji w tym samym czasie.

Zathrus
źródło
1

Wybór nieprzypisanego produktu z listy IANA jest zwykle wystarczający, ale jeśli mówisz o produkcie wypuszczonym na rynek, naprawdę powinieneś złożyć wniosek do IANA, aby otrzymać przypisany do Ciebie. Zwróć uwagę, że proces robienia tego jest prosty, ale powolny; ostatnim razem, kiedy się o nie ubiegałem, zajęło to rok.

Graeme Perrow
źródło
1

Jeśli dotyczy to aplikacji, która ma być szeroko stosowana, zarejestruj numer tutaj, aby nikt inny go nie używał.

W przeciwnym razie wybierz losowo nieużywany.

Problem z używaniem jednego z zakresu dynamicznego polega na tym, że może nie być dostępny, ponieważ może być używany jako dynamiczny numer portu.

Mark Baker
źródło
-1

Cóż, można odwołać niektóre powszechnie używane numery portów tutaj i staraj się nie używać cudzych.

Jeśli przez „otwarte dla publiczności” masz na myśli otwieranie portów we własnych systemach, porozmawiałbym z administratorami systemu o tym, z którymi portami czują się komfortowo.

Adam Bellaire
źródło
-1

Wybierz domyślny port, który nie koliduje z najpopularniejszymi demonami i serwerami. Upewnij się również, że numer portu nie jest wymieniony jako wektor ataku dla niektórych wirusów - niektóre firmy mają ścisłe zasady, zgodnie z którymi blokują takie porty bez względu na wszystko. Wreszcie, upewnij się, że numer portu jest konfigurowalny.

Alexander
źródło