web-dev-qa-db-ja.com

Debianシステムを再起動するとiptablesルールが消えるのはなぜですか?

私はこのルールを追加します:

Sudo iptables -t nat -A OUTPUT -d a.b.c.d -p tcp \
       --dport 1723 -j DNAT --to-destination a.b.c.d:10000
  1. コンピュータを再起動すると、ルールが削除されます。どうして?
  2. ルールを維持するために何ができますか?
53
Jhonathan

ルールを永続化するオプションはiptablesにはありません。ただし、iptables-saveおよびiptables-restoreを使用してタスクを実行できます。

最初に、指定したコマンドを使用してiptableルールを追加します。

次に、次のコマンドを使用して、iptablesルールを/etc/iptables.confなどのファイルに保存します。

$  iptables-save > /etc/iptables.conf

/etc/rc.localに次のコマンドを追加して、再起動するたびにルールを再読み込みします。

$  iptables-restore < /etc/iptables.conf
53
pradeepchhetri

(これを独自の答えにすることが提案されたため...)

Debianでは、iptables-persistentをインストールします。

Sudo apt-get iptables-persistent

パッケージは、ブート時に/etc/iptables/rulesを自動的にロードします。

ルールを変更するときはいつでも、/sbin/iptables-save > /etc/iptables/rulesを実行してルールを保存してください。必要に応じて、それをシャットダウンシーケンスに追加することもできます。

59
bahamat

インストール後iptables-persistent上記では、Ubuntu 16.04以降で次の短いコマンドを使用してルールを保存することもできます:Sudo netfilter-persistent save

また、それらを最後に保存したときの状態に戻すこともできます:Sudo netfilter-persistent reload

1
Robin Wilson