我正在使用运行 Debian 的 BeagleBone 嵌入式计算机。
我有两个网络接口:
1) 通过 USB 连接到蜂窝调制解调器,该调制解调器使用 ppp 并连接到外部世界。它从 ISP 接收动态 IP 地址
2) 仅连接到另一个本地设备的以太网接口。我通过将此命令放入 rc.local 为该接口分配了一个静态 IP 地址 192.168.1.40ifconfig 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 分钟,循环运行它。什么都不起作用。
看来我登录后,默认网关会因以太网接口而被覆盖。
有谁知道如何解决这个问题?我需要在启动时自动分配此默认网关地址。我已经尝试了好几天了。
如果我没有插入以太网电缆,或者我关闭了以太网接口,则完全没有问题。仅当两个接口处于活动状态时我才会遇到此问题。谢谢