iptables - ルール番号の代わりにルール/名前に基づいてNATルールを削除します。

iptables - ルール番号の代わりにルール/名前に基づいてNATルールを削除します。

Ubuntu 16サーバーでは、NATルール(-t nat)に関連するいくつかのIptablesルールの変更をスクリプトとして作成する必要があります。 -D [ここではルール]を使用してルールを削除する一般的な方法は、-t識別子では機能しないようです。見つけて持って来なさい。関連する行番号...どのようなアイデアがありますか?

役に立つ場合は、次の規則の目的は、(デフォルトでは)ローカルMySQLデータベースの競合または再起動中にローカルホストと外部トラフィックを1つのサーバーからバックアップにリダイレクトすることです。

私のルール:

iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination RMT_IP:3306
iptables -t nat -I OUTPUT -p tcp -o lo --dport 3306 -j DNAT --to-destination RMT_IP:3306

私はあきらめようとしました(効果がありました):

iptables -t nat -D POSTROUTING -j MASQUERADE
iptables -t nat -D PREROUTING -p tcp --dport 3306 -j DNAT --to-destination RMT_IP:3306

--line-numberを使用せずにこのルールを削除する方法はわかりません。

iptables -t nat -I OUTPUT -p tcp -o lo --dport 3306 -j DNAT --to-destination RMT_IP:3306

ベストアンサー1

-I(挿入)または(追加)を含むルールがある場合は、-Aルール定義を繰り返し-D削除できます。

特定の例では、テーブルチェーンから最初の一致OUTPUTルールnatが削除されます。

iptables -t nat -D OUTPUT -p tcp -o lo --dport 3306 -j DNAT --to-destination RMT_IP:3306

おすすめ記事