在路由表中进行永久更改


10

我有一个带有Raspbian版本Jessie的Raspberry PI 2模型B,我正在尝试将Internet从我的PC引入Raspberry。我之间有2个网络接口,一个是通过以太网,另一个是通过Wifi。我已经将Raspberry中的以太网ip地址配置为静态,因为我在家中有一个小型计算机网络,并且都具有静态IP地址,并且我希望raspberry成为其中的一部分。由于我的互联网非常慢(我使用拨号调制解调器),因此我不想通过以太网接口共享此缓慢的互联网,因为我不希望所有连接到该网络的计算机都消耗我的互联网速度。因为我只打算将Internet连接到Raspberry,所以我在PC中创建了一个Wifi热点,该热点为Raspberry动态分配IP地址(该热点软件具有某种DHCP),并且

但是然后我的问题开始了,默认情况下,在我打开它后(或者如果我断开连接并再次连接),Raspberry无法连接到互联网。通过输入ifconfig我得到:

eth0     
Link encap:Ethernet  HWaddr b8:27:eb:4e:35:65  
inet addr:100.100.100.25  Bcast:100.100.100.255  Mask:255.255.255.0
inet6 addr: fe80::ba27:ebff:fe4e:3565/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     
Link encap:Ethernet  HWaddr 74:da:38:55:f3:a2  
inet addr:192.168.137.201  Bcast:192.168.137.255  Mask:255.255.255.0
inet6 addr: fec0::12:c4f1:c3fc:eb1e:3153/64 Scope:Site
inet6 addr: 2002:be0f:9cea:12:1bc0:1969:c17d:f854/64 Scope:Global
inet6 addr: fe80::bdca:7255:2e27:8341/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

当我输入时,route -n我得到:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
0.0.0.0         192.168.137.1   0.0.0.0         UG    303    0        0 wlan0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

在这里,您可以看到我的静态以太网连接网关(100.100.100.1)的度量标准比DHCP Wifi连接网关(192.168.137.1)的度量标准小,因此我的Raspberry尝试通过错误的接口访问Internet

在我输入之后:

sudo route delete  default gateway 192.168.137.1 

然后 :

sudo route add  default gateway 192.168.137.1

我的路由表固定为:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.137.1   0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

并且Raspberry能够访问Internet。

我的问题是:

  1. 有没有一种方法可以自动执行此过程,因此我不必每次打开Raspberry时都手动进行此操作?
  2. 有没有一种方法可以使其自动化,以便它始终识别出必须从Wifi上网,而与热点DCHP给该接口提供的IP范围无关?
  3. 为什么较低的度量标准会自动分配给以太网接口?

我已经检查了如何持久更改路由表中的解决方案但这对我不起作用,因为在Raspbian Jessie中,您不直接编辑/etc/network/interfaces而是编辑/etc/dhcpcd.conf来获取静态IP地址

Answers:


11

有没有一种方法可以自动执行此过程,因此我不必在每次打开Raspberry时都手动进行此操作?

如果问题2可以解决,则不需要-而且可以...

有没有一种方法可以使其自动化,以便它始终识别出必须从Wifi上网,而与热点DCHP给该接口提供的IP范围无关?

/etc/dhcpcd.conf添加

interface wlan0;
metric 200;

interface eth0
metric 300;

这会将较低的指标分配给WLAN接口,以便为Internet请求选择一个指标。

为什么较低的度量标准会自动分配给以太网接口?

因为这就是根据man dhcpcd.conf(5)分配指标的方式:

 metric metric
         Metrics are used to prefer an interface over another one, lowest
         wins.  dhcpcd will supply a default metric of 200 +
         if_nametoindex(3).  An extra 100 will be added for wireless
         interfaces.

+1非常感谢,我还没有答案。每当我需要执行此操作时,我都会运行一个手动脚本
VMMF

请注意,这不适用于非DHCP连接。如果您在/ etc / network / interfaces中具有静态连接,则可以通过使用向上路由替换网关xxx.xxx.xxx.xxx来设置网关度量,并添加默认gw xxx.xxx.xxx.xxx度量###
Sameer Puri

0

我要做的只是使其在启动时运行。

在文件中以特定顺序添加sudo route delete default和。sudo route add default gateway 192.168.137.1/etc/init.d/rc.local

我忘记/etc/init.d/rc.local了Jessie 是否已开箱即用,或者即使您不应该去尝试它,但是找到另一个解决方案(我已经做过)应该很简单。

这解决了#1。


为了确定连接的优先级,建议您安装ifmetric。然后,只需在/etc/network/interfaces

最高优先级是0,下一个是1,然后是2,依此类推。

iface eth0 inet dhcp
 metric 1

iface wlan0 inet static
 address 192.168.0.1
 netmask 255.255.255.0
 network 192.168.0.0
 metric 0

iface eth1 inet dhcp
 metric 2

就是#2。


我认为发生#3是因为开发人员认为WiFi在农民非超级用户环境中被优先考虑。我只能推测,因为我找不到任何相关信息。

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.