วิธีข้าม DHCP หากไม่มีสายเคเบิลเชื่อมต่อกับอีเธอร์เน็ตใน Debian


12

Bananian Linux ของฉันเสียเวลาในการเข้าสู่ระบบพยายามรับ DHCP lease สำหรับส่วนต่อประสาน eth0 ซึ่งไม่ได้เชื่อมต่อ สายเคเบิลตัวขยายเชื่อมต่ออยู่ แต่ไม่มีอะไรอยู่อีกปลาย

ฉันมี

auto eth0
iface eth0 inet dhcp 

ตั้งค่าของฉัน/etc/network/interfacesตั้งแต่ฉันต้องการให้รับอีเธอร์เน็ตในกรณีที่เชื่อมต่อ แต่ฉันไม่ต้องการชะลอการเริ่มต้นระบบหากสายไม่ได้เชื่อมต่อกับอีเธอร์เน็ต ฉันสันนิษฐานว่าระบบจะรู้สิ่งนี้โดยอัตโนมัติและจะไม่พยายามรับ DHCP lease สำหรับส่วนต่อประสาน

นี่คือสิ่งที่ฉันเห็นเวลาโหลด (ดูสามบรรทัดสุดท้าย):

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากหากเข้าใจว่าสัญญาเช่าไม่มาจะดำเนินการกับการบู๊ต

มีวิธีที่ฉันบอกไม่ได้กับ DHCP หากไม่มีสายเคเบิลเชื่อมต่อหรือไม่

คำตอบ:


16

หากคุณระบุ

allow-hotplug eth0

แทน

auto eth0

ใน/etc/network/interfacesจากนั้นการเชื่อมต่อจะเริ่มต้นได้udevเมื่อมีบางสิ่งที่ทริกเกอร์มันแทนการบู๊ตทุกครั้ง

นั่นอาจเพียงพอที่จะรองรับกรณีของคุณ แต่ไม่จำเป็น manpageกล่าวว่าinterfaces

(อินเทอร์เฟซที่มีเครื่องหมาย "allow-hotplug" จะปรากฏขึ้นเมื่อ udev ตรวจพบสิ่งเหล่านี้อาจเป็นได้ในระหว่างการบูตหากมีอินเทอร์เฟซอยู่แล้วหรือในภายหลังเช่นเมื่อเสียบการ์ดเครือข่าย USB โปรดทราบว่าสิ่งนี้ ไม่มีอะไรเกี่ยวข้องกับการตรวจจับสายเคเบิลเครือข่ายที่เสียบอยู่)

คุณอาจจำเป็นต้องใช้/etc/network/if-up.d/00check-network-cableจากแพคเกจที่จะข้ามอินเตอร์เฟซว่าสายไม่มีการเชื่อมต่อifupdown-extra


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

0

มีวิธีแก้ไขปัญหามากกว่าหนึ่งวิธีเสมอ

หากคุณอยู่กับเครื่องนี้ในที่เดียวเหมือนอยู่บ้านวิธีที่ง่ายที่สุดคือการกำจัดแพ็คเกจ dhcp-client และตั้งค่าที่อยู่ IP แบบคงที่, หน้ากาก, เกตเวย์ หากว่าคุณไม่ต้องการคุณก็ต้องทำอะไรบางอย่าง

apt-get remove isc-dhcp-client

สิ่งนี้จะบอกคุณก่อนหากมีการพึ่งพาอาศัยกัน เมื่อคุณถอนการติดตั้งแพคเกจคุณจะไม่ต้องรอระหว่างการบู๊ต

นี่คือตัวอย่างของสิ่งที่คุณจะตั้งค่าใน /etc/network/interfaces

iface eth0 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    gateway 192.168.0.254

ที่มา: https://wiki.debian.org/DHCP_Client


ตามที่กล่าวไว้ในคำถามฉันต้องการใช้ DHCP หากเชื่อมต่อสายเคเบิลอีเธอร์เน็ต ดังนั้นการลบไคลเอ็นต์ DHCP จะไม่ช่วยฉัน
Maxim V. Pavlov

