启动时设置默认网关存在很多问题

启动时设置默认网关存在很多问题

我正在使用运行 Debian 的 BeagleBone 嵌入式计算机。

我有两个网络接口:

  1. 通过 USB 连接到蜂窝调制解调器,使用 ppp 并连接到外部世界。它从 ISP 接收动态 IP 地址

  2. 仅连接到另一个本地设备的以太网接口。我已为该接口分配了静态 IP 地址 192.168.1.40。我使用命令在 rc.local 中设置了该地址ifconfig eth0 192.168.1.40 netmask 255.255.255.0

只有当两个接口都处于活动状态时,通过调制解调器连接时才会出现问题。我意识到要解决这个问题,我必须通过使用以下命令运行脚本将默认网关设置为调制解调器获取的地址。

#!/bin/sh
IPADD=&(/sbin/ifconfig ppp0 | grep 'inet' | cut -d: -f2 | awk '{ print $2}')
route add default gw $IPADD

当我登录后手动执行脚本时,这非常有用。然后我可以通过两个界面进行通信。

但是,我无法让该脚本在启动时正确执行,也无法通过这种方式自动分配默认网关地址。

我尝试了所有方法,从 rc.local 运行它,将脚本放入 /etc/rc5.d 或 /etc/rc3.d,从 /root/.bashrc 或 /user/.bashrc 运行它。使用 crontab,尝试在运行脚本前休眠 1 分钟,循环运行它。但都不起作用。

似乎在我登录后,默认网关以某种方式因以太网接口而被覆盖。

有人知道如何解决这个问题吗?我需要在启动时自动分配此默认网关地址。我已经尝试了好几天了。

如果我没有插入以太网电缆,或者关闭了以太网接口,则完全没有问题。只有当两个接口处于活动状态时,我才会遇到这个问题。

相关内容