Trickleを使用するLinuxシステムのアプリケーションで使用されるネットワーク帯域幅を制限する方法


1つのアプリケーションがすべてのネットワーク帯域幅を支配する状況に遭遇したことがありますか? 1つのアプリケーションがすべてのトラフィックを消費する状況にあった場合は、トリクル帯域幅シェーパーアプリケーションの役割を評価します。システム管理者でもLinuxユーザーでも、アプリケーションのアップロード速度とダウンロード速度を制御して、ネットワーク帯域幅が単一のアプリケーションによって消費されないようにする方法を学ぶ必要があります。

トリクルとは何ですか?

Trickleは、アプリケーションのアップロード速度とダウンロード速度を管理して、アプリケーションの1つが利用可能な帯域幅のすべて(またはほとんど)を占有するのを防ぐことができるネットワーク帯域幅シェーパーツールです。簡単に言うと、クライアントサーバー環境での帯域幅シェーピングの典型的な例であるユーザーごとの制御とは対照的に、トリクルを使用すると、アプリケーションごとにネットワークトラフィックレートを制御できます。に精通。

Trickleはどのように機能しますか?

さらに、トリクルはアプリケーションごとに優先順位を定義するのに役立ちます。そのため、システム全体に全体的な制限が設定されている場合でも、優先順位の高いアプリは自動的により多くの帯域幅を取得します。このタスクを実行するために、trickleは、TCP接続を使用してソケットとの間でデータを送受信する方法にトラフィック制限を設定します。データ転送速度を除いて、トリクルは、特定の瞬間に形成しているプロセスの動作を変更しないことに注意する必要があります。

トリクルができないことは何ですか?

唯一の制限は、いわば、SUIDまたはSGIDビットが設定された静的にリンクされたアプリケーションまたはバイナリではトリクルが機能しないことです。これは、動的リンクとロードを使用して、シェーピングされたプロセスとそれに関連付けられたネットワークソケットの間に配置されるためです。 Trickleは、これら2つのソフトウェアコンポーネント間のプロキシとして機能します。

トリクルは実行するためにスーパーユーザー権限を必要としないため、ユーザーは独自のトラフィック制限を設定できます。これは望ましくない場合があるため、システムユーザーが超えてはならない全体的な制限を設定する方法を検討します。つまり、ユーザーは引き続きトラフィックレートを管理できますが、常にシステム管理者が設定した範囲内にあります。

この記事では、Linuxサーバーのアプリケーションが使用するネットワーク帯域幅を細流で制限する方法について説明します。必要なトラフィックを生成するために、クライアント(CentOS 7サーバー– dev1:192.168.0.17)でncftpputとncftpget(どちらのツールもncftpをインストールすることで利用可能)を使用し、サーバー(Debian Wheezy 7.5 – dev2:192.168。)でvsftpdを使用します。 0.15)デモンストレーション用。同じ手順は、RedHat、Fedora、Ubuntuベースのシステムでも機能します。

1. RHEL/CentOS 7/6の場合、EPELリポジトリを有効にします。エンタープライズLinux用の追加パッケージ(EPEL)は、Fedoraプロジェクトによって維持されている高品質の無料のオープンソースソフトウェアのリポジトリであり、Red Hat Enterprise LinuxやCentOSなどのスピンオフと100%互換性があります。トリクルとncftpの両方がこのリポジトリから利用可能になります。

2.次のようにncftpをインストールします。

# yum update && sudo yum install ncftp		[On RedHat based systems]
# aptitude update && aptitude install ncftp	[On Debian based systems]	

3.別のサーバーにFTPサーバーをセットアップします。 FTPは本質的に安全ではありませんが、ファイルのアップロードまたはダウンロードのセキュリティが必要ない場合に広く使用されていることに注意してください。この記事では、トリクルの恩恵を説明するために使用しています。また、クライアントの標準出力で転送速度を示しているため、別の日時に使用するかどうかについての説明を残します:)。

# yum update && yum install vsftpd 		[On RedHat based systems]
# aptitude update && aptitude install vsftpd 	[On Debian based systems]

ここで、FTPサーバー上の/etc/vsftpd/vsftpd.confファイルを次のように編集します。

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

その後、現在のセッションでvsftpdを開始し、今後の起動時に自動開始できるようにしてください。

# systemctl start vsftpd 		[For systemd-based systems]
# systemctl enable vsftpd
# service vsftpd start 			[For init-based systems]
# chkconfig vsftpd on

4.リモートアクセス用のSSHキーを使用してCentOS/RHEL 7ドロップレットでFTPサーバーをセットアップすることを選択した場合、ルートの外部で目的のコンテンツをアップロードおよびダウンロードするための適切なディレクトリとファイルのアクセス許可を持つパスワードで保護されたユーザーアカウントが必要です。ホームディレクトリ。

次に、ブラウザに次のURLを入力して、ホームディレクトリを参照できます。ログインウィンドウがポップアップ表示され、FTPサーバー上の有効なユーザーアカウントとパスワードの入力を求められます。

ftp://192.168.0.15

認証が成功すると、ホームディレクトリの内容が表示されます。このチュートリアルの後半で、そのページを更新して、前の手順でアップロードされたファイルを表示できるようになります。