ホームページ >運用・保守 >Linuxの運用と保守 >Linux でポート転送を設定する方法

Linux でポート転送を設定する方法

PHPz
PHPzオリジナル
2023-07-05 15:48:107095ブラウズ

Linux でポート フォワーディングを設定する方法

ポート フォワーディングは、さまざまなネットワーク アプリケーションにおいて非常に重要な機能です。これにより、外部トラフィックを内部ネットワーク上の特定のポートに転送できます。 Linux システムでは、ポート転送機能は iptables と sysctl を使用して実装されます。この記事では、Linux でポート転送を設定する方法を説明し、対応するコード例を示します。

  1. カーネル パラメータを確認する

ポート フォワーディングの設定を開始する前に、まずカーネル パラメータで転送機能が許可されているかどうかを確認する必要があります。次のコマンドを実行すると、現在のシステムの転送設定を表示できます。

sysctl net.ipv4.ip_forward

出力結果が net.ipv4.ip_forward = 1 の場合、転送機能が機能していることを意味します。有効化されました。出力結果が net.ipv4.ip_forward = 0 の場合、転送機能が有効になっていないことを意味します。転送機能が有効になっていない場合は、次のコマンドを実行して転送機能を一時的に有効にすることができます。

sysctl -w net.ipv4.ip_forward=1

転送機能を永続的に有効にする必要がある場合は、/etc/sysctl を編集できます。 conf ファイルに、次のパラメータを追加または変更します。

net.ipv4.ip_forward=1

変更後、ファイルを保存し、次のコマンドを実行して有効にします。

sysctl -p
  1. Set port forwarding

ポート転送を実装するにはさまざまな方法がありますが、以下では、iptables を使用する方法と socat ツールを使用する 2 つの一般的な方法を紹介します。

A. iptables の使用

iptables は Linux システムで一般的に使用されるファイアウォール ツールであり、これを使用してポート転送を設定できます。以下は、iptables を介してポート転送を設定するサンプル コードです。

iptables -t nat -A PREROUTING -p tcp --dport <external_port> -j DNAT --to-destination <internal_ip>:<internal_port>
iptables -t nat -A POSTROUTING -j MASQUERADE

ここで、749375b4434469ed7a5194cf26b2a289 は外部ポート、6fccd0679a7f07f1f43815050eb515f2 は IP です。内部サーバーのアドレス。<internal_port></internal_port> は内部サーバーのポート番号です。これら 2 つのコマンドは、外部トラフィックを内部サーバーに転送します。外部トラフィックの転送後に送信元 IP アドレスを正しく識別したい場合は、次のコマンドを追加できます。

iptables -t nat -A POSTROUTING -o <external_interface> -j MASQUERADE

ここで、881d938581b5738c7a57b1cbe4098023 は外部インターフェイスの名前です。 eth0 など。

B. socat ツールを使用する

Socat は、さまざまなネットワーク接続と転送を実行できる強力なネットワーク ツールです。以下は、socat を介してポート転送を設定するサンプル コードです。

socat TCP-LISTEN:<external_port>,fork TCP:<internal_ip>:<internal_port>

ここで、749375b4434469ed7a5194cf26b2a289 は外部ポート、6fccd0679a7f07f1f43815050eb515f2 は IP です。内部サーバーのアドレス。<internal_port></internal_port> は内部サーバーのポート番号です。このコマンドは、外部トラフィックを内部サーバーに転送します。

  1. 転送ルールの適用

iptables ツールを使用するか socat ツールを使用するかにかかわらず、設定された転送ルールは現在のセッションでのみ有効です。システムの再起動後もルールを有効なままにしたい場合は、これらのルールをシステムに適用する必要があります。

A. iptables の使用

次のコマンドを実行して、iptables ルールをシステムに適用できます:

iptables-save > /etc/sysconfig/iptables

B. socat ツールの使用

socatツールのデフォルト バックグラウンドで実行している場合、システムの再起動後も socat ルールを有効なままにしておく場合は、socat 設定をシステム起動スクリプトに追加できます。たとえば、Ubuntu システムでは、/etc/rc.local ファイルを編集して次の内容を追加できます。

/path/to/socat TCP-LISTEN:<external_port>,fork TCP:<internal_ip>:<internal_port> &

/path/to/socat## であることに注意してください。 # は実際の socat ツール パスに置き換える必要があります。

概要

この記事では、Linux システムでポート転送を設定する方法について説明し、iptables および socat ツールを使用したコード例を示します。ポート転送を設定すると、外部トラフィックを内部サーバーに柔軟に転送して、ネットワーク アプリケーションの負荷分散、ポート マッピング、その他の機能を実現できます。

以上がLinux でポート転送を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。