Comment puis-je changer la passerelle par défaut?

19

Actuellement, j'utilise un FreeBSD 9.1 et la passerelle par défaut est déjà configurée dans le rc.conf.

rc.conf:

defaultrouter = "10.0.0.1"

Mais maintenant, je veux changer la passerelle par défaut sans redémarrer le système, est-ce possible?

WWW
la source

Réponses:

21
route del default
route add default 1.2.3.4

1.2.3.4est la nouvelle passerelle. Vous pouvez même les concaténer sur la même ligne avec un;

Edit: c'est FreeBSD, pas Linux. La commande est différente. Veuillez ne pas modifier cette réponse si vous n'avez pas lu la question suffisamment attentivement pour déterminer le système d'exploitation utilisé.

Chris S
la source
4
Remarque: faites cela dans la console, pas sur ssh. Si vous devez le faire via ssh (ou toute autre méthode réseau), émettez les deux commandes à la fois, avec ;ou avec&&
Dalibor Filus
4
Ou, utilisez la méthode générique de sécurité: 1) Connectez-vous à un shell, arrêtez / redémarrez en 15 minutes sauf annulation 2) Faites des choses dangereuses. 3) Annuler l'arrêt / le redémarrage.
Hennes
2
Sous Linux les commandes ip route del defaultet ip route add default via 1.2.3.4fonctionnent. Donc, la commande est toujours pertinente pour les utilisateurs de Linux car elle a un peu de ressemblance.
Paul Stelian
16

Vous pouvez ajouter une nouvelle route par défaut et supprimer l'ancienne en utilisant la commande ipou route. Les commandes ci-dessous remplaceront la passerelle par 192.0.2.1. Les deux paires de commandes font la même chose. FreeBSD et les autres OS devraient avoir un ou les deux programmes, éventuellement avec des formats légèrement différents. (FreeBSD a la routecommande et exclut le gwmot - clé utilisé dans d'autres implémentations.) Les commandes man ipet / ou man routedevraient vous fournir de la documentation sur votre implémentation spécifique.

route add default 192.0.2.1
route del default 10.0.0.1

ip route add default via 192.0.2.1
ip route del default via 10.0.0.1 

Il existe plusieurs implémentations de ces commandes, de sorte que ce qui précède peut ne pas correspondre à votre implémentation. Votre implémentation doit avoir une manpage avec des exemples de cas d'utilisation courants tels que l'ajout et la suppression de passerelles par défaut. Essayerman route et man ipde voir comment votre implémentation fonctionne.

Remplacez 192.0.2.1 par la passerelle par défaut souhaitée. La passerelle par défaut doit se trouver sur l'un des réseaux auxquels vous avez une connexion directe. Vous pouvez modifier votre adresse IP de la même manière. ipest un outil plus récent qui fera tout ce que vous devez faire pour afficher et gérer les adresses IP et le routage sur les réseaux IPv4 et IPv6. ifconfigest un ancien outil de configuration des adresses IP sur un réseau IPv4.

Pour rendre la modification permanente, mettez à jour vos fichiers de configuration réseau dans /etc. Le ou les fichiers varient en fonction de la distribution que vous utilisez.

Au moins une de ces commandes devrait être disponible sur tout O / S dérivé d'Unix. Différentes versions peuvent fonctionner légèrement différemment. Consultez la manpage pour plus de détails sur votre O / S.

BillThor
la source
4
-1 Désolé, mais ce sont des commandes Linux et ne fonctionnent pas sur FreeBSD .
Chris S
2
@ChrisS a été mis à jour pour référencer les modifications de FreeBSD. routea plusieurs implémentations avec des changements de syntaxe mineurs.
BillThor
1
voter pour les commandes "ip route".
Sérgio
9

Voici une ligne:

ip route replace default via 1.2.3.4

1.2.3.4est la nouvelle passerelle IP

crédit

artfulrobot
la source
2
-1 Désolé, mais ce sont des commandes Linux et ne fonctionnent pas sur FreeBSD .
Chris S
3

oui, changez simplement l'itinéraire et redémarrez votre réseau.

/etc/rc.d/netif restart
johnshen64
la source
2
Cela fonctionne, bien qu'il redémarre beaucoup ... et pourrait casser des applications liées aux interfaces.
Chris S
1

Tu pourrais essayer:

route add default gw 192.168.1.254 eth0
Chip Estrada
la source
-1 Désolé, mais ce sont des commandes Linux et ne fonctionnent pas sur FreeBSD .
Chris S
Route addfait partie de mon installation de FreeBSD 8.4. Mais oui, beaucoup de gens ici répondent du mauvais système d'exploitation.
Hennes
1
@Hennes la route addpartie fonctionne bien. GNU / Linux a ajouté la gwpartie, qui ne fonctionne sur aucun autre * nix. Sans les gwtravaux sur tous les BSD, Solaris, OSX, HPUX, AIX, etc.
Chris S
1

C'est très simple, il vous suffit de taper les commandes suivantes:

$ route del 0/0
$ route add 0/0 192.168.0.1

Vous devrez remplacer le «192.168.0.1» par l'IP de votre choix.

Et pour vérifier les modifications, vous pouvez utiliser 'netstat':

$ netstat -r

Cette commande affiche la table de routage du système.

ifm
la source
Qu'est-ce que "0/0"?
WWW
1
@WWW '0/0' est l'abréviation du bloc réseau '0.0.0.0/0', qui est identique à 'default', mais je préfère '0/0' (je suppose que je suis plus de la vieille école ).
ifm
0

Toujours utiliser d'abord netstat -nrpour vérifier la passerelle ce que vous avez et quels sont les détails qu'elle contient ... vous voyez 0.0.0.0. quand c'est un défaut et vous devriez d'abord penser que pourquoi suis-je en train de changer cette passerelle que d'utiliser cette commande:

route add default gw your ip eth0
user122562
la source
-1 Désolé, mais ce sont des commandes Linux et ne fonctionnent pas sur FreeBSD .
Chris S