Pergunta

Eu escrevi um serviço WCF hospedado por um serviço do Windows e ele precisa escutar em uma porta TCP / IP conhecido. Pelo que gama posso com segurança alocar uma porta para uso dentro da minha organização? Que a porta será incorporado nos arquivos de configuração para o serviço e os clientes que estão consumindo o serviço.

Foi útil?

Solução

Pick um número de porta de 49152 a 65535.

IANA publica uma lista de portas atualmente atribuídos.

http://www.iana.org/assignments/port-numbers

O dinâmico e / ou portas particulares são aqueles de 49152 a 65535. Esta é a faixa de onde você deve escolher uma porta para as suas aplicações in-house. Claro que pode ser usado qualquer porta pertencente a uma das gamas não atribuídos na lista publicada. Mas esteja ciente de que, escolhendo um número de porta a partir dessas faixas não atribuídas não há garantia alguma de que a porta que você escolher não será uma porta reservada no futuro.

NÚMEROS UNASSIGNED PORT NÃO DEVE SER USAVA. O NÚMERO IANA irá atribuir o Para a porta após o seu pedido Foi aprovado.

E certifique-se de que o número da porta que você escolhe é configurável como você disse:

Essa porta será incorporado na Arquivos de Configuração para o serviço ea clientes que estão consumindo o serviço.

Isso irá evitar dores de cabeça em caso de algum outro partido 3rd you-can software não-touch está usando seu número de porta. Se isso acontecer basta ir em frente e alterá-lo no arquivo de configuração e ele simplesmente funciona.

Outras dicas

Ports 0-1023 são as portas bem conhecidas e são atribuídos pela IANA. Estes só deve ser usado para os protocolos atribuídos em redes públicas.

Ports 1024-65535 costumava ser chamado de números registrados Porto (ver RFC1700 ), mas agora estão divididas em duas áreas (ver rfc6335 ).

Ports 1024-49151 são as portas de usuário e são os únicos a usar para seus próprios protocolos.

Portos 49152-65535 são as portas dinâmicos e não deve ser prescrita a um protocolo.

As portas de usuário pode ser usado para qualquer protocolo, mas há um número finito, assim que seu uso irá colidir com alguém elses usar em algum lugar da rede. IANA manter um registro de números de porta registrados (0-49151). Se o seu protocolo será usado em redes públicas, então você precisa olhar para registrá-lo com o IANA. Se você está apenas usando-o dentro de sua própria rede, em seguida, escolher uma porta dentro desta área (1024-49151) e verificar que a porta contra o IANA registo para se certificar de que não é usado por um protocolo que poderia ser usado em sua rede. Para uso privado é provavelmente melhor para escolher um número que é atribuído a um protocolo que você sabe que não vai ser utilizado do que escolher um que não está atribuído e por isso pode ser atribuído no futuro.

Não use um número de porta dentro do intervalo dinâmico. Estas portas são atribuídas pelo sistema operacional, de forma dinâmica e um tanto aleatoriamente. Se você abrir uma conexão de cliente (usando bind () com porta = 0), será atribuído uma porta não utilizada da gama dinâmica. Não há nenhuma maneira de garantir que uma porta nesse intervalo será sempre livre para o seu protocolo.

curta resposta:. Evite até e incluindo 1023, ou mais de 49152, e testar a porta escolhida contra os serviços na sua rede nada

Se você tiver tomado as precauções razoáveis ??que parece que você (colocando o número da porta em um arquivo de configuração), não deve ser um enorme rompimento se você descobrir mais tarde um conflito.

Mas (para que eu possa acrescentar algo para as outras sugestões que surgiram enquanto eu estive digitação) Certifique-se de torná-lo fácil de mudar! Se está em arquivos de configuração, tornar óbvio. Documentá-lo e indicá-lo na solução de problemas. É o tipo de coisa que poderia dar errado, por isso se torna mais fácil de depurar se ele precisa mudar.

Além das outras sugestões sobre a escolha de uma porta de aplicação comum, eu sugiro que você faça o configurável porto dentro de sua aplicação. números de porta codificados são uma má idéia, especialmente se você encontrar mais tarde um conflito de porta com outro aplicativo e necessidade de sua mudança.

Aqui está uma boa lista de aplicação comum portas . Faça a sua própria escolha em um slot vazio. Talvez você também deve verificar sua rede para qualquer aplicação especial em casa.

Normalmente altos números de porta estão disponíveis e gostaria de sugerir-los, mas eles poderiam ser bloqueada por firewalls.

Como uma nota lembre-se de verificar os porta por netstat / a / n para ver se a sua utilização por outra aplicação ou não. Eu descobrir vista usou o 49152 .... por algum motivo nível da aplicação. Basicamente, porque a maior parte do ouvinte nível do sistema não implementa porta compartilhando seu muito seguro usar os portos que não são usados ??em tudo.

tem bom dia de programação Amir

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top