“ คำตอบ RTNETLINK: มีไฟล์อยู่” / etc / network / interfaces ไม่มี 2 เกตเวย์ดังนั้นสิ่งที่ผิด


14

นี่คือ/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และนั่นทำให้เกิดข้อผิดพลาดข้างต้น

เกิดอะไรขึ้น?

คำตอบ:


8

แก้ไขไฟล์การกำหนดค่าของคุณเพื่อลบช่องว่างหน้าifacestanza เพื่อให้มีลักษณะเช่นนี้

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

หมายเหตุวิธีดำเนินการสองคำสั่งเหล่านี้ในบรรทัดเดียวกัน และเป็นข้อควรระวังให้แน่ใจว่าคุณสามารถเข้าถึงคอนโซลของเซิร์ฟเวอร์หรือรีบูตเซิร์ฟเวอร์หากมีข้อผิดพลาดเกิดขึ้น


3
การทำงานsudo ifdown eth0ให้ifdown: interface eth0 not configuredและการทำงาน sudo ifdown eth0 && ifup eth0 ให้เหมือนกัน
15159

1
@wolfgang ลองลบช่องว่างก่อน stanza ifaceใน/etc/network/interfacesไฟล์ของคุณและทำifdown/ifupอีกครั้ง
dtoubelis

สิ่งนี้ได้ผล! ไม่ได้คาดหวังช่องว่างก่อนที่ifaceจะสร้างเรื่องใหญ่ คุณช่วยแก้ไขสิ่งนี้ให้เป็นคำตอบของคุณได้ไหม? และจะต้องมีsudoก่อนifup-> sudo ifdown eth0 && sudo ifup eth0มิฉะนั้นฉันจะได้รับpermission deniedข้อผิดพลาดบางอย่าง
โวล์ฟกัง

1

ลองมองหา / run / network / ifstate และแก้ไขโดยเพิ่ม eth (n) = eth (0) หากคุณไม่เห็น eth ที่ต้องการ

Ex:

$ cat /run/network/ifstate 
eth0=eth0
lo=lo
eth3=eth3
eth1=eth1

หลังจากนั้นใช้คำสั่ง sudo ifdown eth (n) จากนั้นใช้ sudo ifup eth (n)


1

สำหรับคนอื่น ๆ ที่ลงเอยที่นี่ฉันต้องหยุดการเชื่อมต่อและบริดจ์ทั้งหมดแล้วยกเลิกการโหลดโมดูลก่อนที่ข้อผิดพลาด RTNETLINK จะหายไป

ifconfig eth0 down
ifconfig br0 down
rmmod e1000e              # or whatever module your nic uses
modprobe e1000e
service networking start

หรือเพียงแค่รีบูต


0

ฉันพบปัญหานี้และไม่มีวิธีแก้ไขปัญหาใดที่เหมาะกับฉัน ฉันไม่สามารถเปลี่ยนได้/run/network/ifstateเพราะมันถูกรีเซ็ตเป็นสถานะเดิมทันที ยังใช้งานsudo ifdown eth0 && sudo ifup eth0ไม่ได้

ฉันพบคำสั่งต่อไปนี้แล้ว:

sudo ip addr flush dev eth0

ซึ่งแก้ปัญหาได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.