Description du problème
Utilisez Ubuntu18.04 sur l'ordinateur industriel pour le contrôle, connectez d'autres matériels tels que le lidar au port réseau de l'ordinateur industriel via un câble réseau, et l'ordinateur industriel utilise une carte réseau sans fil pour se connecter à Internet (navigation sur le Web).
Dans ce cas, on rencontre souvent les problèmes suivants : l'ordinateur industriel est connecté simultanément à plusieurs ports réseau filaires et à Internet via une carte réseau sans fil, mais il ne peut pas se connecter à Internet lors de l'ouverture du navigateur ou de l'utilisation de l'outil apt. pour télécharger et installer le package de fonctions. Impossible de se connecter à Internet.
En effet, la priorité réseau par défaut de l'ordinateur industriel est supérieure à la priorité du réseau sans fil (seuls les réseaux sans fil peuvent se connecter à Internet).
Solution
- Améliorez la priorité d'utilisation de la carte réseau sans fil en modifiant la valeur métrique du réseau.
- La métrique est le nombre de sauts spécifié pour la route (la plage est de 1 à 9999). Elle est utilisée pour sélectionner la route qui correspond le mieux à l'adresse de destination dans le paquet transféré parmi plusieurs routes de la table de routage. Le nombre de sauts peut refléter le nombre de sauts, la vitesse du chemin, la fiabilité du chemin, le débit du chemin et les attributs de gestion. Plus la valeur de la métrique est petite, plus la priorité est élevée. Si les valeurs métriques de deux cartes réseau sont identiques, il y aura un conflit de carte réseau en raison de la priorité de préemption et une carte réseau ne pourra pas se connecter.
méthode spécifique
1. Méthode 1 : utilisez les commandes du terminal pour augmenter temporairement la priorité de la carte réseau sans fil
Méthode 1 : convient au débogage temporaire, augmente la priorité du réseau temporaire connecté. Une fois le réseau déconnecté, la reconnexion sera invalide. L'ordinateur industriel doit être réinitialisé après le redémarrage.
Interrogez la table de routage :
route -n
Le résultat est le suivant :
Interface en anglais :
Interface chinoise :
Dans la figure, la colonne Passerelle affiche l'adresse IP de la passerelle et la colonne Iface affiche le nom de la carte réseau (eno1 et enp6s0 sont les noms de port réseau câblé et wlp1s0 est le nom de la carte réseau sans fil).
1.2 Entrez la commande dans le terminal et spécifiez la valeur métrique
1.2 Entrez la commande dans le terminal et spécifiez la valeur de la métrique
Vous pouvez le spécifier via le nom de la carte réseau ou via l'IP de la passerelle (choisissez-en une)
La première:
- Spécifiez la valeur métrique via le nom de la carte réseau. Installez ifmetric pour la première fois, puis modifiez la valeur métrique.
- sudo apt install ifmetric : installez ifmetric ;
sudo ifmetric wlp1s0 90 : Dans la commande, wlp1s0 est le nom de la carte réseau sans fil. Modifiez le numéro de saut (valeur métrique) de la carte réseau sans fil wlp1s0 à 90 (plus la valeur est petite, plus la priorité est élevée)
sudo apt install ifmetric
sudo ifmetric wlp1s0 90
Exécutez la commande route -n sur le terminal pour réinterroger la table de routage et vérifier si la valeur de métrique correspondante est définie avec succès. Le résultat est comme indiqué ci-dessous.
Interface en anglais :
Interface chinoise :
La figure montre que la valeur métrique de la carte réseau sans fil wlp1s0 est définie sur 90, ce qui est inférieur à la valeur métrique des autres réseaux, elle sera donc utilisée en premier. À ce stade, le navigateur utilisera la carte réseau sans fil pour accéder à Internet.
Le deuxième type :
- Spécifiez la valeur de la métrique via l'adresse IP de la passerelle
-
ip route add default via 192.168.43.1 metric 80
192.168.43.1 dans la commande est l'adresse IP de la passerelle connectée à la carte réseau sans fil.
Exécutez la commande route -n sur le terminal pour réinterroger la table de routage et vérifier si la valeur de métrique correspondante est définie avec succès. Le résultat est comme indiqué ci-dessous.Interface en anglais :
-
La figure montre que la valeur métrique de la passerelle 192.168.43.1 est définie sur 80, ce qui est inférieur à la valeur métrique des autres réseaux, elle sera donc utilisée en premier. À ce stade, le navigateur utilisera la passerelle 192.168.43.1 pour accéder à Internet.
2. Méthode 2 : utiliser netplan pour configurer le réseau
Méthode 1 : La méthode 2 convient au débogage à long terme pour augmenter la priorité du réseau connecté sans avoir à saisir des commandes dans le terminal à chaque fois.
- Afficher le fichier de configuration
ls /etc/netplan
Vous pouvez voir le nom du profil.
- Ouvrir le fichier de configuration
sudo gedit /etc/netplan/*.yaml
Le nom de fichier vu dans la commande ls /etc/netplan
, par exemple, le mien est 50-cloud-init.yaml.
- Modifier le fichier de configuration
network: version: 2 ethernets: eno1: #网卡1名称,使用ifconfig -a可以查看 dhcp4: false #false-dhcp4关闭,true-dhcp4开启 addresses: [192.168.1.81/24] #设置本机IP及掩码 routes: - to: 0.0.0.0/0 via: 192.168.1.1 #设置路由网关 metric: 150 #设置metric值 optional: true eno4: #网卡2名称 dhcp4: true dhcp4-overrides: route-metric: 200 wifis: wlp2s0b1: #无线网卡名称 dhcp4: true dhcp4-overrides: route-metric: 90
Le code ci-dessus montre deux syntaxes pour définir les valeurs métriques. Les lecteurs peuvent choisir eux-mêmes. Veuillez noter que vous devez remplacer le nom de la carte réseau dans le code par le nom de la carte réseau correspondant de votre propre ordinateur.
Pour des instructions détaillées sur le fichier de configuration, veuillez vous référer au lien Configuration du réseau à l'aide de Netplan dans Ubuntu 18.04 LTS ou supérieur . - fichier de configuration de test
-
sudo netplan try
- Fichier de configuration de l'application
-
sudo netplan apply
Exécutez la commande sur le terminal route -n
pour interroger la table de routage et vérifier si la valeur métrique correspondante est définie avec succès.
Article 2 :
La carte réseau sans fil accède au réseau externe et la carte réseau filaire accède au réseau interne
Par exemple :
l'adresse IP de la carte réseau filaire est 172.1.2.3 et le masque de sous-réseau est 255.255.255.0. L'
adresse IP de la carte réseau sans fil est 192.168.1.111 et le masque de sous-réseau est 255.255.255.0.
Si vous souhaitez simplement accéder au réseau externe via la carte réseau sans fil, il vous suffit d'augmenter la priorité de la carte réseau sans fil.
Ensuite on utilise la commande :
ip route show
Affichez la table de routage comme suit :
default via 192.168.1.1 dev enx2 proto dhcp metric 600
default via 172.1.2.1 dev enp4 proto dhcp metric 100
172.1.2.0/24 dev enp4 proto kernel scope link src 172.1.2.3 metric 100
192.168.1.0/24 dev enx2 proto kernel scope link src 192.168.1.111 metric 600
Parmi eux, enx2 est le nom de périphérique de ma carte réseau sans fil et enp4 est le nom de périphérique de ma carte réseau filaire. Comme vous pouvez le
voir, la carte réseau filaire accède au réseau via la passerelle 172.1.2.1 par défaut, et son saut (métrique) est de 100,
tandis que la carte réseau sans fil accède au réseau via la passerelle. 192.168.1.1 accède au réseau par défaut et son saut (métrique) est de 600.
Puisque le système donnera la priorité à la carte réseau avec un saut de connexion inférieur, les requêtes réseau vont toutes à la carte réseau filaire. Il
suffit ensuite de régler le saut de la carte réseau filaire plus haut, ce qui réduira son priorité.
Commandes exécutables :
sudo ip route del default via 172.1.2.1 dev enp4 proto dhcp metric 100
sudo ip route add default via 172.1.2.1 dev enp4 proto dhcp metric 1000
Ou supprimez directement les paramètres de routage par défaut de la carte réseau filaire :
sudo ip route del default via 172.1.2.1 dev enp4 proto dhcp metric 100
Vous pouvez plutôt utiliser une carte réseau sans fil pour accéder au réseau.
De cette façon, toutes les connexions réseau autres que 172.1.2.0/24 utiliseront des cartes réseau sans fil.
Mais je souhaite également que d'autres sous-réseaux internes 172.1.3.0 utilisent également des cartes réseau filaires
. Ensuite, je peux ajouter des informations de routage de sous-réseau :
sudo ip route add 172.1.3.0/24 dev enp4 proto kernel scope link src 172.1.2.3 metric 100
Ou ajoutez directement les informations de routage IP :
sudo ip route add 172.1.4.1 dev enp4 proto kernel scope link src 172.1.2.3 metric 100
Ma configuration de routage finale est :
default via 192.168.1.1 dev enx2 proto dhcp metric 600
172.1.2.0/24 dev enp4 proto kernel scope link src 172.1.2.3 metric 100
172.1.3.0/24 dev enp4 proto kernel scope link src 172.1.2.3 metric 100
172.1.4.1 dev enp4 proto kernel scope link src 172.1.2.3 metric 100
192.168.1.0/24 dev enx2 proto kernel scope link src 192.168.1.111 metric 600
Ensuite, mon ordinateur :
accédera aux appareils des deux sous-réseaux 172.1.2.0/24 et 172.1.3.0/24 via la carte réseau filaire.
Accédera à l'appareil unique 172.1.4.1 via la carte réseau filaire.
Toutes les autres connexions seront accessibles via le carte réseau sans fil.