Modification de la passerelle par défaut


28

J'utilise 3 interfaces Ethernet sur Ubuntu mais lorsque je redémarre, la passerelle par défaut passe à une interface différente. Chaque fois que je démarre, je dois changer la passerelle par défaut en eth1 en supprimant la passerelle par défaut et en l'ajoutant à nouveau avec eth1. Comment puis-je résoudre ce problème?


L'avez-vous configuré manuellement à l'aide du /etc/network/interfacesfichier ou d'un logiciel tel que Network Manager ou wicd?
Lekensteyn

1
"Gateway" n'est pas égal à "route". Une passerelle est spécifique à une interface où une route indique quelle interface doit être utilisée.
Lekensteyn

La passerelle est généralement une interface sur un périphérique distant sur lequel le nœud local s'appuie pour prendre des décisions de routage. Une instruction d'itinéraire elle-même peut faire référence à une interface locale ou non, mais la destination de routage doit être détectable à partir d'une recherche récursive, d'une interface connectée ou d'une route par défaut. Une route ou une passerelle par défaut est la «passerelle de dernier recours» - qui sera utilisée en l'absence d'une route plus spécifique disponible.
belacqua

Pouvez-vous fournir votre table de routage et votre liste d'interfaces, ainsi que toute autre configuration réseau pertinente que vous avez effectuée?
belacqua

Réponses:


33

Pour modifier temporairement l'itinéraire par défaut, vous pouvez utiliser une commande ip comme celle-ci:

$ sudo ip route change default via 192.168.1.1 dev eth0

Si vous avez une configuration IP statique, /etc/network/interfacesvous pouvez ajouter une instruction de passerelle pour la rendre permanente.

iface eth0 inet static
    gateway 192.168.1.1
    […]

En utilisant DHCP pour configurer la mise en réseau, vous devez ajuster un autre fichier à la place. Ajoutez l'instruction de remplacement dans /etc/dhcp/dhclient.conf.

supersede routers 192.168.1.1;

1
Version scriptable (devrait être un espace entre les guillemets):echo supersede routers $(ip route | grep default | cut -f3 -d" ")\; | sudo tee --append /etc/dhcp/dhclient.conf
colan

Et si j'ai plusieurs interfaces? Ne devraient-ils pas tous avoir une «passerelle» pour chaque interface? Mais qu'est-ce qui affecte l'exemple "" par défaut via la sortie 192.168.3.1 dev eth6 "de la commande ip route? Il répertorie une interface spécifique, non?
JohnyTex

7

Ouvrez le dossier /etc/network/interfaces

trouver l'interface souhaitée et ajouter ce qui suit:

gateway 192.x.x.x

Redémarrez le réseau:

sudo /etc/init.d/networking restart

16
Que se passe-t-il si l'interface souhaitée est configurée via DHCP et que je ne connais pas l'adresse de passerelle qu'elle attribuera?
devmiles.com

0

J'ai eu le même problème pour mon interface wifi wlp3s0sur Ubuntu 18.04. Cela affectait ma capacité à me connecter au modem et au routeur Android à l'extérieur de la maison. La façon de résoudre le problème pour moi était de commenter dans le fichier /etc/dhcpcd.confce qui suit:

interface wlp3s0
        static ip_address=192.168.0.16/24
        static routers=192.168.0.1
        static domain_name_servers=127.0.0.1

pour obtenir ce qui suit

#interface wlp3s0
#        static ip_address=192.168.0.16/24
#        static routers=192.168.0.1
#        static domain_name_servers=127.0.0.1

Ensuite, je me suis déconnecté de mon réseau actuel et je me suis reconnecté route -nou j'ai nmclivu des changements

Vous pouvez également supprimer les mêmes lignes lorsque vous êtes sûr que cela fonctionne pour vous.

En raison de ces lignes, le NetworkManager ajoutait toujours une route par défaut avec une mauvaise passerelle, en particulier lorsque je n'étais pas sur mon réseau domestique. J'obtenais «Destination Host inaccessible» lorsque je faisais un ping 8.8.8.8. Le codage en dur d'une passerelle /etc/network/interfacesn'était pas une solution viable car je me connecte beaucoup à des wifis publics (donc, jamais le même routeur ou passerelle wifi) et normalement DHCP devrait fonctionner "prêt à l'emploi" à mon humble avis.

PS: Je n'ai jamais édité manuellement, /etc/dhcpcd.confdonc je ne sais pas pourquoi le fichier /etc/dhcpcd.confcontient ces lignes.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.