ファイアウォールの 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ミニプログラム公式顔認証の詳しい説明

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

推薦する

Docker ベースの MySQL マスタースレーブレプリケーション環境を構築するための実装手順

1. はじめに以前のプログラム アーキテクチャは次の形式になります。プログラムのサイズが大きくなると...

VMwareでCentOSがインターネットにアクセスできない問題を素早く解決

昨日、VMware に CentOS7 をインストールしました。Tomcat パッケージを転送するた...

Tomcatc3p0 で jnid データ ソースを構成する 2 つの実装方法の分析

c3p0の使用c3p0jarパッケージをインポートする <!-- https://mvnrep...

Vue のローカルコンポーネントの紹介

Vueでは、ローカルコンポーネントを自分で定義(登録)することができます。コンポーネント名を定義する...

Vueリスナーの使用例の詳細な説明

1つ目はjQueryのajaxを使用してリクエストを送信することです ユーザーが登録するときに、リス...

IE6 で CSS スタイルの div または li の背景のタイリングと境界の破損を解決する方法

IE6 で CSS スタイルの div または li の背景のタイリングや境界の破壊を解決するには、...

MySQLクエリのパフォーマンスを分析する方法

目次スロークエリの基礎: データ取得の最適化データベースから不要なデータが要求されていないか確認する...

MySQLファイルストレージの詳細な説明

ファイルシステムとは何かInnoDB や MyIASM などのストレージ エンジンはテーブルをディス...

モバイルデバイス Web 開発における HTML ヘッドの書き方

コードをコピーコードは次のとおりです。 <ヘッド> <meta http-equi...

MySQLの共有ロックと排他ロックの使用例の分析

この記事では、例を使用して MySQL の共有ロックと排他ロックの使用方法を説明します。ご参考までに...

ラベルタグを使用してテキストをクリックしてラジオボタンを選択します

<label> タグは、入力要素のラベル (タグ) を定義します。ラベル要素はユーザーに...

フロントエンドが習得すべき、複数列の等高レイアウトを実現するための CSS テクニック

1. はじめにページを作成しているときに、複数列のレイアウトに遭遇することがあります。各列の内容が異...

Gitlab-ci を使用してリモート マシンに継続的にデプロイする方法 (詳細なチュートリアル)

簡単に言うと、今日は Gitlab-CI を使用してリモート サーバーに自動的にデプロイする方法につ...

Linux でのマルチスレッドおよびマルチプロセス クラッシュのシミュレーションに関する簡単な説明

結論:マルチスレッド環境では、スレッドの 1 つがクラッシュすると、他のスレッド (プロセス全体) ...

計算プロパティとリスナーの詳細

目次1. 計算されたプロパティ1.1 基本的な例1.2 計算プロパティキャッシュとメソッド1.3 計...