Como posso alterar o gateway padrão?

19

Atualmente, estou executando um FreeBSD 9.1 e o gateway padrão já está configurado no rc.conf.

rc.conf:

defaultrouter = "10.0.0.1"

Mas agora eu quero alterar o gateway padrão sem reiniciar o sistema, isso é possível?

WWW
fonte

Respostas:

21
route del default
route add default 1.2.3.4

Onde 1.2.3.4está o novo gateway. Você pode até concatená-los na mesma linha com um;

Edit: Este é o FreeBSD, não o Linux. O comando é diferente. Por favor, não edite esta resposta se você não leu a pergunta com atenção suficiente para determinar o sistema operacional em uso.

Chris S
fonte
4
Nota: faça isso no console, não no ssh. Se você deve fazer isso via ssh (ou outro método de rede), emitir dois comandos ao mesmo tempo, com ;ou com&&
Dalibor Filus
4
Ou use o método seguro genérico: 1) Entre no shell, desligue / reinicie em 15 minutos, a menos que seja cancelado 2) Faça coisas inseguras. 3) Cancele o desligamento / reinicialização.
Hennes
2
No Linux, os comandos ip route del defaulte o ip route add default via 1.2.3.4trabalho. Portanto, o comando ainda é relevante para os usuários do Linux, pois possui algumas semelhanças.
Paul Stelian
16

Você pode adicionar uma nova rota padrão e remover a antiga usando o comando ipou route. Os comandos abaixo substituirão o gateway por 192.0.2.1. Ambos os pares de comandos fazem a mesma coisa. O FreeBSD e outros sistemas operacionais devem ter um ou ambos os programas, possivelmente com formatos ligeiramente diferentes. (O FreeBSD possui o routecomando e exclui a gwpalavra - chave usada em outras implementações.) Os comandos man ipe / ou man routedevem fornecer documentação sobre sua implementação específica.

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 

Existem várias implementações desses comandos, portanto, as opções acima podem não corresponder à sua implementação. Sua implementação deve ter uma manpágina com exemplos de casos de uso comuns, como adicionar e remover gateways padrão. Experimente man routee man ipveja como sua implementação funciona.

Altere 192.0.2.1 para o gateway padrão desejado. O gateway padrão precisa estar em uma das redes às quais você tem uma conexão direta. Você pode alterar seu endereço IP de maneira semelhante. ipé uma ferramenta mais nova que fará tudo o que você precisa para exibir e gerenciar endereços IP e roteamento em redes IPv4 e IPv6. ifconfigé uma ferramenta mais antiga para configurar endereços IP em uma rede IPv4.

Para tornar a alteração permanente, atualize os arquivos de configuração de rede em /etc. Os arquivos variam de acordo com a distribuição que você está usando.

Pelo menos um desses comandos deve estar disponível em qualquer sistema operacional derivado do Unix. Versões diferentes podem funcionar de maneira ligeiramente diferente. Verifique a manpágina para obter detalhes sobre o seu O / S.

BillThor
fonte
4
-1 Desculpe, mas estes são comandos do Linux e não funcionam no FreeBSD .
Chris S
2
@ChrisS atualizado para referenciar as mudanças no FreeBSD. routepossui várias implementações com pequenas alterações de sintaxe.
BillThor
1
vote nos comandos "ip route".
Sérgio
9

Aqui está uma frase:

ip route replace default via 1.2.3.4

Onde 1.2.3.4está o novo IP do gateway

crédito

artfulrobot
fonte
2
-1 Desculpe, mas estes são comandos do Linux e não funcionam no FreeBSD .
Chris S
3

sim, basta alterar a rota e reiniciar sua rede.

/etc/rc.d/netif restart
johnshen64
fonte
2
Isso funciona, apesar de reiniciar muito ... e pode quebrar aplicativos vinculados a interfaces.
Chris S
1

Você poderia tentar:

route add default gw 192.168.1.254 eth0
Chip Estrada
fonte
-1 Desculpe, mas estes são comandos do Linux e não funcionam no FreeBSD .
Chris S
Route addfaz parte da minha instalação do FreeBSD 8.4. Mas sim, muitas pessoas aqui que respondem pelo sistema operacional errado.
Hennes
1
@Hennes a route addpeça funciona bem. O GNU / Linux adicionou a gwparte, que não funciona em nenhum outro * nix. Sem os gwtrabalhos sobre todos os BSDs, Solaris, OSX, HPUX, AIX, etc.
Chris S
1

É muito fácil, você só precisa digitar os próximos comandos:

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

Você precisará substituir o '192.168.0.1' pelo IP de sua escolha.

E para verificar as alterações, você pode usar 'netstat':

$ netstat -r

Este comando mostra a tabela de roteamento do sistema.

ifm
fonte
O que é "0/0"?
21WW WWW
1
@WWW '0/0' é a abreviação do bloco de rede '0.0.0.0/0', que é o mesmo que 'padrão', mas eu prefiro '0/0' (suponho que eu seja mais da velha escola) )
ifm
0

Sempre primeiro use netstat -nrpara verificar o gateway o que você tem e os detalhes que ele tem ... você vê 0.0.0.0. quando é um padrão e você deve primeiro pensar que por que estou alterando esse gateway do que usar este comando:

route add default gw your ip eth0
user122562
fonte
-1 Desculpe, mas estes são comandos do Linux e não funcionam no FreeBSD .
Chris S