Como escolher uma porta TCP / IP padrão para um novo serviço?

110

Ao desenvolver um aplicativo que ouvirá em uma porta TCP / IP, como alguém deve proceder para selecionar uma porta padrão? Suponha que este aplicativo será instalado em muitos computadores e que é desejável evitar conflitos de porta.

Kevin wong
fonte
1
A resposta é melhor aqui: stackoverflow.com/questions/10476987/…
matt2000

Respostas:

49

aqui e escolha uma porta com a descriçãoUnassigned

Kevin wong
fonte
11
Você está sugerindo que ele escolha uma porta abaixo de 100?
mpen
3
Qual devo escolher?
Owen
1
Se todos os desenvolvedores seguirem essa lógica, significa que todos os novos serviços se reúnem em torno das poucas portas não atribuídas. Qual seria a probabilidade de um serviço estar sendo executado em uma porta atribuída em comparação a uma porta não atribuída. (Desculpe se não estou expondo algum segredo comercial :)
hultqvist
1
Se você está procurando uma porta para usar em uma rede interna, considere esta resposta em uma pergunta semelhante: stackoverflow.com/questions/218839/…
adrianwadey
32

Primeira etapa: veja a lista da IANA :

Lá você verá no final da lista

"As portas dinâmicas e / ou privadas são aquelas de 49152 a 65535"

então essas seriam suas melhores apostas, mas depois de escolher um, você sempre pode pesquisar no Google para ver se há um aplicativo popular o suficiente que já o "reivindicou"

Curtisk
fonte
8
Mas usar uma porta dinâmica não me deixaria aberto a conflitos de porta intermitentes (embora raros)? Talvez seja mais seguro usar uma porta no intervalo registrado que não está atribuída ou atribuída a um aplicativo obscuro.
Kevin Wong,
4
a menos que você registre explicitamente sua escolha de porta com IANA, você executa as mesmas chances de conflito usando um "NÃO ASSINADO", eu acho. Na verdade, uma vez que existem muitos não atribuídos na extremidade inferior, aqueles provavelmente seriam mais prováveis ​​IMHO
curtisk
2
Sempre comece com o intervalo não atribuído, com a opção de uma porta configurável pelo usuário / administrador para lidar com possíveis conflitos. SOMENTE se o seu aplicativo atingir um uso amplo (pense em BitTorrent ou algum outro uso extenso), você realmente deve considerar se inscrever para uma porta atribuída. Caso contrário, fique fora do intervalo atribuído. Se for algo estritamente interno / pessoal, basta documentar as portas em uso por vários serviços e você estará bem, desde que as pessoas possam procurá-las em algum lugar online. Pense na faixa privada / dinâmica semelhante a IPs não roteáveis ​​- eles são perfeitos para uso pequeno / privado.
jefflunt de
3
Só não cometa o erro de presumir que seu aplicativo precisa de uma porta atribuída pela IANA porque você acha que seu aplicativo explodirá em uso antes de realmente explodir. :)
jefflunt
7
Com relação à faixa dinâmica, acho que a questão do "conflito" pode ter sido se, se um sistema operacional estiver usando essa faixa para portas efêmeras (como deveria), isso entraria em conflito com a porta que você escolheu se o sistema operacional decidir aleatoriamente para usar essa porta para, por exemplo, alguma conexão de saída. (O uso aleatório desse intervalo é o que as portas efêmeras servem, pelo que entendi.) Veja esta outra pergunta que afirma a preocupação com mais detalhes.
Garret Wilson
7

Se por amplamente usado você quer se proteger contra outras pessoas que o usem no futuro, você pode solicitar que seja marcado como reservado para seu aplicativo pela IANA aqui

jj33
fonte
5

A lista mais abrangente de números de portas oficiais e não oficiais da IANA que conheço é nmap-services .

Thorsten79
fonte
2

Você provavelmente deseja evitar o uso de quaisquer portas desta lista (Wikipedia).

Eu escolheria apenas um, e assim que o aplicativo for usado pelas massas, o número da porta será reconhecido e incluído nessas listas.

Mike Mazur
fonte
2

Como outros mencionaram, verifique IANA.

Em seguida, verifique seus sistemas locais / etc / services para ver se existem algumas portas personalizadas já em uso.

E, por favor, não fixe o código. Certifique-se de que seja configurável, de alguma forma, de alguma forma - se por nenhuma outra razão que você deseja ter vários desenvolvedores usando suas próprias compilações localizadas ao mesmo tempo.

Zathrus
fonte
1

A escolha de um produto não atribuído da lista da IANA geralmente é suficiente, mas se você está falando sobre um produto lançado comercialmente, você realmente deve se inscrever na IANA para que um seja atribuído a você. Observe que o processo de fazer isso é simples, mas lento; a última vez que me inscrevi, demorou um ano.

Graeme Perrow
fonte
1

Se for para um aplicativo que você espera que seja amplamente utilizado, registre um número aqui para que ninguém mais o use.

Caso contrário, basta escolher um não utilizado aleatoriamente.

O problema de usar um na faixa dinâmica é que ele pode não estar disponível porque pode estar sendo usado para um número de porta dinâmica.

Mark Baker
fonte
-1

Bem, você pode consultar alguns números de porta comumente usados aqui e tentar não usar os de mais ninguém.

Se por "aberto ao público em geral" você quer dizer que está abrindo portas em seus próprios sistemas, eu teria uma conversa com os administradores do sistema sobre com quais portas eles se sentem confortáveis ​​para fazer isso.

Adam Bellaire
fonte
-1

Escolha uma porta padrão que não interfira com os daemons e servidores mais comuns. Certifique-se também de que o número da porta não esteja listado como um vetor de ataque para alguns vírus - algumas empresas têm políticas rígidas onde bloqueiam essas portas de qualquer maneira. Por último, mas não menos importante, certifique-se de que o número da porta seja configurável.

Alexandre
fonte