ファイアウォールの 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でmongodbデータベースを使用するための実装コード

mongoイメージを取得する sudo docker pull mongo mongodbサービスを...

Node.js を使用して C# のデータ テーブル エンティティ クラス生成ツールを作成する方法

Microsoft は T4 テンプレートを提供していますが、使用するのが非常に難しいと思います。ス...

CentOS サーバーの時間を北京時間に変更する方法

1. VPSとCentOSシステムを購入しましたが、サーバーの時間が北京時間と一致せず、時差があるこ...

高度な CSS の 3 つの方法を使用して複数行の省略を実装するサンプル コード

序文これは古くからの要望ですが、オンラインで解決策を探している人はまだ多く、特に検索結果の上位にラン...

インストールされていないバージョンの MySQL を使用する手順とパスワードを忘れた場合の解決策

最初のステップは、圧縮されたパッケージを対応するディスクに解凍することです。 2 番目の手順は、cm...

ページの下部にHTMLフッターを配置する簡単な方法

要件:ページ コンテンツが短く、ブラウザーの高さをサポートできない場合でも、フッターをウィンドウの下...

Baidu の https 認証プロンプト「http サイトを 301 から https サイトにリダイレクトしてください」の解決方法の詳細な説明

最近、ウェブサイトを https アクセスに変換したいのですが、すべて完了した後、Baidu Web...

MySQL 8.0.13 のダウンロードとインストールのチュートリアル(画像とテキスト付き)

MySQL は最もよく使用されるデータベースです。詳しく知るには、コンピュータにインストールする必...

dockerネットワーク双方向接続の詳細な説明

Dockerネットワークを見るdocker ネットワーク ls [root@master ~]# d...

JSON.stringify のさまざまな用途のまとめ

序文json を使用したことがある人なら、オブジェクトを文字列化してからバックエンドに送信するのが一...

vue2 vue3 での Echarts の詳細な使用方法

目次1. インストール2. vue2でEchartsを使用するmain.jsファイル内コンテナが与え...

MySQL Truncate の使用方法の詳細な説明

目次MySQL 切り捨ての使用1. 構文を切り捨てる2. Truncateの使用上の注意3. TRU...

CSS3 でシンプルな白い雲が浮かぶ背景効果を実現

これは非常にシンプルな純粋な CSS3 の白い雲の浮遊する背景効果です。浮かぶ白い雲の特殊効果は、C...

JavaScript は div マウス ドラッグ効果を実装します

この記事では、divマウスドラッグ効果を実現するためのJavaScriptの具体的なコードを参考まで...

固定、流動的、柔軟なウェブページレイアウトの長所と短所の分析

ウェブデザイナーを長い間悩ませてきた疑問があります。それは、固定レイアウト、流動的レイアウト、柔軟レ...