การแก้ไขอินเตอร์เฟสเครือข่ายโดยไม่ต้องรีบูตระบบ


23

ฉันต้องการเปลี่ยนแปลงการกำหนดค่าเครือข่ายของฉันโดยแก้ไข/etc/network/interfacesไฟล์ของฉัน อะไรคือวิธีที่สะอาดที่สุดในการเปลี่ยนแปลงไฟล์นี้และให้มีผลบังคับใช้โดยไม่ต้องรีบูต? โดยทั่วไปฉันได้ทำ:

  1. แก้ไขไฟล์
  2. service networking restart

แต่ฉันมีความรู้สึกว่านี่ไม่ใช่วิธีที่ "ถูก" ในการเปลี่ยนแปลงเหล่านี้


บริการเครือข่ายเริ่มต้นใหม่เกือบ = /etc/init.d/networking เริ่มต้นใหม่
shantanu

คำตอบ:


11

ปิดการเชื่อมต่อเครือข่ายโดยใช้

sudo ifdown eth0

(แทนที่eth0ด้วยอินเทอร์เฟซที่คุณต้องการเปลี่ยน) และนำมาใช้อีกครั้งโดยใช้

sudo ifup eth0

4
สิ่งนี้ไม่ได้ผลสำหรับฉัน มันทำให้ฉันมีข้อผิดพลาด "ไม่ได้กำหนดค่า eth0" ฉันต้องรีบูทระบบเพื่อให้การเปลี่ยนแปลงมีผลในวันที่ 12.04
JohnMerlino

4

ใน Ubuntu Server 16.04 คุณต้องใช้คำสั่ง ip เพื่อล้างที่อยู่ก่อนที่จะเริ่มระบบเครือข่ายมิฉะนั้นการเปลี่ยนแปลงที่อยู่ใด ๆ ในไฟล์อินเตอร์เฟสจะไม่มีผล:

$ sudo ip addr flush interface-name
$ sudo systemctl restart networking

ฉันได้รับคำตอบจากบทความที่เป็นประโยชน์นี้


สมบูรณ์แบบนี่ควรเป็นคำตอบสำหรับคำถาม
ดึง

2

หยุดการเชื่อมต่อทั้งหมดโดยใช้

sudo /etc/init.d/networking stop

กำหนดค่า (แก้ไข) ส่วนต่อประสานของคุณตามที่คุณต้องการจากนั้น

เริ่มอีกครั้ง

sudo /etc/init.d/networking start

ไม่จำเป็นต้องรีบูต


3
สิ่งนี้ไม่ทำงานใน Ubuntu 12.04 ระบบรีบูตเท่านั้นทำงาน
JohnMerlino

0

ทำไมคุณไม่คิดว่ามันเป็นวิธีที่ถูกต้อง คิดว่าอูบุนตูสามารถทำอะไรได้บ้างในระหว่างการบู๊ต Ubuntu มีรายการบริการที่จำเป็นต้องเรียกใช้ในระหว่างการบูทแต่ละบริการมีรายการคำสั่งที่ต่อเนื่องกันเพื่อเริ่มทำงานเอง Ubuntu เพียงแค่เรียกใช้บริการเครือข่ายผ่านสคริปต์ /etc/init.d/networking ซึ่งมีคำสั่งบางอย่างที่จำเป็นต้องเรียกใช้บริการเครือข่าย ดังนั้นหากการเปลี่ยนแปลงใด ๆ ที่จำเป็นต้องใช้กับเครือข่ายของคุณคุณจะต้องเริ่มบริการของคุณใหม่และวิธีที่จะจำคำสั่งที่ต่อเนื่องของบริการของคุณได้


เนื่องจากการรีบูตเครื่องนั้นรับประกันว่าจะล้างส่วนต่อประสานทั้งหมดที่ฉันได้ตั้งค่าไว้และฉันกังวลว่าหากฉันลบส่วนต่อประสานออกจากไฟล์ส่วนต่อประสานแล้วการเริ่มต้นสคริปต์เครือข่ายใหม่จะไม่ได้รับการกำจัด
Lorin Hochstein

คุณแน่ใจไหม? การเปลี่ยนแปลงใด ๆ ในเครือข่ายทำงานได้สำหรับฉันด้วย sudo /etc/init.d/networking restart
shantanu

ตัวอย่างเช่นถ้าฉันสร้างแท็ก vlan (เช่น eth0.123) ดูเหมือนว่าจะไม่ถูกทำลายโดยอัตโนมัติเมื่อฉันรีสตาร์ทเครือข่าย
Lorin Hochstein

sudo eth0 down --- sudo eth0 ขึ้นมา
shantanu

/etc/init.d/networking อ่านไฟล์การกำหนดค่าเครือข่ายใหม่ทั้งหมดและอัปเดตการตั้งค่าทั้งหมดทำไมมันควรจะทำลายอินเตอร์เฟสที่สร้างขึ้น? หากคุณเปลี่ยน ip หรือ dns หรือข้อมูลประเภทนี้แล้ว / etc / ... ก็เพียงพอแล้วหากคุณสร้าง LAN เสมือนคุณต้องรีสตาร์ทอินเตอร์เฟสอีเธอร์เน็ต (sudo eth0 ลงแล้ว sudo eth0 ขึ้น)
shantanu


0

จริงๆแล้วไม่มีงานเหล่านี้เลย ทดสอบบน Ubuntu 16.10 สิ่งเหล่านี้ไม่มีผล

  • ifdown ens3 และ ifup ens3
  • เครือข่ายบริการหยุดและเริ่มต้น
  • บริการเครือข่ายโหลดซ้ำ
  • systemctl หยุดระบบเครือข่ายบริการจากนั้นเริ่มอีกครั้ง

ทุกสิ่งเหล่านี้ dhcp ip เก่ากลับมาและไม่ใช่สถิต ฉันสงสัยว่านี่เป็นความตั้งใจหรือไม่?

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