私はDebianを実行しているBeagleBone組み込みコンピュータを使用しています。
2つのネットワークインターフェイスがあります。
1) USB 経由で ppp を使用するセルラーモデムに接続し、外部世界と接続します。 ISPから動的IPアドレスを受け取ります。
2) 他のローカルデバイスのイーサネットインターフェイスにのみ接続します。このコマンドをrc.localに入れて、このインターフェイスに固定IPアドレス192.168.1.40を割り当てました。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
ログイン後に手動でスクリプトを実行すると効果的です。これにより、これら2つのインターフェースを介して通信できます。
ただし、起動時にスクリプトを正しく実行することはできず、この方法でデフォルトゲートウェイアドレスを自動的に割り当てることはできません。
私はrc.localで実行し、/etc/rc5.dまたは/etc/rc3.dにスクリプトを入れ、/root/.bashrcまたは/user/.bashrcで実行するなど、すべてを試しました。 crontabを使用してスクリプトを実行する前に、1分間スリープ状態でループで実行してみてください。何も動作しません。
ログイン後、イーサネットインターフェイスがデフォルトゲートウェイを上書きするようです。
この問題を解決する方法を知っている人はいますか?起動時に自動的に割り当てられるようにするには、このデフォルトゲートウェイアドレスが必要です。私はこれを数日試してきました。
イーサネットケーブルが接続されていないか、イーサネットインターフェイスをオフにしても問題ありません。両方のインターフェイスが有効になっている場合にのみこの問題が発生します。ありがとう