これは私の /etc/network/interfaces
ファイルの内容
これが有効になる唯一の方法は、システムの再起動時です。
手動で影響を与えようとしています。以下の私の試み。
auto eth0
iface eth0 inet static
address 192.168.1.57
netmask 255.255.255.0
gateway 192.168.1.1
up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
最初に実行しようとしたSudo ifup eth0
そして私は受け取る
RTNETLINK answers: File exists
Failed to bring up eth0.
/etc/network/interfaces
システムを再起動したときにのみ機能します
私が試した以外は
Sudo /etc/init.d/networking restart
Sudo service network-manager restart
Sudo service networking restart
しかし、それらのいずれもinterfaces
ファイルの変更をもたらしません
私の唯一の選択肢はSudo ifup eth0
と上記のエラーが発生します。
なにが問題ですか?
構成ファイルを編集して、iface
スタンザの前のスペースを削除して、次のようにします。
auto eth0
iface eth0 inet static
address 192.168.1.57
netmask 255.255.255.0
gateway 192.168.1.1
up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
受け取るメッセージは、インターフェイスがすでに起動していることを示すだけなので、ifdown
を実行する前にifup
を実行する必要があります。ただし、ssh経由で接続している場合は注意が必要です。ロックアウトされる可能性があります。これはそれを行う方法です:
Sudo ifdown eth0 && Sudo ifup eth0
これら2つのコマンドが同じ行で実行される方法に注意してください。また、念のため、サーバーコンソールにアクセスできるようにするか、問題が発生した場合にサーバーを再起動できるようにしてください。
/ run/network/ifstateを探し、目的のethがそこにない場合は、eth(n)= eth(0)を追加して変更します。
例:
$ cat /run/network/ifstate
eth0=eth0
lo=lo
eth3=eth3
eth1=eth1
その後、コマンドSudo ifdown eth(n)を使用し、次にSudo ifup eth(n)を使用します。
RTNETLINKエラーが発生しないようにするには、ここですべてのインターフェイスとブリッジを停止し、モジュールをアンロードする必要がありました。
ifconfig eth0 down
ifconfig br0 down
rmmod e1000e # or whatever module your nic uses
modprobe e1000e
service networking start
または単に再起動します。
私はこの問題に遭遇しましたが、上記の解決策はどれもうまくいきませんでした。変更できませんでした/run/network/ifstate
すぐに以前の状態にリセットされたため。またSudo ifdown eth0 && Sudo ifup eth0
が機能しませんでした。
次に、次のコマンドを見つけました。
Sudo ip addr flush dev eth0
問題を解決しました。