Réseau - commandes GNU/Linux & Windows
Quelques commandes "réseau" utiles...
Tableau résumant les commandes réseau Linux classiques et nouvelles, par catégorie
Ethernet
- lshw -class network
- lspci | egrep -i --color 'network|ethernet'
- ethtool
- cat /proc/net/dev
- cat /run/network/ifstate (mais pas fiable, voir "man ifup")
- ifconfig
- ex : ifconfig eth0 | grep inet | awk '{ print $2 }' (affiche l'adresse IP)
- Bonding(aggrégation - redondance)
Wifi
Nouvelles commandes GNU/Linux
- iproute2 est dédié réseau (config, debug, contrôle de trafic) et est inclus
dans le noyau Linux à partir de sa version 2.4
- la commande ip remplace ifconfig, route
(etc.), et est beaucoup plus riche en fonctionnalités
- la commande ss remplace netstat
- Si le script /etc/init.d/networking a été converti en job Upstart, la commande “start networking” remplace “service networking start” et
“/etc/init.d/networking start”) - voir : man 8 start
Re-démarrer la partie réseau d'une distrib GNU/Linux : service network restart (voir aussi la commande start)
Voir la configuration réseau : adresse IP de l'ordinateur, adresse IP du gateway (passerelle), et adresses IP des DNS.
- Windows : ipconfig /all
- GNU/Linux : "ip addr", ou "ifconfig", ou "ifconfig -a", ou "ifconfig eth0" (pour l'interface réseau eth0)
Renouveller l'adresse IP que l'ordinateur demande au serveur DHCP.
- Windows : ipconfig /renew
- GNU/Linux : sudo dhclient, ou "sudo dhclient -r eth0 ; dhclient eth0" (pour l'interface
réseau eth0)
Afficher/modifier les tables de routage réseau.
- Windows : route print (ou : netstat /r).
- GNU/Linux : "ip route" ou "route".
Voir les infos du réseau wifi auquel on est connecté
- Windows : netsh wlan show profiles nom_SSID_du_réseau key=clear
- Windows : netsh wlan show profiles (affiche les profils sur l'interface Wi-Fi: nom_SSID_du_réseau, etc.)
Voir par quelles ports réseau on transite pour atteindre une machine
- GNU/Linux : "iproute get adresse_IP_de_cette_machine"
Voir par quelles machines on transite pour atteindre une machine, et le délai induit.
- Windows : tracert (exemple : tracert www.google.com)
- GNU/Linux : tracepath (infos + info MTU), traceroute (exemple : traceroute www.google.com) ou mtr (utile pour diag. réseau)
Afficher les tables de traduction d'adresses IP en adresses physiques utilisées par le protocole de résolution d'adresses ARP.
- Windows : arp -a
- GNU/Linux : arp
GNU/Linux : démarrage, arrêt des interfaces réseau
- ifup, ifdown (utilisent la commande ip, se basent sur /etc/network/interfaces) (voir "man ifup")
- ifconfig
GNU/Linux : en cas de pb
- ip addr list
- ip route list (ou : route -n, ou netstat)
- ip neigh list
- ip neigh flush dev eth0 (vide le cache arp)
- ping ou mtr
GNU/Linux : en cas de nécessité, capture de paquets réseau
( en //, voir si des erreurs apparaissent dans /var/log/messages, exécuter ethtool, netstat, etc.)
- tcpdump (article, infos
Wikipedia)
- divers
- -D (affiche les ports réseaux)
- -e (affiche aussi les infos VLAN)
- affichage de + d'infos réseau
- tcpdump -pni eth0 arp
- Autres outils : Wikipedia
- analyse de ce qui se passe (option -v ou -vv pour + de détails)
- tcpdump -i any host 192.168.0.2 and port 80
- tcpdump -n -s0 host 192.168.0.5 (uniquement ce qui vient de cette machine)
- tcpdump -nnvvAi eth0 -s 0 | grep "texte cherché"
- tcpdump -i eth0 -s 65535 -w /tmp/trace (certaines versions de tcpdump ne capturent que les 96 premiers octets des paquets =>
pour capturer les paquets dans leur intégralité : -s 65535)
- tcpdump -pni eth0 -c 5 (pour l'interface réseau eth0)
- tcpdump -r /tmp/trace | less (ou lire avec Wireshark ou tshark)
- tutos
- tcptrace
- permet d'extraires des infos et de créer des graphiques, à partir de données récoltées par tcpdump, etherpeek, et WinDump.
GNU/Linux - voir ou modifier les infos hardware, drivers, optimiser
- cat /etc/sysconfig/hwconf (RHEL)
- ethtool
- ethtool eth0
- ethtool -S eth0 (statistiques, taux de collision, etc.)
- ethtool -i eth0 (affiche des infos sur le driver, les paramètres)
- ethtool -k eth0 (affiche les paramètres "offload", l'option -K permet de les
modifier)
- ethtool -g eth0 (affiche la taille des fenêtre
de réception et de transmission, l'option -G permet de modifier cela) - tuto
GNU/Linux - commandes réseau
- ip neigh show
- indique l'environnement réseau
- iptraf (article)
- moniteur réseau interactif (statistiques en temps réel)
- ss (article)
- statistiques au niveau socket
- ethtool
- statistiques, infos, configuration des paramètres et du Wake-on-LAN, etc.
- nc
- ss (packages iproute2 et iproute2-doc)--- remplace netstat
- ss -s (statistiques)
- ss -t (liste les connexions tcp "established" ou "connected")
- ss -to (indique les keepalive)
- ss -ta (liste aussi les connexions tcp"listening")
- ss -ntl (liste seulement les "listening sockets", -n empêche la résolution de nom)
- ss -tl4 (liste seulement les connexions IPv4)
- ss -t4 state fin-wait-2 (connexions en fin-wait-2)
- ss -tlp (indique le process et le pid associés au socket)
- $ watch -n 2 "ss -t4 state fin-wait-1" (suivi dynamique des connexions en état fin-wait-1)
- autres exemples dans le man et ici
netstat - voir les connexions réseau et leur état (netstat est remplacé par ss dans
iproute2 sous GNU/Linux)
Aide GNU/Linux : man netstat
Aide Windows : netstat /?
Exemples
- interfaces réseau
- sous GNU/Linux : netstat -ei
- toutes les connexions
- netstat -s (statistiques)
- netstat -tnpo (sous GNU/Linux, affiche aussi la config Timer (on, off, keepalive))
- netstat -anp
- netstat -o (Affiche l'identificateur du processus associé à la connexion)
- netstat -ab (option b : infos sur les programmes associés aux connexions)
- Sous Windows, ces options nécessitent d'être Administrateur, sinon apparaît "L'opération
demandée nécessite une élévation" ; solution : click-droit sur "Invite de commandes" (dans le sous-menu "Système Windows" sous
Windows 10, ou dans le sous-menu "Accessoires") et sélectionner : "Exécuter en tant
qu'administrateur".
- netstat -abn (plus rapide, car n'interroge pas le serveur DNS pour essayer de résoudre le nom des ordinateurs distants)
- Sous Windows, même remarque qu'avec les options -ab.
- Sous Windows, la commande "tasklist /SVC" permet d'afficher entre-autres le PID des processus en cours.
- lsof -i (affiche les fichiers utilisés au niveau réseau, commande GNU/Linux)
- nb de connexions, classées par état (ESTABLISHED, TIME_WAIT, etc.)
- sous GNU/Linux
- netstat -an | grep tcp | awk '{print $6}' | sort | uniq -c
- netstat -an | awk '/^tcp/ {++S[$NF]} END {for (i in S) print i, S[i]}'
- suivi dynamique des connexions sous GNU/Linux
- connexions HTTP
- GNU/Linux : connexions Internet actives (uniquement serveurs)
- GNU/Linux : connexions Internet actives (serveurs & connexions établies)
- Plus d'infos, sous Windows par "netstat
/?", et sous GNU/Linux par "man netstat".
La commande nslookup interroge le DNS (serveur de nom) pour avoir la correspondance
entre le nom d'un serveur (ici : google.com) et son adresse IP.
- nslookup www.google.com
- Cela permet de voir si le serveur de nom est joignable, et de voir si la correspondance "nom/adresse IP" du serveur (ici : google.com) est connue du DNS.
- Sous GNU/Linux : nslookup, ou dig (aussi sous Windows).
Purger le cache DNS
- sous Windows : ipconfig /flushdns
- sous GNU/Linux : /etc/rc.d/init.d/nscd restart
Purger le cache NetBIOS (Windows)
ping (IPv4),ping6 (IPv6) -
envoie des paquets de données au serveur spécifié, et vérifie si ce serveur les renvoie.
- ping localhost
- ping www.nom.com (ou adresse IP)
- ping <l'adresse IP du "default gateway"> (adresse
qui peut être obtenue par la commande "route")
- ping -Rv -c 20 <l'adresse IP>
- Plus d'infos, sous Windows par "ping /?", et sous GNU/Linux par "man ping".
Divers
But : libérer les processus serveur sqlnet orphelins, éviter que les verrous (locks) au niveau des tables de la base de données restent établis
trop longtemps après des déconnexion d'utilisateurs.
Au niveau Linux
Tuning
Linux kernel tcp / ip tuning
https://www.roedie.nl/wiki/index.php?title=Proc_Settings
The optimized Linux kernel TCP
parameters to improve server load capacity
Vérif des paramètres réseau TCP :
# sysctl -a | grep tcp
# sysctl -a | grep keepalive
Modif dynamique :
# sysctl -w net.ipv4.tcp_keepalive_time = 3000
# sysctl -w net.ipv4.tcp_fin_timeout=15
Modif permanente (ok au reboot) :
Ajouter ou modifier dans /etc/sysctl.conf les valeurs suivantes et rebooter :
net.ipv4.tcp_keepalive_time = 3000 (par défaut keepalive_time est à 7200 secondes, (2 heures))
net.ipv4.tcp_fin_timeout=15 (au lieu de 90, temps durant lequel un socket est maintenu en état FIN_WAIT_2)
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_syn_retries = 1 (valeur en minutes)
Au niveau Oracle 10 et 11
sqlnet.expire_time=1
Active le mécanisme de DCD (Dead Connection Detection), modifie le sqlnet.ora du
listener d'Oracle, le programme oracleorcliut (port 1521)
passe à on (vérifiable par : netstat -tnpo).
Ressources réseau local (Windows)
Commandes à exécuter dans une "Invite de commandes" (cmd.exe) :
net view (liste les noms des serveurs sur le réseau local)
net view \\SERVEURA (liste les noms des ressources partagées de ce SERVEURA)
net view \\192.168.178.50 (de même, en utilisant l'adresse IP de ce SERVEURA)
