ファイアウォールの iptables 戦略を使用して Linux サーバー上のポートを転送する方法

ファイアウォールの iptables 戦略を使用して Linux サーバー上のポートを転送する方法

2つの異なるサーバー間の転送

ポート転送を有効にする

まず、デフォルトでは無効になっている IP 転送機能を有効にします。

一時的な変更:

[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

変更はすぐに有効になりますが、システムを再起動するとデフォルト値の 0 に戻ります。

永久的な変更:

vi /etc/sysctl.conf

# 次の値を見つけて0を1に変更します

ネット.ipv4.ip_forward = 1

# sysctl -p (すぐに有効にする)

デフォルト値 0 では IP 転送が無効になり、1 に変更すると IP 転送機能が有効になります。

ポート転送を設定する

ユーザーが115.29.112.119:8804にアクセスしたとき、それを42.99.16.84:8890に転送したいとします。

まず、サーバーのポート8804を開きます

設定ファイルを変更します: vim /etc/sysconfig/iptables

-A 入力 -p tcp -m 状態 --state 新規 -m tcp --dport 8804 -j 受け入れる

またはコマンドラインから実行して保存する

[root@localhost sysconfig]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8804 -j ACCEPT
[root@localhost sysconfig]# サービス iptables 保存
iptables: ファイアウォールルールを /etc/sysconfig/iptables に保存しています:[OK] 

ポート転送

方法1: コマンドライン実行

保存する必要があります。保存しないとすぐに有効になり、再起動後にファイアウォールルールがクリアされます。

iptables -t nat -A PREROUTING -d 115.29.112.119 -p tcp --dport 8804 -j DNAT --to-destination 42.99.16.84:8890

iptables -t nat -A POSTROUTING -d 42.99.16.84 -p tcp --dport 8890 -j SNAT --to-source 115.29.112.119

設定ファイルを変更せずに保存するコマンド: service iptables save

方法2: 設定ファイルに直接保存する

/etc/sysconfig/iptables設定ファイルを変更し、ルールを追加します。

-A 事前ルーティング -d 115.29.112.119 -p tcp --dport 8804 -j DNAT --to-destination 42.99.16.84:8890

-A POSTROUTING -d 42.99.16.84 -p tcp --dport 8890 -j SNAT --to-source 115.29.112.119

設定後、ファイアウォールを再起動します。

1.systemctl restart iptables (centos7); 2.service iptables restart (centos7 およびそれ以前のバージョン)

設定されたポリシーを表示する

iptables -t nat --list --行番号

ローカルポート転送

異なるマシン間でポートを転送するだけであれば、比較的簡単です。たとえば、http://ip:8888 にアクセスして、http://ip:6666 のコンテンツを返す場合、設定は次のようになります。

[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 8888 -j REDIRECT --to-ports 6666
[root@localhost ~]# サービスiptables保存
[root@localhost ~]# サービスiptablesを再起動します

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux ファイアウォールの状態確認方法の例
  • Linux ファイアウォールを設定してポート 80 と 3306 を開く方法
  • Linuxの簡単な分析でファイアウォールの状態と外部に開いているポートの状態を確認する
  • Linux システムでファイアウォール設定を変更する方法
  • Linux でファイアウォールがオフになっているかどうかを確認する方法

<<:  WeChatミニプログラム公式顔認証の詳しい説明

>>:  データベースクエリの最適化: サブクエリの最適化

推薦する

MySQL ルート パスワードをリセットするときに発生する「不明な列 'password'」問題を解決する方法

夜にMACの電源を入れたところ、突然ルートアカウントがMySQLに正常にログインできなくなったため、...

MySQL の時間保持問題に関する簡単な分析

MySQL のデフォルトの時間タイプ (datetime と timestamp) の精度は秒です。...

VmWareでcentos7をインストールするときにインターネットにアクセスできない問題の解決策

Centos7 のインストール時に VmWare がインターネットにアクセスできない場合はどうすれば...

Linux カーネル デバイス ドライバー キャラクタ デバイス ドライバー ノート

/******************** * キャラクターデバイスドライバー**********...

MYSQL接続ポートが占有され、ファイルパスエラーが発生する問題を解決します

今朝、私は Wampserver を使用してローカルの win7 マシン上に PHP 環境を構築し、...

js 配列から重複を削除する 11 の方法

実際の業務や面接では、「配列の重複排除」の問題によく遭遇します。以下は、js を使用して実装された配...

Linux環境でのDockerインストールチュートリアル

1. 設置環境Dockerは次のCentOSバージョンをサポートしていますCentOS 6.5 (6...

JavaScript の async と await のシンプルで詳細な学習

目次1. はじめに2. 詳しい説明2.1、非同期2.1.1. 関数はPromise以外のオブジェクト...

Filebeat を使用して Nginx ログを収集する方法

Nginx ログは、ユーザーの住所の場所や行動プロファイルなどを分析するために使用できます。Elas...

preタグを自動的に折り返すためのサンプルコード

pre 要素は、フォーマット済みのテキストを定義します。 pre 要素で囲まれたテキストでは、通常、...

DockerにRocketMQをインストールするための実装手順

目次1. 画像を取得する2. ブローカーサーバーを作成する3. ブローカーを作成する4. Rocke...

Vue2.0でデータの双方向バインディング機能をjsを使って実装する

Object.definePropertyの理解文法:オブジェクト.defineProperty(o...

無視されたDOCTYPE記述の分析

doctype もその 1 つです。 <!DOCTYPE HTML PUBLIC "...

この構成ファイルの排他ロックに失敗したという VMware 仮想マシンのプロンプトの解決方法

VMware が異常シャットダウンした後、再起動すると「この構成ファイルを排他的にロックできませんで...

MySQL でテーブルを削除する 3 つの方法 (要約)

ドロップテーブルドロップはテーブル情報を直接削除するため、最も高速ですが、データを取得することはでき...