如何更改默认网关?


19

目前,我正在运行FreeBSD 9.1,并且已经在中配置了默认网关rc.conf

rc.conf

defaultrouter = "10.0.0.1"

但是现在我想更改默认网关而不重启系统,这可能吗?

Answers:


21
route del default
route add default 1.2.3.4

1.2.3.4新网关在哪里。您甚至可以将它们连接到同一行;

编辑:这是FreeBSD,不是 Linux。命令是不同的。如果您没有足够仔细地阅读问题来确定所使用的操作系统,请不要编辑此答案。


4
注意:请在控制台中执行此操作,而不是通过ssh。如果必须通过ssh(或其他网络方法)执行此操作,请与;&&
–Dalibor Filus

4
或者,使用通用的安全方法:1)登录到外壳程序,在15分钟内关机/重新启动,除非已取消 2)做不安全的事情。3)取消关机/重启。
Hennes

2
在Linux上,命令ip route del defaultip route add default via 1.2.3.4工作正常。因此,该命令仍然与Linux用户相关,因为它非常相似。
Paul Stelian

16

您可以使用iproute命令添加新的默认路由并删除旧路由。以下命令将网关替换为192.0.2.1。这两个命令对执行相同的操作。FreeBSD和其他操作系统应具有一个或两个程序,格式可能略有不同。(FreeBSD具有route命令,但不包括gw其他实现中使用的关键字。)这些命令man ip和/或man route应为您提供有关特定实现的文档。

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 

这些命令有多种实现,因此以上内容可能与您的实现不符。您的实现应具有一个man页面,其中包含一些常见用例的示例,例如添加和删除默认网关。尝试man routeman ip看到你的实现是如何工作的。

将192.0.2.1更改为所需的默认网关。默认网关必须位于您直接连接到的网络之一上。您可以通过类似的方式更改IP地址。 ip是一种较新的工具,它将执行查看和管理IP地址以及在IPv4和IPv6网络上进行路由所需的大部分操作。 ifconfig是用于在IPv4网络上配置IP地址的较旧工具。

要使更改永久生效,请在中更新您的网络配置文件/etc。文件根据您使用的发行版而有所不同。

这些命令中至少有一个可以在任何Unix衍生的O / S上使用。不同的版本可能略有不同。检查man页面以获取有关您的操作系统的详细信息。


4
-1对不起,但这是Linux命令,在FreeBSD上不起作用。
克里斯S

2
@ChrisS已更新,以引用FreeBSD的更改。 route具有多种实现,但语法稍有更改。
BillThor 2015年

1
投票支持“ ip route”命令。
塞尔吉奥

9

这里是单线:

ip route replace default via 1.2.3.4

1.2.3.4新的网关IP 在哪里

信用


2
-1对不起,但这是Linux命令,在FreeBSD上不起作用。
克里斯S

3

是的,只需更改路由并重新启动网络即可。

/etc/rc.d/netif restart

2
那行得通,尽管它重新启动了很多……可能会破坏绑定到接口的应用程序。
克里斯S

1

您可以尝试:

route add default gw 192.168.1.254 eth0

-1对不起,但这是Linux命令,在FreeBSD上不起作用。
克里斯S

Route add是我的FreeBSD 8.4安装的一部分。但是,是的,这里有很多人回答错误的操作系统。
Hennes

1
@Hennes,该route add零件正常工作。GNU / Linux添加了该gw部分,该部分不适用于任何其他* nix。没有gw在所有BSD,Solaris,OSX,HPUX,AIX等上使用的作品
Chris S

1

这很容易,您只需要键入以下命令:

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

您将需要用您选择的IP替换“ 192.168.0.1”。

要检查更改,可以使用“ netstat”:

$ netstat -r

此命令显示系统的路由表。


什么是“ 0/0”?
WWW

1
@WWW'0/0'是网络模块'0.0.0.0/0'的缩写,与'default'相同,但是我更喜欢'0/0'(我想我是老派)。
ifm

0

始终首先使用netstat -nr来检查网关所拥有的内容以及它所具有的详细信息...您将看到0.0.0.0。当它是默认网关时,您应该首先想到为什么我要更改此网关而不是使用此命令:

route add default gw your ip eth0

-1对不起,但这是Linux命令,在FreeBSD上不起作用。
克里斯S
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.