0

ดูที่ifplugd:

ifplugd เป็น Linux daemon ซึ่งจะกำหนดค่าอุปกรณ์อีเธอร์เน็ตของคุณโดยอัตโนมัติเมื่อเสียบสายเคเบิลและยกเลิกการกำหนดค่าโดยอัตโนมัติหากดึงสายเคเบิล สิ่งนี้มีประโยชน์สำหรับแล็ปท็อปที่มีอะแดปเตอร์เครือข่ายออนบอร์ดเนื่องจากจะกำหนดค่าอินเทอร์เฟซเฉพาะเมื่อเชื่อมต่อสายเคเบิลจริงๆ

ifplugd ifplugd interfaces กับยูทิลิตี้การตั้งค่าเครือข่ายดั้งเดิมของการกระจายของคุณ

คุณสมบัติบางอย่าง:

  • ใช้โปรแกรม ifup / ifdown ดั้งเดิมของการกระจายของคุณ
  • อาจส่งเสียงบี๊บเมื่อถอดสายเคเบิลเสียบการกำหนดค่าอินเตอร์เฟสสำเร็จหรือล้มเหลว
  • รองรับ Linux SIOCETHTOOL (ใหม่กว่า, aka ethtool API), SIOCGMIIREG (เก่ากว่า, aka mii-diag / mii-tool API) และ SIOCDEVPRIVATE (เก่าที่สุด, aka mii-tool API) ioctl () สำหรับการรับสถานะลิงก์ Release 0.24 แนะนำการสนับสนุนสำหรับการตรวจจับลิงค์ด้วยการตั้งค่าสถานะ IFF_RUNNING
  • การสนับสนุน Syslog
  • โปรแกรมขนาดเล็ก - ไบนารีเพียง 25 KB (บวก 16 KB สำหรับ libdaemon)
  • รองรับอินเตอร์เฟสอีเธอร์เน็ตหลายตัว
  • สามารถกำหนดค่าให้ละเว้นจุด "unplugged" แบบสั้น (ตัวเลือก -d) หรือจุดแบบ "เสียบ" แบบสั้น (ตัวเลือก -u)
  • รองรับเครือข่ายไร้สาย เมื่อใดก็ตามที่ตรวจพบการเชื่อมโยงกับ AP เครือข่ายจะถูกกำหนดค่า ดู waproamd หากคุณต้องการเครื่องมืออำนวยความสะดวกในการกำหนดค่าคีย์ WEP ก่อนที่การเชื่อมโยง AP จะสำเร็จ
  • โหมดความเข้ากันได้สำหรับอุปกรณ์เครือข่ายที่ไม่รองรับการตรวจจับสายเคเบิล (ตัวเลือก -F)

แพคเกจ Debian แพคเกจการค้นหาหน้า: ifplugd
เว็บไซต์ ifplugd อย่างเป็นทางการ

apt-get update && apt-get-install ifpludควรทำเคล็ดลับ ในหมายเหตุด้านผู้สร้าง systemd รักษาแพคเกจนี้


2
ฉันมีสิทธิ์ได้รับในฐานะ "... เคยรักษาแพคเกจนี้" ตั้งแต่รุ่นล่าสุดเมื่อสิบปีที่แล้ว ;-) ทุกวันนี้ Lennart อาจจะแนะนำsystemd-networkd... ด้วยifplugdหลังจากการติดตั้งคุณต้องกำหนดค่าอุปกรณ์ของคุณ (ระบุallow-ifplugdใน/etc/network/interfaces)
Stephen Kitt

@StephenKitt คุณใช้allow-ifplugdหรือดูรหัสหรือไม่ ในขณะที่ค้นหาฉันพบข้อบกพร่องเพียงอย่างเดียวdebug.debian.org/cgi-bin/bugreport.cgi?bug=468896ซึ่งกล่าวว่าallow-ifplugdคุณลักษณะดังกล่าวไม่ได้รับการยอมรับ
sourcejedi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.