- 1.
ip
: configuration raison "manuelle" - 2.
ifconfig
: renseigne sur la config réseau (outils en voie d’abandon) - 3.
/sbin/route -n
: permet de connaître l’adresse de sa passerelle (box) - 4.
ping
: vérifie la présence d’une station sur le réseau - 5.
ssh
: connexion à distance - 6.
ftp
: transfert de fichiers sur un réseau local (sans chiffrement) - 7.
bwm-ng
: mesure de débits (entrant et sortant) - 8. Problèmes liés au WiFi
D’après l’édition 11 des travaux d’Alain Leaper, 2018-04-10
Mis à jour le 2020-02-19
Licence GPL
Depuis l’avènement du NetworkManager
et de son icône dans la zone de
notification des environnements de bureau, on arrive généralement facilement à
ses fins en quelques clics.
Toutefois, quelques commandes peuvent encore rendre service.
1. ip
: configuration raison "manuelle"
à venir… cf. man ip .
|
2. ifconfig
: renseigne sur la config réseau (outils en voie d’abandon)
Notamment l’adresse IP et le numéro de série (Ethernet) de la carte réseau (MAC).
# ifconfig
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::cc72:8607:e3f3:35ff prefixlen 64 scopeid 0x20<link>
ether 18:XX:0f:XX:07:XX txqueuelen 1000 (Ethernet)
[…]
Cette commande dépend du paquet net-tools
sur les distributions basées sur Debian.
3. /sbin/route -n
: permet de connaître l’adresse de sa passerelle (box)
$ /sbin/route -n Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 600 0 0 wlan0
Cet utilitaire est très puissant et permet bien plus de choses, mais restons-en à l’adresse de la passerelle pour l’instant.
4. ping
: vérifie la présence d’une station sur le réseau
Bien que très pratique, cet utilitaire a été réservé à l’utilisateur root
sur Debian de Jessie à Stretch, mais plus dans Buster. Le paquet : apt install inetutils-ping
ou iputils-ping
; est requis.
# ping 192.168.1.1 (1)
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=9.83 ms
(2)
1 | adresse d’un modem / routeur sur le réseau local (Freebox, Livebox, Netgear…) |
2 | sortie par CTRL+C |
L’internet fonctionne actuellement (2018) majoritairement via le
protocole IP en version 4 (IPv4). Le nombre d’adresses disponibles pour ce
protocole est limité, et ne suffira pas à connecter un ordinateur plus un
téléphone portable par personne. Il faudra donc mettre à jour ce protocole. Le
successeur fonctionnel est IPv6. Cette mise à jour est utilisée par de grandes
entreprises depuis 2011, elle est même devenue un standard en juillet 2017 (RFC
8200). Il faudra donc un jour utiliser : ping6 ; la version IPv6 de l’utilitaire.
|
Pour vérifier rapidement l’accès réseau, il est possible de pinguer une machine censée être toujours disponible, comme le résolveur DNS quad9.net :
$ ping 9.9.9.9
5. ssh
: connexion à distance
S’assurer que le serveur SSH est bien installé sur la machine qui va proposer les fichiers, puis éditer son fichier de configuration :
# apt install openssh-server
S’assurer qu’un client SSH est disponible sur la machine qui doit récupérer les fichiers :
# apt install openssh-client
Tester que la connexion fonctionne :
$ ssh <user>@<machine-ip> (1) (2)
<user>@<machine-ip>'s password:
<user>@<machine-name> $ (3)
1 | <user> est le nom de l’utilisateur auquel se connecter sur la machine serveur, qui propose les fichiers |
2 | <machine-ip> est l’adresse IP du serveur sur le réseau local. Pour la connaître ifconfig ou ip addr . |
3 | Si le mot de passe est bon une invite de commande correspondante à la machine distance s’affiche. |
Il est également possible de se connecter sans avoir à saisir un mot de passe à chaque connexionvoir : configurer une connexion SSH par clé à une machine distante.
5.1. scp
: copie de fichier via SSH
S’il s’agit de transférer un simple fichier, il est alors possible de le faire en une commande :
$ scp <user>@<machine-ip>:<chemin>/<distant>/leBonFichier <répertoire>/<local>/
<user>@<machine-ip>'s password:
leBonFichier 100% 700MB 3.8MB/s 03:04
Si les chemins de la commande scp sont inversés, un fichier local est
envoyé vers la machine distante. Et si deux machines distantes sont spécifiées,
le fichier sera déplacé de l’une à l’autre.
|
5.2. sftp
: transfert de fichiers sécurisé
Si une connexion SSH
est disponible, alors il est possible d’utiliser le
protocole FTP
(et ses commandes get
et put
, en passant par cette
connexion :
$ sftp <user>@<machine-ip>
<user>@<machine-ip>'s password:
sftp>
5.3. sshfs
: montage local d’un système de fichier distant
Mais il est encore possible d’installer le paquet sshfs
et de monter
directement le dossier accessible de la machine distance dans le système de
fichier de sa machine locale, et accéder ainsi aux fichiers distants simplement
via son gestionnaire de fichier graphique, ou la commande cp
du terminal.
# apt install sshfs
$ mkdir stargate
$ sshfs <user>@<machine-ip>:<chemin>/ stargate
$ ls stargate
leBonFichier (1)
1 | Le fichier est apparu dans le dossier (en supposant qu’il soit présent sur la machine distante. |
Pour démonter le répertoire en question :
$ fusermount -u stargate
6. ftp
: transfert de fichiers sur un réseau local (sans chiffrement)
Les paquets recommandés sont vsftpd
ou lftp
.
L’installation de vsftpd
crée le répertoire /home/ftp
ou /srv/ftp
. C’est là que devront être copiés les fichiers à proposer au reste du réseau.
Pour activer rapidement le serveur dans un environnement de confiance (réseau domestique), éditer /etc/vsftpd.conf
:
anonymous_enable=YES (la ligne doit être valide, pas de #...)
Et s’assurer que le fichier /etc/passwd
pointe l’utilisateur ftp
vers le bon répertoire, celui créé à l’installation du paquet :
ftp:x:108:65534::/home/ftp:/bin/false
Enfin, dans le fichier /etc/hosts
on donne la correspondance entre adresses IP et nom de machine, y compris la machine locale.
192.168.x.y <nomStation>
6.1. Commandes basiques et récupération de fichier
<nomStation>
est à remplacer par le nom de la station distante ou son adresse IP.
$ ftp <nomStation>
> Name (<nomStation>:user): anonymous (1)
> Password : (2)
> (3)
> help (4)
> help <uneCommande> (5)
> get <nomFichier> (6)
> ! <commandeLocale> (7)
> ! ls (8)
> ! (9)
> [CTRL + D] (10)
> bye (11)
1 | entrer "anonymous" puis touche Entrée |
2 | simplement touche Entrée pour choisir un mot de passe vide |
3 | À partir de maintenant les commandes affectent la station distante |
4 | liste les commandes disponibles |
5 | donne des info. sur la commande <uneCommande> |
6 | transfert le fichier (distant) dans le répertoire de la station locale |
7 | pour passer une command locale |
8 | liste les fichiers présent dans le répertoire local |
9 | sans commande, on revient en local |
10 | repasse sur le distant, fin de l’appartée locale |
11 | fin à la session ftp , retour à l’invite de commande locale… (saisir CTRL+D à nouveau à la place de bye aurait eu le même effet) |
6.2. Ajout de fichiers au répertoire des fichiers disponibles
L’écriture dans le répertoire de vsftpd
est réservée à l’administrateur (root
).
Pour autoriser l’écriture par un utilisateur particulier :
-
Déterminer le groupe du répertoire
…/ftp
(en généralnogroup
ouftp
) via la commande :ls -l
-
Ajouter l’utilisateur particulier dans ce groupe :
# adduser <nomUtilisateur> <nomGroup>
-
Donner le droit en écriture aux membres du groupe en question :
# chmod g+w …/ftp
-
L’utlisateur doit alors ouvrir une nouvelle session (pour que ses groupes soient mis à jour)
-
Pour vérifier que cela s’est bien passé, lister les groupes de l’utilisateur en question :
$ groups
7. bwm-ng
: mesure de débits (entrant et sortant)
Dépend du paquet éponyme : bwm-ng
.
$ bwm-ng -I wlan1,eth0
Sortie par q
.
8. Problèmes liés au WiFi
Ça reste plus compliqué que le filaire…
8.1. Quelles caractéristiques pour cette interface ?
# dmesg | grep -i 'wireless'
Avec un peu de chance, on peut avoir le nom du module qu’il faut dans la réponse…
Si c’est une clé usb
$ lsusb
8.2. Pour voir ce qui se passe quand le WiFi se lance
# dmesg |grep -i 'wlan'
8.3. nmcli
: le NetworkManager en ligne de commande
L’interface en ligne de commande du NetworkManager permet d’activer toutes ses fonctions (sur le principe, je n’ai pas vérifier exactement ;-p).
Notons ici la commande pour activer le WiFi :
$ nmcli radio wifi on
Pour lister les réseau WiFi disponibles :
$ nmcli dev wifi list
IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
* FFDN.org_0676970253 Infra 1 270 Mo/s 77 ▂▄▆_ WPA2
Pour se connecter à un réseau WiFi donné :
$ nmcli --ask dev wifi connect FDN.fr_0676970253
Pour indiquer qu’une interface réseau doit chercher à se connecter automatiquement au démarrage :
$ nmcli device set p2p0 autoconnect yes
8.4. Verrou logiciel : rfkill
Vérifier que le WiFi n’est pas hors service pour cause de commutateur matériel ou logiciel :
# rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
18: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
Nécessite l’installation du paquet rfkill
.
# rfkill unblock 0
Débloque le commutateur logiciel de la carte numérotée 0
lors de la commande
précédente.
# rfkill unblock all
Débloque les commutateurs logiciels de toutes les interface réseau sans fil (WiFi, Bluetooth…).
8.5. Plus de WiFi en sortie de veille ?
Il est possible que décharger le module du noyau concernant le WiFi pour le recharger tout neuf fasse revenir la connectivité.
Pour cela, il faut trouver le module incriminé :
# lsmod |grep -i 'wifi'
rtlwifi 71765 1 rtl8192cu
Pour avoir plus d’info sur ce module :
# systool -v -m rtl8192cu
Nécessite l’installation du paquet sysfsutils
.
# modinfo rtlwifi # modinfo rtl8192cu
Puis décharger et recharger le module en question :
# rmmod --force rtlwifi # modprobe rtlwifi
Cette astuce fonctionne également avec le module de la souris (ou touchpad)
nommé psmouse
dans de nombreux cas et elan_i3c
pour une machine Asus
ux305ca.
8.6. Autres commandes
8.6.1. iwlist
Lister les réseaux disponibles et leurs caractéristiques, y compris concernant la connexion courante :
# iwlist scan
8.6.2. Complément
Il est des cas, où il faut intervenir directement sur le module
avec la commande modprobe
pour donner certaines directives au module;
voire créer un fichier dans /etc/modprobe.d/nomModule.conf
.
Voir Memo_20 pour la commande modprobe
.