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

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

推薦する

純粋な CSS を使用してドロップダウン メニューを作成するサンプル コード

導入:最近の面接の質問を見ると、ドロップダウン メニューを実装するために CSS を使用することが多...

Centos7 での MySQL 5.7.20 のインストールと設定に関する詳細なチュートリアル

1. 公式 Web サイトから MySQL 5.7 インストール パッケージ (mysql-5.7....

MySQLクエリのパフォーマンスに影響を与える大きなオフセットの理由と最適化の詳細な説明

序文MySQL クエリは select コマンドを使用し、limit および offset パラメー...

Linux でリモートから MySQL を自動的にバックアップする方法

序文:基本的に、自社で使用する場合でも、顧客向けにサーバーを展開する場合でも、MySQL のバックア...

MySQL の主キーがクエリを高速化するために数値を使用するか UUID を使用するかについての簡単な分析

実際の開発では、MySQL の主キーは重複できず、主キーが自動的にインクリメントされることがあります...

Dockerコンテナ相互接続の予備的な実践についての簡単な説明

1. Dockerコンテナ間の相互接続Docker は現在、軽量の仮想化ソリューションとなっています...

ユーザーのニーズがマーケティング指向のデザインにつながる

<br />それぞれのトピックについて、チーム内でメールで議論します。議論が白熱するにつ...

ES6 Promiseの使い方の詳細な説明

目次約束とは何ですか?拒否の使用法キャッチの使い方すべての使用法レースの使用約束とは何ですか? Pr...

Linux のソフトリンクとハードリンクの詳細な説明

目次1. ファイルとディレクトリの基本的な保存2. Inコマンドの紹介(1)lnコマンドの基本情報を...

HTML に埋め込まれた Flash HTML ウェブページ コードに Flash ファイルを埋め込むソリューション (パート 1)

中国の習慣では、旧暦の1月15日より前に新年を祝います。ここで、庭にいる友人たちに新年の幸せを祈りた...

MySQLの再帰問題

MySQL自体は再帰構文をサポートしていませんが、自己接続を通じていくつかの単純な再帰を実現できます...

js は、州、市、地区の 3 段階の選択カスケードを実装します。

この記事では、省、市、地区の3段階選択を実現するためのjsの具体的なコードを紹介します。具体的な内容...

MySQLは外部SQLスクリプトファイルのコマンドを実行します

目次1. SQLコマンドを含むSQLスクリプトファイルを作成する2. SQLスクリプトファイルを実行...

HTMLの基本タグと構造の詳細な説明

1. HTMLの概要1.HTML: ハイパーテキスト マークアップ言語。これはプログラミング言語では...

Divの境界と透明度に関する設定

フレーム:スタイル=”border-style:solid;border-width:5px;bor...