Làm thế nào để mô phỏng cáp mạng không được cắm hoặc máy chủ xuống?


14

Tôi đã mô phỏng độ trễ mạng với netem và thật tuyệt. Bây giờ tôi muốn mô phỏng cáp mạng không được cắm hoặc khi máy chủ gặp sự cố. Tôi cần điều này để giúp việc kiểm tra ứng dụng của tôi dễ dàng hơn và tôi không thể tìm thấy bất cứ điều gì trên web có thể giúp tôi. Máy chủ của tôi là các phiên bản CentOS ảo và chúng nằm trên Virtualbox. Tôi muốn làm điều này từ một trang web php.

Câu trả lời:


17

Chỉ cần đưa giao diện xuống. Ví dụ: với eth0:

ip link set eth0 down

Để đưa giao diện trở lại:

ip link set eth0 up

cảm ơn bạn, tôi đang đọc về nó ở đây
SafeY

1
đang hoạt động thành công nhưng ip link set eth0 upkhông hoạt động :( và tôi cần cả hai
SafeY

@NancySmith "Không hoạt động" không có ý nghĩa. Những thông báo lỗi xảy ra? Bạn đã chỉ định một IP và netmask?
Chris Down

Tôi có nghĩa là tôi đã sử dụng ip link set eth0 downthông qua php và ping cho thấy rằng máy chủ của tôi không thể truy cập được. sau đó tôi muốn lấy lại "up", tôi thực hiện ip link set eth0 upthông qua php và máy chủ vẫn không hoạt động.
An toàn

3
@NancySmith Tạo một giao diện mạng khác không có quyền truy cập vào bất cứ thứ gì nó đang kết nối (sử dụng các tuyến đường, v.v.). SSH đến máy chủ bằng giao diện đó. Đưa xuống giao diện mà bạn không kết nối với SSH thông qua.
Chris Down

7

Khi sử dụng câu trả lời được bình chọn hàng đầu trên một máy bạn đang kết nối qua SSH, bạn sẽ đưa xuống mạng và không có phương tiện nào đưa nó trở lại. Sau đây là một cách để đưa nó xuống và đưa nó trở lại trong khi kết nối SSH.

Ví dụ sử dụng giao diện ens32:

Nếu bạn chạy:

ip link set ens32 down

Và bạn đang kết nối thông qua SSH, bạn sẽ không thể đưa nó trở lại vì bạn đã vô hiệu hóa mạng của mình và do đó không thể SSH đến máy chủ của bạn.

Tôi sử dụng đoạn script sau để mô phỏng 20 giây thời gian chết:

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

Lưu nó dưới dạng dowime.sh, đảm bảo tệp có quyền thực thi và sau đó chạy:

sudo ./downtime.sh

1
đồ tốt. Ngoài ra, liên kết có liên quan cho những người không chắc chắn về giao diện nào bị tắt: unix.stackexchange.com/questions/125400/ợi
Jeutnarg

1
erm ... Tôi là một người mới sử dụng linux nhưng tôi nghĩ có thể có một lời khuyên tồi ở đây: nếu bạn không sử dụng tập lệnh này, điều gì xảy ra là bạn thực thi nó, bạn sẽ chết phiên (do bị ngắt kết nối) và tập lệnh dừng ( và không bao giờ hồi sinh giao diện mạng). Tôi nghĩ rằng một số đọc xung quanh nohup nên có giá trị!
DraxDomax

@DraxDomax những gì bạn nói nghe có vẻ hợp lý nhưng tôi không có vấn đề gì với việc nó không xuất hiện trở lại. Trong khi đó tôi đã có vấn đề với câu trả lời được chấp nhận.
Mocking

@Mocking Xin lỗi, tôi không thể chỉnh sửa nhận xét của mình. Đó không nhất thiết là "lời khuyên tồi". Đây thực sự là một câu trả lời chủ động tốt vì 90% những người sẽ tìm thấy câu hỏi này đang cố gắng làm điều tương tự: "Tôi cần kiểm tra xem phần mềm của tôi có hoạt động sau khi ngắt kết nối máy không. Tôi không có quyền truy cập vào máy chủ ảo hóa" . Trên thực tế, tôi đã dùng đến kịch bản của bạn (chỉ bộ điều hợp của tôi là br0) - nó không hoạt động trong trường hợp của tôi (SSH từ MacOS đến CentOS) và tôi đã phải gọi anh chàng IT của chúng tôi để đưa mạng lên một lần nữa.
DraxDomax

1

Trên cửa sổ bảng điều khiển hộp ảo của bạn, bạn nên kéo menu Máy xuống. Dưới đó có một số hành động. Một trong số đó là Tắt nguồn. Bạn cần chọn cái đó để giảm điện ngay lập tức. Đây là điều gần nhất để kéo dây nguồn của máy chủ vật lý.


Tôi muốn làm điều này từ một trang web. chắc chắn tôi biết làm thế nào để tắt nguồn máy.
An toàn

và tôi không muốn làm giả nó. không thực sự tắt và khởi động lại.
An toàn

Đánh giá bằng cách đề cập đến netem, tôi cho rằng câu hỏi thực sự là về việc rút cáp mạng khỏi máy chủ chứ không phải cáp nguồn (mặc dù nó không rõ ràng).
Chris Down

Tôi sẽ chỉnh sửa câu hỏi của mình để làm cho nó rõ ràng hơn, cảm ơn
SafeY
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.