Hạn chế lưu lượng SSH?


11

Tôi muốn có thể giới hạn băng thông SSH trên máy chủ của mình. Tức là mỗi quá trình sshd nên được giới hạn ở 200Kb / s hoặc đại loại như thế.

scp có chức năng này, nhưng ssh, được thiết kế nhiều hơn để sử dụng tương tác đáp ứng, dường như không có tùy chọn này. Tuy nhiên, tôi muốn kết hợp chức năng -D (SOCKS proxy) với một số khả năng để hạn chế lưu lượng.

Có bất kỳ lựa chọn cho điều này cả?


Bạn đang tìm cách thực hiện việc này trên máy chủ SSH, hay bạn có thể làm điều đó trên tường lửa giữa hai máy không?
Mark Henderson

Tôi thực sự muốn làm điều này trên máy chủ, vì tôi không có quyền truy cập vào tường lửa.
dùng10640

Nếu bạn hài lòng khi làm điều này trên máy khách, hãy thử tiện ích dòng lệnh 'mưa phùn'.
Alex J

Mặc dù lệnh mưa phùn có vẻ hữu ích, nhưng cuối cùng tôi không thể tin tưởng người dùng để chạy nó. Có vẻ như tôi bị mắc kẹt khi nhìn vào thứ gì đó phức tạp hơn tôi mong đợi: P. Cảm ơn tất cả mọi người!
dùng10640

Câu trả lời:


4

Tôi không chắc chắn nếu tin tưởng người dùng là một phần của phương trình, nhưng tricklerất thuận tiện để giới hạn tốc độ của một lệnh nhất định. Khi tôi tải lên các gói từ nhà, bạn cùng phòng nghiện WoW nhận thấy khi tôi quên điều gì đó như thế, vì nó chi phối khá nhiều.


1
Trickle có thể chạy như một daemon và quản lý tổng băng thông cho nhiều lệnh trên cùng một máy. Tiện dụng khi bạn muốn đặt ra một loạt các hoạt động chuyển độc lập khác cùng một lúc nhưng muốn chúng sử dụng không quá một tốc độ dữ liệu đã đặt.
David Spillett

1
Thật không may, tôi không nghĩ rằng nó sẽ giúp tôi với sshd - nó sẽ loại bỏ các sshds mới khi các kết nối mới xuất hiện. Tôi có thể bị mắc kẹt với một số giải pháp cấp độ tường lửa, sẽ khó thực hiện hơn một chút.
dùng10640

wtf tại sao đây là câu trả lời hàng đầu? tricklekhông làm việc với bất kỳ quy trình nào. Điều đó bao gồm sshd!
Navin

1

Sẽ đáng để xem xét triển khai định hình lưu lượng HTB bằng tc. Giải pháp của tôi cho một vấn đề tương tự là sử dụng tập lệnh htb.init được tìm thấy tại http://sourceforge.net/projects/htbinit/

Tôi thiết lập nó dựa trên việc giới hạn lưu lượng truy cập từ cổng 22, nhưng bạn cũng có thể sử dụng iptables để đánh dấu / xé các gói được xử lý dựa trên nhãn hiệu.


+1 cho tccâu trả lời liên quan duy nhất cho đến nay.
đệm

1
scp -l 8192 file.txt user_name@111.111.1.11:/tmp
//8192  = 8192 KB per second

Tôi biết chủ đề này khá cũ, nhưng hy vọng điều này sẽ giúp được ai đó.


1
Thật khó chịu khi hai người đã hạ thấp câu trả lời của bạn mà không ít nhất là bình luận. Tôi đoán đó là vì scpmột trường hợp sử dụng khá cụ thể của ssh. Tôi đã thử nghiệm scp -lvà nó hoạt động, mặc dù lưu ý rằng đó là kilobit (kb) mỗi giây chứ không phải kilobyte (kB).
mwfearnley

0

Có một vài lựa chọn.

Một cách phổ biến là triển khai QoS trên Cổng 22 trên tường lửa / bộ định tuyến giữa máy chủ và máy khách.

Nếu chúng nằm trên cùng một mạng cục bộ (nghĩa là không có bộ định tuyến hoặc tường lửa giữa chúng), tôi tin rằng bạn có thể sử dụng IPTables để giới hạn băng thông ở cổng 22 ... Hãy xem tại đây để biết thêm thông tin về cách thực hiện việc này.


1
Bạn cần cẩn thận khi sử dụng bộ giới hạn tốc độ của iptables với một dịch vụ như ssh, bởi vì "Điều quan trọng là phải quan sát rằng giới hạn tốc độ khác về mặt khái niệm với điều chỉnh / giới hạn băng thông; kết nối điều chỉnh băng thông sẽ xếp hàng các gói và giới hạn tốc độ mà chúng được truyền / nhận. Giới hạn tốc độ sẽ không thực hiện được điều này, ví dụ như khi bạn sử dụng giới hạn tốc độ, ví dụ, các kết nối TCP đến với nhận dạng của bạn và các kết nối vượt quá giới hạn đã chỉ định sẽ bị từ chối; không có hàng đợi gói . "
msanford

Điểm goood của Hmmm
Mark Henderson

0

Bạn có thể nhìn vào một cái gì đó như iprelay :

User-space bandwidth shaping TCP proxy daemon
iprelay can shape the TCP traffic forwarded through it to a specified
bandwidth and allow this bandwidth to be changed on-the-fly. Multiple
data streams to different sockets may be shaped to the same total
bandwidth, much like a traffic shaping router would. However, this
application runs in user space, and works by acting as a TCP proxy.
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.