Comment puis-je vérifier si un port écoute sur un serveur Linux?
netstat -an | grep PORTNUMBER | grep -i listen
Si la sortie est vide, le port n'est pas utilisé.
Comment puis-je vérifier si un port écoute sur un serveur Linux?
netstat -an | grep PORTNUMBER | grep -i listen
Si la sortie est vide, le port n'est pas utilisé.
Réponses:
Vous pouvez vérifier si un processus écoute sur un port TCP ou UDP avec netstat -tuplen
.
Pour vérifier si certains ports sont accessibles de l'extérieur (c'est probablement ce que vous voulez), vous pouvez utiliser un scanner de ports comme Nmap depuis un autre système. Exécuter Nmap sur le même hôte que vous voulez vérifier est tout à fait inutile.
-t
, -u
, -p
, -l
, -e
et -n
. Grâce à l’analyseur d’options, il peut être exprimé par -tuplen
. linux.die.net/man/8/netstat
telnet
commande ne prend généralement en charge que le protocole TCP. Vous n'avez donc pas de chance si le service que vous souhaitez vérifier s'exécute sur un autre protocole.
sudo netstat -tuplen
. Cela vous donnera des processus appartenant non seulement à vous, mais aussi à d'autres, et imprimera des détails supplémentaires (tels que PID / nom du programme) s'ils ne sont pas déjà affichés en tant qu'utilisateur non root.
Le moyen le plus rapide de vérifier si un port TCP est ouvert (y compris les pare-feu matériels que vous pourriez avoir) consiste à taper, à partir d'un ordinateur distant (par exemple, votre bureau):
telnet myserver.com 80
Qui va essayer d'ouvrir une connexion au port 80 sur ce serveur. Si vous obtenez une pause ou si vous refusez, le port n'est pas ouvert :)
if you get a time out or deny, the port is not open
OK, en résumé, vous avez un serveur auquel vous pouvez vous connecter. Vous voulez voir si quelque chose écoute sur un port. En tant que root, lancez:
netstat -nlp
Cela affichera une liste des processus d'écoute sur les ports TCP et UDP. Vous pouvez scanner (ou grep) le processus qui vous intéresse et / ou les numéros de port que vous souhaitez voir.
Si le processus auquel vous vous attendez n'existe pas, vous devez le démarrer et vérifier à nouveau netstat. Si le processus est en place, mais qu'il écoute sur une interface et un port auxquels vous ne vous attendiez pas, il y a un problème de configuration pas d'autres lignes pour le port 3306, dans le cas de la configuration par défaut pour MySQL).
Si le processus est terminé et qu'il écoute sur le port que vous attendez, vous pouvez essayer d'exécuter un "telnet" sur ce port depuis votre Macbook dans votre bureau / domicile, par exemple,
telnet xxxxxxxxxxxx.co.uk 443
Cela vérifiera si (en supposant les ports standard) s’il existe un serveur Web configuré pour SSL. Notez que ce test utilisant telnet ne fonctionnera que si le processus écoute sur un port TCP. Si c'est un port UDP, vous pouvez aussi essayer avec n'importe quel client que vous alliez utiliser pour vous y connecter. (Je vois que vous avez utilisé le port 224. Ceci est masqdialer, et je n'ai aucune idée de ce que c'est).
Si le service existe, mais que vous ne pouvez pas y accéder de l'extérieur, un pare-feu vous bloque. Dans ce cas, lancez:
iptables -L -n
Cela affichera toutes les règles de pare-feu telles que définies sur votre système. Vous pouvez poster cela, mais généralement, si vous n'autorisez pas tout sur la chaîne INPUT, vous devrez probablement autoriser explicitement le trafic sur le port en question:
iptables -I INPUT -p tcp --dport 224 -j ACCEPT
Ou quelque chose de ce genre. N'exécutez pas vos commandes de pare-feu à l'aveuglette en vous basant sur ce qu'un étranger vous a dit sur Internet. Considérez ce que vous faites.
Si votre pare-feu sur le boîtier autorise le trafic que vous souhaitez, votre hébergeur utilise peut-être un pare-feu (par exemple, ils ne permettent que SSH (22 / tcp), HTTP (80 / tcp) et HTTPS (443 / tcp) et refuser tout autre trafic entrant). Dans ce cas, vous devrez ouvrir un ticket de service d'assistance avec eux pour résoudre ce problème, bien que je suppose qu'il se peut que quelque chose dans votre cPanel le permette.
J'utilise le combo de netstat
et lsof
:
netstat -an | grep <portnumber>
lsof -i:<portnumber>
Pour voir si le port est utilisé et ce qui l’utilise.
Si vous êtes connecté au système et pouvez exécuter une commande en tant que root, vous pouvez vérifier la sortie de iptables.
iptables -L -vn
Cela listera les règles de pare-feu et les ports cibles ouverts ACCEPT
ainsi que les ports de ports explicitement fermés REJECT
.
firewall-cmd --query-port=port/protocol
, par exemple firewall-cmd --query-port=80/tcp
.
lsof -i :ssh
listera tous les processus avec le port ssh ouvert, les connexions à l'écoute et actives.
sudo
s'il ne renvoie aucune sortie.