การแก้คำตอบ "RTNETLINK: ไฟล์มีอยู่" เมื่อใช้งาน ifup


43

ฉันมีปัญหานี้เมื่อฉันได้รับดองเกิล Wi-Fi ใหม่และเห็นบางคนที่มีปัญหาเดียวกัน โดยทั่วไปเมื่อฉันมีการกำหนดค่าอินเทอร์เฟซหนึ่งและต้องการสลับไปที่อินเทอร์เฟซอื่นมันจะพ่นข้อผิดพลาดนี้:

คำตอบ RTNETLINK: ไฟล์มีอยู่
ล้มเหลวในการสร้าง eth0

หรือสิ่งที่คล้ายกัน

/etc/network/interfaces ไฟล์:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1

iface wlan0 inet static
    address 192.168.1.3
    netmask 255.255.255.0
    gateway 192.168.1.1

1
คุณไม่สามารถมีเกตเวย์เริ่มต้นมากกว่าหนึ่งรายการบน Linux โดยเฉพาะอย่างยิ่งคุณไม่สามารถมีเกตเวย์เริ่มต้นเดียวกันในสองอินเตอร์เฟสที่แตกต่างกัน และคุณไม่สามารถมีเครือข่ายเดียวกันในสองอินเตอร์เฟสที่ต่างกัน
ceving

@ การสังเกตไม่มีปัญหาในการมีสองอินเตอร์เฟสในเครือข่ายเดียวกัน ไม่มีปัญหาหากอินเตอร์เฟสทั้งสองมีเกตเวย์เดียวกัน destination IP -> interfaceตารางเส้นทางจะแยกกันในลักษณะที่เข้มงวดและคุณสามารถจินตนาการรายการเป็น ดังนั้นมันจะถูกส่งไปยังเกตเวย์ผ่านอินเตอร์เฟสที่แยกวิเคราะห์ก่อน (จากด้านล่าง) ในตารางเส้นทาง
จอร์จ

ถ้าจัดการกับ IPV6 มักจะเพิ่มความยาวเครือข่าย: xxxx: xxxx: ... :: 1/64 ที่อยู่
fcm

คำตอบ:


46

หากการแก้ปัญหาให้โดย @ theoB610 ยังคงไม่ได้ทำงานแล้วคุณอาจจะต้องล้างwlan0อุปกรณ์ก่อนและifupifdown

sudo ip addr flush dev wlan0

นี่เป็นปัญหาที่ไม่เฉพาะเจาะจงกับ Raspberry Pi ปัญหาที่คล้ายกันเกิดขึ้นและได้รับการแก้ไขในเครือข่ายแบบมีสายที่นี่ (จากที่ฉันได้รับการแก้ไขปัญหาของฉันกับ Pi)


1
ฉันมีปัญหานี้ในเซิร์ฟเวอร์ HP ProLiant (!) และสิ่งนี้ได้แก้ไข
sudo

1
ทางออกที่ดี ปัญหาพื้นฐานคือการกำหนดค่าก่อนหน้าอัตโนมัติหรือด้วยตนเอง (เช่นการเรียกใช้ ifconfig จากบรรทัด cmd) ยังคงสะท้อนอยู่ คำสั่ง flush จะแก้ไขสถานการณ์นั้น
kmarsh

1
ฉันมีปัญหานี้เมื่อมีในรูปแบบ/etc/sysconfig/network-scripts/ifcfg-*ไฟล์ที่เกิดจาก NetworkManager RTNETLINK answers: File existsไม่ชื่นชอบการตั้งค่าและการสร้างไฟล์แทนดังนั้นการสร้างไฟล์พิเศษหลายและก่อให้เกิดข้อผิดพลาด การลบรายการที่เสียหาย (รายการที่ไม่แสดงเป็นโปรไฟล์) ดูเหมือนจะเป็นการแก้ไข
Wilf

2
ห้ามคัดลอกวางบนเซิร์ฟเวอร์ที่ใช้งานจริง ฉันแทนที่ wlan0 ด้วย eth0 และอินเทอร์เฟซลงไปทันทีและไม่ต้องการกลับมา
Fusseldieb

1
rebootที่น่าสนใจว่าไม่มีใครมีให้ง่ายและตามกฎวิธีที่ปลอดภัยที่สุด: เช่นอินเทอร์เฟซการล้างฉันมีปัญหา - อินเทอร์เฟซ / IP ของฉันลงและฉันสามารถเชื่อมต่อโดยตรงบนคอนโซลเท่านั้น ... ดังนั้นการรีบูตจึงเป็นหนทางที่จะไปหาฉันด้วยสิ่งนี้
เริ่มต้น

24

ฉันคิดว่าวิธีการแก้ปัญหาสามารถพบได้ในการแก้ "คำตอบ RTNETLINK: ไฟล์ที่มีอยู่" เมื่อใช้ ifup (เว็บล็อกของ Lennart); มันแน่นอนสำหรับฉัน

โดยทั่วไปคุณสามารถกำหนดหนึ่งเกตเวย์ในไฟล์อินเตอร์เฟสของคุณเท่านั้น ลบบรรทัดที่ซ้ำกันใด ๆ ที่กำหนดเกตเวย์เพื่อให้ปรากฏเพียงครั้งเดียว

ไฟล์ดัดแปลง / etc / network / interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1

iface wlan0 inet static
    address 192.168.1.3
    netmask 255.255.255.0
    #gateway 192.168.1.1  <= Either comment or remove this line

เครดิตทั้งหมดให้กับ Lennart สำหรับการแก้ไขปัญหานี้!


พบคำตอบนี้ผ่านทาง Google นี่คือสิ่งที่ใช้ได้กับฉันบน Ubuntu VM บน Hyper-V
abhijit

8

ฉันแก้ไขโดย:

sudo ifup --ignore-errors wlan0

หลังจากคำสั่งนี้ ifdown และ ifup เริ่มทำงานอย่างถูกต้อง


สิ่งนี้มีประโยชน์หลังจาก "การเริ่มบริการเครือข่าย" ล้มเหลวขอบคุณ :)
Adambean

1

ขั้นตอน

1 check-> ip route(หากค่าเริ่มต้นเส้นทาง ip เป็นอย่างอื่นที่ไม่ใช่อินเตอร์เฟสที่คุณต้องการให้ทำตามขั้นตอนที่ 2 และ 3)

2 sudo ip route del default(ลบอินเตอร์เฟสเริ่มต้นนั้น)

3 sudo ip route add default via ip_address dev interface_name(เพิ่มอินเทอร์เฟซที่คุณต้องการเช่นนี้)


0

ในกรณีของฉันฉันมีการเชื่อมต่ออื่นยังคงทำงาน - เมื่อฉันเอาอินเทอร์เฟซนั้นลงด้วย ifdown eth0 สิ่งที่ฉันสนใจ (wlan0) เกิดขึ้นอย่างหมดจด

ฉันไม่แนะนำให้ใช้ตัวเลือก --ignore-errors


0

ฉันพบสิ่งนี้ขณะที่ยุ่งกับ VMWare vCenter หากคุณอยู่ในเรือลำเดียวกันคุณควรติดตั้ง VMWare Tools, perl และ net-tools กับผู้จัดการแพ็คเกจของคุณก่อนที่จะสร้าง Template / Snapshot ของ VM


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