ปิดใช้งานอะแดปเตอร์เครือข่าย eth0 ใน Debian


10

กาลครั้งหนึ่งฉันใช้ ifdown eth0 เพื่อดาวน์อะแดปเตอร์เครือข่าย เป็นเวลาหลายปีแล้วที่ฉันสามารถทำงานนี้ได้โดยทั่วไปตั้งแต่ฉันใช้งานบน Ubuntu / Debian

ฉันได้รับสิ่งนี้:

$ sudo ifdown eth0
ifdown: interface eth0 not configured

ถ้าฉันเรียกใช้ ifconfig ฉันจะได้รับ:

eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:192.168.20.50  Bcast:192.168.21.255  Mask:255.255.254.0
          inet6 addr: fe80::6e3b:e5ff:fe36:2ee/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1205280 errors:0 dropped:502 overruns:0 frame:0
          TX packets:34930 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:165685286 (165.6 MB)  TX bytes:5754120 (5.7 MB)
          Interrupt:20 Memory:f7f00000-f7f20000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9146 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9146 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:734342 (734.3 KB)  TX bytes:734342 (734.3 KB)

ฉัน googled เพื่อหาวิธีการทำเช่นนี้และทุกสิ่งที่ฉันสามารถหาได้เรียกใช้ ifdown eth0 ฉันจะหยุดอะแดปเตอร์เครือข่ายในกล่อง Debian / Ubuntu ได้อย่างไร

คำตอบ:


14

ฉันกำลังเผชิญปัญหาเดียวกันกับ Debian ฉันไม่ทราบสาเหตุที่แน่นอน แต่มันทำงานกับsudo ifconfig eth0 downฉัน

แก้ไข: ขอบคุณ @kostix สำหรับคำอธิบายประกอบของเขา ฉันไม่ได้กังวลกับปัญหารายละเอียดมากนักเนื่องจากฉันใช้มันเพื่อทำให้อินเทอร์เฟซลดลงชั่วคราว ถ้าคุณต้องการที่จะนำมันลงอย่างถาวร ifdown เป็นวิธีที่จะไป สำหรับการทำงานคุณจะต้องเพิ่มสายeth0=eth0การ/run/network/ifstateและเส้นauto eth0และการiface eth0 inet dhcp/etc/network/interfaces


สิ่งนี้จะทำให้อแด็ปเตอร์ลงบนเลเยอร์ทางกายภาพ (เช่นเท่าที่เกี่ยวข้องกับเครือข่ายเคอร์เนลสแต็ก) และสิ่งนี้ไม่เกี่ยวข้องกับเลเยอร์ userland ที่ควรจัดการอะแดปเตอร์ โปรดดูคำตอบของฉัน - คุณอาจจะสามารถเข้าร่วมกับ OP เพื่อหาว่าระบบย่อยใดที่จัดการเครือข่ายของคุณ
kostix

ตกลงมันทำอย่างนั้น ฉันไม่เคยลองทำแบบนี้มาก่อนเพราะบน Redhat ifdown วิ่ง ifconfig ฉันเลยถือว่าเดเบียนเหมือนกัน ฉันโง่ ขอบคุณสำหรับสิ่งนี้. WTF?
Thom

@Thom ปัญหาคือว่าครั้งต่อไปที่คุณบูตeth0จะมีแนวโน้มมากขึ้นอีกครั้ง
kostix

@Thom, เป็น WTF ... ;-) เคอร์เนลคือ (เกือบ) เหมือนกันทั่ว distros แต่เครื่องมือ userland ไม่ได้ ดีnmและwicd มีความเหมือนกันใน distros แต่ "ดั้งเดิม" สิ่งที่ระดับต่ำไม่ได้
kostix

@kostix ไม่เป็นไร แค่ต้องการปิดการใช้งานเล็กน้อยสำหรับการทดสอบ เนื่องจากเป็น VirtualBox จึงเป็นการยากที่จะถอดสายเคเบิลเครือข่าย :) นอกจากนี้ฉันเข้าใจเกี่ยวกับเครื่องมือ แต่เอกสาร Debian บอกว่าใช้ ifdown นั่นเป็นเหตุผลที่ WTF
Thom

13

หากifconfigไม่มีใน distro ของคุณแสดงว่าipคำสั่งนั้นถูกแทนที่ด้วยคำสั่ง ในกรณีนี้การแก้ปัญหาจะเป็นip link set eth0 down


2

ไม่มีคำตอบที่ชัดเจนเนื่องจากอาจมีหลายวิธีในการจัดการเครือข่ายใน Debian ฉันรู้อย่างน้อยสาม:

  • วิธีการ "ดั้งเดิม" ใช้/sbin/ifup, /sbin/ifdownและ/etc/init.d/networkingทั้งหมดใช้/etc/network/interfacesแฟ้มการกำหนดค่า เหล่านี้จัดทำโดยifupdownแพคเกจ

    ตั้งแต่ifdownรู้อะไรเกี่ยวกับอะแดปเตอร์ฉันคิดวิธีอื่นในการจัดการเครือข่าย

    ฉันยังทราบเกี่ยวกับแพคเกจซึ่งเป็น beleived จะเป็นดรอปแทนสำหรับifupdown, netscriptแต่เนื่องจากใช้วิธีเดียวกันในการจัดการอะแดปเตอร์นี้ยังเป็นที่คาดคะเนไม่ได้กรณีของคุณ

  • NetworkManager
  • Wicd

สมมุติว่าคุณต้องทำงานจากสิ่งใดสิ่งหนึ่งที่ถูกบรรจุไว้และทำงานจากที่นั่น ทั้งสองnmและwicd มักจะมีการกำหนดค่าโดยใช้เครื่องมือ GUI (และมักจะผ่านแอปเพล็ตเริ่มต้นพร้อมกับ DE ของคุณ) มีเครื่องมือบรรทัดคำสั่งที่เรียกว่าnm ไม่แน่ใจเกี่ยวกับnm-cliwicd

หากคุณทำการติดตั้งง่ายและเลือกงาน "เดสก์ท็อป" ฉันเชื่อว่า (แต่ไม่แน่ใจ) คุณได้ติดตั้ง NetworkManager แล้ว


1

อินเตอร์เฟส eth0 ไม่ได้รับการกำหนดค่า

หมายถึง litteraly

ไม่ได้กำหนดค่าในไฟล์ / run / network / ifstate

คำสั่ง ifupdown มี hysteresis: เมื่อคุณเปิดใช้งานอินเตอร์เฟสด้วย ifup คำสั่งนั้นจะถูกเก็บไว้ใน/run/network/ifstateที่ที่คุณเปิดใช้งาน

ifup eth0
cat /run/network/ifstate
eth0=eth0
(+other interfaces)

ifdown eth0
cat /run/network/ifstate
(+other interfaces)

สถานะจะถูกบันทึกแม้ว่าการดำเนินการล้มเหลว (ส่วนใหญ่เป็นเพราะ/etc/network/interfacesเขียนไม่ถูกต้อง) วิธีแก้ปัญหาหลักของฉันจนถึงขณะนี้คือการแก้ไขด้วยตนเอง/run/network/ifstateเพื่อทำหน้าที่เป็น eth0 เพิ่มขึ้นแล้วจึงเปิดเครื่อง:

nano /run/network/ifstate
eth0=eth0

ifdown eth0

จากนั้นคุณสามารถเริ่มต้นอีกครั้งด้วยการตั้งค่าใหม่ทั้งหมด

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