Je voudrais définir certains services Linux sur des ports non standard - quel est le numéro de port valide le plus élevé?
(2 ^ 16) -1, ou 0-65,535 (le -1 est dû au fait que le port 0 est réservé et indisponible). (modifié parce que o_O Tync m'a rappelé que nous ne pouvons pas utiliser le port 0, et Steve Folly m'a rappelé que vous avez demandé le port le plus élevé, pas le nombre de ports)
Mais vous y allez probablement dans le mauvais sens. Il y a des gens qui plaident pour et contre les ports non standard. Je dis qu'ils ne sont pas pertinents, sauf pour le scanner le plus occasionnel, et le scanner le plus occasionnel peut être tenu à distance en utilisant un logiciel à jour et des techniques de pare-feu appropriées, ainsi que des mots de passe forts. En d'autres termes, les meilleures pratiques de sécurité.
1-65535 sont disponibles et les ports dans la plage 1-1023 sont les privilégiés: une application doit être exécutée en tant que root pour écouter ces ports.
Bien que 1-65535 soient des ports légitimes TCP et il est vrai que 1-1023 sont pour des services de port bien connus. Vous pouvez rencontrer des problèmes aléatoires avec vos propres services s'ils sont démarrés après un port éphémère est établi. Pour ceux qui ne le savent pas, les ports éphémères sont ceux qui sont connectés localement pour des points de terminaison distants (ou quelque chose dans ce sens). Donc, si vous écrivez un service TCP qui écoute sur le port 20001. Vous pouvez être bon aujourd'hui ... et demain. Mais un jour, votre service peut démarrer et tenter de se lier à 20001 et il échouera car il a été pris comme un port éphémère. Il existe une solution. Vous devez avoir votre administrateur, ou vous-même, modifiez la stratégie de plage de ports éphémères du système sur votre serveur. Sur les systèmes Linux, cela se fait en deux étapes:
Les deux étapes doivent être effectuées, inutile que vous envisagiez de redémarrer, auquel cas l'étape dynamique n'est pas nécessaire. Pour définir votre plage de 40000 à 65535, procédez comme suit:
Dynamique
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
ou
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
permanent
Ajoutez ce qui suit à /etc/sysctl.conf:
net.ipv4.ip_local_port_range = 40000 65535
Pour lire le paramètre actuel ou pour confirmer la modification:
/sbin/sysctl net.ipv4.ip_local_port_range
La sortie sera quelque chose comme ceci:
net.ipv4.ip_local_port_range = 9000 65500
Assurez-vous de bien comprendre le but de votre serveur. Réduire trop la portée peut entraîner d'autres problèmes.
Happy Coding! (Ou quoi que vous fassiez)