วิธีนำอินเทอร์เฟซเครือข่ายขึ้นมาได้ต่อเมื่อมีอยู่จริง


8

ใช้เซิร์ฟเวอร์ Ubuntu 12.04 (ไม่มี GUI) สิ่งที่จะเป็นวิธีที่ดีที่สุดในการทำให้เคอร์เนลนำส่วนต่อประสานเครือข่ายขึ้นมาหากเสียบเข้ากับตัวเครื่องเท่านั้น ดังนั้นหากไม่มีอยู่ให้ไปที่การเริ่มต้นอินเทอร์เฟซอื่น ๆ (ถ้ามี) และไปที่หน้าจอเข้าสู่ระบบโดยไม่ล่าช้า "รอการกำหนดค่าเครือข่าย"

เช่นฉันมีคีย์ USB แบบไร้สาย wlan9 (ใน / etc / network / interfaces):

auto wlan9
iface wlan9 inet dhcp
        wpa-ssid myssd
        wpa-psk mykey
        wpa-proto RSN
        wpa-pairwise CCMP
        wpa-group CCMP

ฉันพยายามช่วยให้-hotplugแทนอัตโนมัติซึ่งในกรณีนี้อินเตอร์เฟซที่ไม่ได้รับการเริ่มต้นโดยอัตโนมัติในระหว่างการบูตและฉันต้องทำมันด้วยตนเองifup wlan9 นี่ไม่ใช่สิ่งที่ฉันกำลังมองหา

ขอบคุณ.

คำตอบ:


4

สำหรับเซิร์ฟเวอร์ด้วย: ใช้ NetworkManager

  1. ติดตั้ง:

    sudo apt-get install network-manager
    

    น่าเสียดายที่สิ่งนี้จะดึงการพึ่งพาจำนวนมาก

  2. นำอินเทอร์เฟซที่กำหนดค่าแบบดั้งเดิม

    ifdown wlan9
    
  3. ปิดใช้งานการตั้งค่าด้วยตนเองใน/etc/network/interfacesโดยลบบรรทัดทั้งหมดที่เกี่ยวข้องกับอินเทอร์เฟซนั้น

  4. เพิ่มการตั้งค่าการเชื่อมต่อสำหรับการเชื่อมต่อไร้สายของคุณใน/etc/NetworkManager/system-connections/(สร้างชื่อ):

    [connection]
    id=Some name of my connection
    uuid=0d791425-87c5-45e6-948e-01b1863901f7
    type=802-11-wireless
    
    [802-11-wireless]
    ssid=mySSID
    mode=infrastructure
    mac-address=24:77:00:01:02:03
    security=802-11-wireless-security
    
    [802-11-wireless-security]
    key-mgmt=wpa-psk
    psk=mypassword
    
    [ipv4]
    method=auto
    
    [ipv6]
    method=ignore
    
    • สำหรับuuidใช้คำสั่งuuidgenเพื่อสร้างแบบสุ่ม
    • สำหรับmac-addressใช้ที่อยู่ MAC ของอะแดปเตอร์ไร้สายของคุณ (ใช้ifconfig -a wlan9เพื่อค้นหา) การทำเช่นนี้จะผูกไฟล์การกำหนดค่านี้กับอะแดปเตอร์นี้เท่านั้น - หากไม่มีอยู่มันจะไม่ใช้สำหรับอะแดปเตอร์อื่นและจะไม่รอให้อะแดปเตอร์นั้นปรากฏ
    • สาขาอื่นพูดด้วยตัวเองฉันหวังว่า :)
  5. รีสตาร์ท NetworkManager หรือรีบูต

    restart network-manager
    

ขอบคุณตัวเลือกผู้จัดการเครือข่ายรู้สึกหนัก แต่ฉันจะหันไปหามันหากไม่พบสิ่งที่เบากว่านี้ ifplugd เกือบจะทำงานแล้ว wlan9 ก็ขึ้น แต่มันไม่ได้รับ DHCP lease
noseratio

@Noseratio ใช่ฉันเห็นด้วยว่านี่ไม่ใช่โซลูชันที่มีน้ำหนักเบาจริงๆ ถ้าฉันรู้จักตัวจัดการเครือข่ายที่มีน้ำหนักเบากว่านี้หากไม่มีการพึ่งพา GUI ฉันจะใช้มันในคำตอบของฉัน :)
gertvdijk

@gertvdijk คุณช่วยบอกฉันได้ว่าจะเกิดอะไรขึ้นถ้าฉันลบmac-addressสาย? มันจะใช้งานได้กับอะแดปเตอร์ทั้งหมดหรือไม่
DangeMask

@DangeMask มันควรจะทำงานกับอะแดปเตอร์ทั้งหมดที่ฉันคิด ลองและหา?
gertvdijk

@gertvdijk ฉันได้ลองตอนนี้ หากฉันลบ "ที่อยู่ MAC ของอุปกรณ์" (ถูกลบใน GUI จะหายไปในไฟล์ด้วย) ตัวจัดการเครือข่ายจะไม่เชื่อมต่อโดยอัตโนมัติแม้หลังจากเชื่อมต่อด้วยตนเองหนึ่งครั้งและรีบูต ฉันพยายามตั้งค่า ifupdown> จัดการเป็นจริงและไม่สำเร็จ
DangeMask

3

และไปที่หน้าจอเข้าสู่ระบบ

