วิธี "เริ่มต้นใหม่" อินเตอร์เฟสเครือข่ายเฉพาะบน RHEL ได้อย่างไร


18

ใน RHEL แทนที่จะใช้service network restartคำสั่งฉันจะรีสตาร์ทอินเทอร์เฟซเครือข่ายเฉพาะได้อย่างไรให้พูดว่า "eth1" ด้วยคำสั่งเดียวเท่านั้น

"คำสั่งเดียวเท่านั้น" เพราะนั่นเป็นอินเทอร์เฟซเดียวที่ฉันsshใช้งานอยู่ ดังนั้นหากฉันกำลังจะใช้: ifdownแล้วifupฉันจะไม่สามารถกดifupคำสั่งได้เนื่องจากคำสั่งของฉันsshถูกยกเลิกหลังจากifdown eth1คำสั่ง

ดังนั้นควรมีคำสั่งเดียวที่อนุญาตให้ฉันนำมารวมกันแล้วนำอินเตอร์เฟสที่ให้บริการsshการเชื่อมต่อปัจจุบันของฉัน ดังนั้นฉันไม่จำเป็นต้องกังวลเกี่ยวกับการเชื่อมต่อกับเซิร์ฟเวอร์ของฉันทั้งหมด

มีความคิดอะไรมั้ย

คำตอบ:


27

คุณสามารถใช้ได้:

ifdown eth1 && ifup eth1

เป็นคำสั่งเดียว && เพียงรันคำสั่งหนึ่งแล้วอื่น ๆถ้าคำสั่งแรกประสบความสำเร็จ หากคุณจำเป็นต้องใช้ sudo ต้องแน่ใจก่อนใช้คำสั่งแต่ละคำสั่ง:

sudo ifdown eth1 && sudo ifup eth1

ตราบใดที่อินเทอร์เฟซของคุณได้รับการกำหนดค่าให้มี IP ที่จำเป็นและเส้นทางเพื่อให้ตรงกับการกำหนดค่าปัจจุบันการเชื่อมต่อ ssh ของคุณจะไม่ลดลง

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

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


นี้บวกกับการจัดการ OOB FTW
dmourati

3
ฉันแนะนำให้ใช้ifdown eth1 && ifup eth1วิธีนี้ถ้า ifup ไม่ทำงานเว้นแต่ว่า ifdown นั้นสำเร็จในขณะที่;ifup จะทำงานโดยไม่คำนึงว่า ifdown จะส่งคืนอย่างไร
zamnuts

@zamnuts คำตอบแก้ไขในขณะนี้ที่จะรวมนี้ :)
เดวิดการ์ดเนอร์

1

คุณสามารถ 'เริ่มต้นใหม่' หนึ่งอินเทอร์เฟซโดยการออกคำสั่งต่อไปนี้:

# ifdown eth1
# ifup eth1

หลังจากนั้นคุณสามารถตรวจสอบว่าการกำหนดค่าใหม่ของคุณใช้งานได้

# ip a

ขออภัย แต่ฉันต้องการ .. "คำสั่งเดียวเท่านั้น" เพราะนั่นเป็นอินเทอร์เฟซเดียวที่ ssh ของฉันทำงานด้วย ดังนั้นหากฉันกำลังจะใช้: ifdown และ ifup ฉันจะไม่สามารถกดคำสั่ง ifup ได้เนื่องจาก ssh ของฉันถูกยกเลิกหลังจากคำสั่ง ifdown eth1 ดังนั้นควรมีคำสั่งเดียวที่ฉันสามารถนำมาลงแล้วนำขึ้นอินเตอร์เฟสที่ให้บริการการเชื่อมต่อ ssh ปัจจุบันของฉัน ดังนั้นฉันไม่จำเป็นต้องกังวลเกี่ยวกับการเชื่อมต่อกับเซิร์ฟเวอร์ของฉัน
夏期劇場

คุณสามารถทำให้พวกเขาเป็นสคริปต์ของเชลล์และเรียกใช้สิ่งนั้น ssh-session ของคุณไม่ควรถูกยกเลิกแม้ว่าจะมีเครือข่ายสั้น ๆ ก็ตาม ตัวเลือกอื่นคือการเรียกใช้สคริปต์นั้นภายในหน้าจอเซสชั่นซึ่งมันจะถูกดำเนินการจนจบแม้ว่า ssh-session ของคุณจะล้มเหลว
jerQ

1
จะช่วยได้ไหม ifdown eth1 ; ifup eth1?
夏期劇場

0

คุณกำลังพยายามเปลี่ยนที่อยู่ IP (หรือพารามิเตอร์อินเทอร์เฟซสำหรับเรื่องนั้น) ของอินเทอร์เฟซบนเครื่องระยะไกลหรือไม่? หากคำตอบคือใช่คุณสามารถลองทำสิ่งใดสิ่งหนึ่งต่อไปนี้:

วิธีที่ยอดเยี่ยมคือการใช้ยูทิลิตี้หน้าจอเพื่อสร้างเซสชันโดยเพียงพิมพ์ 'หน้าจอ' เมื่อคุณรีสตาร์ทบริการเครือข่ายและการเชื่อมต่อ SSH ของคุณลดลงใช้หน้าจอ -lsเพื่อตรวจสอบว่าเซสชั่นยังคงใช้งาน (แต่ถอดออก) และหน้าจอ -rเพื่อดำเนินการเซสชั่นเดี่ยว วิธีนี้จะทำงานในกรณีที่ไม่มีข้อผิดพลาดในไฟล์กำหนดค่าส่วนต่อประสานของคุณเช่นบริการเครือข่ายจะเริ่มต้นใหม่ได้สำเร็จ

คุณยังสามารถใช้เคล็ดลับต่อไปนี้:

$ cp -v current_conf_file current_conf_file.bak
$ echo "mv current_conf_file.bak current_conf_file && service network restart" | at now+10min

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


-3

คำตอบทั้งหมดที่พูดถึง ifup & ifdown นั้นไม่เป็นไปตามคำถาม ifup & ifdown เพียงนำอินเทอร์เฟซขึ้นและลงเท่านั้นมันจะไม่ส่งผลกระทบต่อบริการเครือข่าย สำหรับบริการเครือข่าย linux ไม่ได้หมายถึงการตั้งค่าการเชื่อมต่อ ip เท่านั้น

โปรดตรวจสอบ /etc/rc.d/network script เพื่อดูรายละเอียดเพิ่มเติม


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