วิธีการจำลองสายเคเบิลเครือข่ายที่ไม่ได้เสียบหรือเซิร์ฟเวอร์ลง


14

ฉันได้จำลองเครือข่ายแฝงด้วยnetemและมันยอดเยี่ยม ตอนนี้ฉันต้องการจำลองสายเคเบิลเครือข่ายที่ไม่ได้เสียบปลั๊กหรือเมื่อเซิร์ฟเวอร์ล่ม ฉันต้องการสิ่งนี้เพื่อทำให้การทดสอบแอปพลิเคชันของฉันง่ายขึ้นและฉันไม่พบสิ่งใดบนเว็บที่จะช่วยฉันได้ เซิร์ฟเวอร์ของฉันเป็นอินสแตนซ์ CentOS เสมือนและอยู่ใน Virtualbox ฉันต้องการทำสิ่งนี้จากเว็บเพจ php

คำตอบ:


17

เพียงนำอินเทอร์เฟซลง ตัวอย่างเช่นด้วย eth0:

ip link set eth0 down

วิธีนำอินเทอร์เฟซสำรอง:

ip link set eth0 up

ขอบคุณฉันกำลังอ่านเกี่ยวกับที่นี่
SafeY

1
ทำงานได้สำเร็จ แต่ip link set eth0 upไม่ทำงาน :( และฉันต้องการทั้งคู่
SafeY

@NancySmith "ไม่ทำงาน" ไม่มีความหมาย ข้อความผิดพลาดอะไรเกิดขึ้น? คุณกำหนด IP และ netmask หรือไม่
Chris Down

ฉันหมายความว่าฉันใช้ip link set eth0 downผ่าน php และ ping แสดงว่าเซิร์ฟเวอร์ของฉันไม่สามารถเข้าถึงได้ จากนั้นฉันต้องการเรียกคืน "up" ฉันดำเนินการip link set eth0 upผ่าน php และเซิร์ฟเวอร์ยังคงทำงานไม่ทำงาน
SafeY

3
@NancySmith สร้างอินเทอร์เฟซเครือข่ายอื่นที่ไม่สามารถเข้าถึงสิ่งที่กำลังเชื่อมต่อกับ (โดยใช้เส้นทาง ฯลฯ ) SSH ไปยังโฮสต์โดยใช้อินเตอร์เฟสนั้น ลดส่วนต่อประสานที่คุณไม่ได้เชื่อมต่อกับ SSH ผ่าน
Chris Down

7

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

ตัวอย่างการใช้อินเตอร์เฟสens32:

หากคุณทำงาน:

ip link set ens32 down

และคุณกำลังเชื่อมต่อผ่าน SSH คุณจะไม่สามารถนำขึ้นมาอีกได้เนื่องจากคุณได้ปิดการใช้งานเครือข่ายของคุณและดังนั้นจึงไม่สามารถ SSH ไปยังเซิร์ฟเวอร์ของคุณ

ฉันใช้สคริปต์ต่อไปนี้เพื่อจำลองการหยุดทำงาน 20 วินาที:

#!/bin/sh
ip link set ens32 down
sleep 20
ip link set ens32 up

บันทึกเป็น downtime.sh ตรวจสอบให้แน่ใจว่าไฟล์มีสิทธิ์ในการดำเนินการแล้วเรียกใช้:

sudo ./downtime.sh

1
สิ่งที่ดี. นอกจากนี้ลิงก์ที่เกี่ยวข้องสำหรับผู้ที่ไม่แน่ใจว่าอินเทอร์เฟซแบบใดที่จะดาวน์: unix.stackexchange.com/questions/125400/ …
Jeutnarg

1
เอ่อ ... ฉันเป็นลินุกซ์มือใหม่ แต่ฉันคิดว่าอาจมีคำแนะนำที่ไม่ดีอยู่ที่นี่: ถ้าคุณไม่ nohup สคริปต์นี้จะเกิดอะไรขึ้นถ้าคุณรันสคริปต์นี้เซสชันของคุณจะตาย (เนื่องจากขาดการเชื่อมต่อ) และสคริปต์หยุดทำงาน ( และไม่ต้องรื้อฟื้นอินเทอร์เฟซสุทธิ) ฉันคิดว่าการอ่านที่ไม่มีรอบควรเป็นสิ่งที่มีค่า!
DraxDomax

@DraxDomax สิ่งที่คุณพูดฟังดูมีเหตุผล แต่ฉันไม่ได้มีปัญหาใด ๆ กับมันไม่กลับมา ในขณะที่ฉันมีปัญหากับคำตอบที่ยอมรับ
เยาะเย้ย

@Mocking ขออภัยฉันไม่สามารถแก้ไขความคิดเห็นของฉัน มันไม่จำเป็นต้องเป็น "คำแนะนำที่ไม่ดี" เป็นคำตอบเชิงรุกที่ดีเพราะ 90% ของคนที่จะพบคำถามนี้กำลังพยายามทำสิ่งเดียวกัน: "ฉันต้องทดสอบว่าซอฟต์แวร์ของฉันทำงานหลังจากการขาดการเชื่อมต่อเครื่องหรือไม่ฉันไม่สามารถเข้าถึงโฮสต์ virtualisation" . ที่จริงแล้วฉันใช้สคริปต์ของคุณ (แค่อะแดปเตอร์ของฉันคือ br0) - มันไม่ทำงานในกรณีของฉัน (SSH จาก MacOS ถึง CentOS) และฉันต้องโทรหาคนไอทีของเราเพื่อนำเครือข่ายขึ้นมาอีกครั้ง
DraxDomax

1

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


ฉันต้องการทำสิ่งนี้จากหน้าเว็บ แน่นอนฉันรู้วิธีปิดเครื่อง
SafeY

และฉันไม่ต้องการปลอมมัน ไม่ได้ปิดตัวลงจริงๆและบูตอีกครั้ง
SafeY

จากการกล่าวถึงnetemฉันคิดว่าคำถามนี้เกี่ยวกับการถอดสายเคเบิลเครือข่ายจากเซิร์ฟเวอร์ไม่ใช่สายไฟ (แม้ว่าจะไม่ชัดเจน)
Chris Down

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