2011-03-31 3 views
1

Utilisation de CentoS 5.5.Spécification des adresses IPv6 à l'unité de fusion

J'ai un serveur Apache 2.x fonctionnant sur le port 9999 et j'essaye de le trouver using l'unité de fusion.

Je peux le trouver en utilisant netstat, i.e. .:

netstat | grep 9999

sorties:

tcp  0  0 :::9999      :::*      LISTEN 

Question 1: Pourquoi netstat affiche le port en utilisant la syntaxe IPv6?

Question 2: Quelle commande de fusion puis-je utiliser pour trouver le pid du serveur? Aucun des travaux suivants:

tcp -n ::: four 9999

-n 9999 tcp fusion

fusion -4 tcp -n 9999

-6 tcp -n fusion 9999

fuser -6 -n tcp ::: 9999

Merci!

Répondre

0

Pourquoi est-ce qu'il écoute sur IPv6? Eh bien, par défaut sur Linux, la liaison à [::] se liera non seulement à IPv6, mais se liera également à une adresse compatible IPv4. L'espace ::ffff:0.0.0.0/96 dans IPv6 est utilisé pour les connexions compatibles IPv4.

L'avantage du logiciel est qu'il n'a besoin que de se lier à un socket. Cela rend le codage légèrement plus simple.

Toutes les distributions ou tous les systèmes d'exploitation ne le font pas. Par exemple, Windows vous oblige à lier explicitement à [::] ou 0.0.0.0 afin de prendre en charge IPv6 ou IPv4. Et sur Linux, si le net.ipv6.bindv6only sysctl est défini sur 1 (comme c'est le cas sur Debian, mais pas sur la plupart des autres distributions, y compris CentOS ou Ubuntu), vous devrez vous lier explicitement à [::] et 0.0.0.0 pour les deux.

Quant à la façon de le chercher dans fuser, fais comme ça:

# fuser 80/tcp 
80/tcp:    3052 3143 3144 3146 3147 3148 

Ou pour montrer ce processus est lié au port:

# fuser -v 80/tcp 
        USER  PID ACCESS COMMAND 
80/tcp:    root  3052 F.... apache2 
        www-data 3143 F.... apache2 
        www-data 3144 F.... apache2 
        www-data 3146 F.... apache2 
        www-data 3147 F.... apache2 
        www-data 3148 F.... apache2 
+0

Merci pour votre réponse, mais l'utilisation de 9999/tcp ne fonctionne pas. – perlman

+0

J'ai un processus d'écoute sur le port TCP 9999, et "fuser -v 9999/tcp" fonctionne pour moi. Assurez-vous également de l'exécuter en tant que root (avez-vous remarqué que j'utilisais # plutôt que $ comme invite de shell ci-dessus)? –

0

On était fix était de désactiver ipv6:

Ajouté à /etc/modprobe.conf:

alias net-pf-10 sur le

Je ne pense pas que fuser aime ipv6.

+0

Les sons comme fuser n'ont pas été compilés correctement.A savoir, il devrait être compilé avec --enable-ipv6 en tant que paramètre de ./configure. –

Questions connexes