แสดงให้เห็นว่าคุณกำลังติดตั้งที่เปิดใช้งาน GUI (ไม่ใช่เซิร์ฟเวอร์) - ดังนั้นฉันจึงให้คำตอบนี้ตามนั้น


เพียงใช้ NetworkManager

  1. นำอินเทอร์เฟซลง

    ifdown wlan9
    
  2. ปิดใช้งานการตั้งค่าด้วยตนเองใน/etc/network/interfacesโดยลบบรรทัดทั้งหมดที่เกี่ยวข้องกับอินเทอร์เฟซนั้น

  3. ไปที่การตั้งค่าเครือข่ายและเพิ่ม / แก้ไขการเชื่อมต่อเครือข่ายไร้สาย

  4. กำหนดค่าดังต่อไปนี้ (ดูภาพหน้าจอด้านล่าง):

    1. ให้มันเชื่อมต่อโดยอัตโนมัติ

    2. ใช้กับอะแดปเตอร์ไร้สายที่เหมาะสมโดยเลือกที่อยู่ MAC ที่ถูกต้อง หากอะแดปเตอร์ไม่มีอยู่การตั้งค่าการเชื่อมต่อเหล่านี้ในกล่องโต้ตอบนี้จะไม่ใช้ดังนั้น "ผูก" กับอะแดปเตอร์นี้โดยเฉพาะ (เพราะอะแดปเตอร์ทุกตัวมีที่อยู่ MAC อื่น) และไม่ใช่นี่ไม่ใช่ที่อยู่ MAC ของ WiFi AP - นั่นคือ BSSID

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

    และแน่นอนยังป้อนรายละเอียดอื่น ๆ เกี่ยวกับความปลอดภัย SSID เป็นต้น

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


ขออภัยฉันลืมระบุว่าเป็นเซิร์ฟเวอร์ Ubuntu ขอบคุณฉันบันทึกคำแนะนำนี้ไว้สำหรับความต้องการของเดสก์ท็อป
noseratio

1
@Noseratio อ่า ... แย่เกินไป ตอนนี้เขียนคำตอบสำหรับการติดตั้งเซิร์ฟเวอร์ โปรดระบุให้ชัดเจนและครบถ้วนในคำถามของคุณในครั้งต่อไป
gertvdijk

ฉันจะ. โปรดยกโทษให้ noob :)
noseratio

3

ฉันคิดวิธีแก้ปัญหาต่อไปนี้ซึ่งไม่ได้ขึ้นอยู่กับแพ็คเกจเพิ่มเติม:

auto wlan9
iface wlan9 inet manual
        wpa-ssid MYSSD
        wpa-psk MYKEY
        wpa-proto RSN
        wpa-pairwise CCMP
        wpa-group CCMP
        wireless-power off
        pre-up if [ -f /sys/class/net/wlan9/operstate ]; then ifconfig wlan9 up; fi
        up if [ -f /sys/class/net/wlan9/operstate ]; then dhclient wlan9; fi

ในขณะที่มันอาจจะไม่หรูหรา แต่ก็ทำในสิ่งที่ฉันต้องการ: ข้ามการเริ่มต้น wlan9 โดยไม่ต้องบูตล่าช้าหากดองเกิลไร้สายไม่ได้เสียบอยู่


ดี แต่สิ่งนี้จะข้ามการเริ่มต้นได้อย่างไร คุณไม่ได้ยกเลิกสิ่งใดในpre-upคำสั่ง
gertvdijk

1
มันคิดว่านี่เป็นผลคูณของสองปัจจัย: 1) inet manual - ดังนั้นมันจึงขึ้นอยู่กับการกระทำก่อนการทำอะไร: ถ้าไม่มีpre-upหรือup , kernel เพียงแค่ข้ามบทนี้
noseratio

ใช่เป็นไปได้ แต่ตาม manpage การตั้งค่าอื่น ๆ ทั้งหมดรวมถึงwpa-*คำสั่งไม่ได้ใช้กับmanualวิธีการ ดูเหมือนว่าพฤติกรรมที่ไม่มีเอกสาร
gertvdijk

1
ฉัน messed up ด้วยกับความคิดเห็นที่นี่คือสิ่งที่ผมหมายถึงว่ามันคิดว่านี่เป็นผลิตภัณฑ์สองปัจจัยคือ 1) inet คู่มือ - จึงจริงๆอาศัยก่อนขึ้นการดำเนินการที่จะทำอะไรถ้าไม่มีการก่อนขึ้นหรือขึ้นเคอร์เนลจะข้าม stanza นี้ 2) หากอินเตอร์เฟสไม่มีอยู่หาก [-f / sys / class / net / wlan9 / operstate]จะคืนค่า 1 และการpre-upจะล้มเหลวดังนั้นจึงไม่มีการเริ่มต้นหรือล่าช้าอีกต่อไป
noseratio

ก่อนถึงพฤติกรรมที่เป็นเอกสารจริง แต่มันอาจมีการเปลี่ยนแปลงในอนาคตmanpages.ubuntu.com/manpages/precise/man5/interfaces.5 คำสั่ง Run pre-up ก่อนที่จะนำอินเตอร์เฟสขึ้นมา หากคำสั่งนี้ล้มเหลว ifup จะยกเลิกให้งดการทำเครื่องหมายอินเทอร์เฟซตามที่กำหนดไว้พิมพ์ข้อความแสดงข้อผิดพลาดและออกจากสถานะ 0 ลักษณะการทำงานนี้อาจเปลี่ยนแปลงได้ในอนาคต
noseratio
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.