私の端末には次のように書きました。
sudo nft add table inet f2b-table
systemctl reload nftables.service
それから:
sudo nft list ruleset
最終結果(確認):
table inet f2b-table { }
しかし、nftables.confを開くと、なぜinet f2bテーブルが表示されないのですか?
nftables.conf以外の端末にテーブルが表示されるのはなぜですか(これら2つのファイルは異なりますか?)
nftables.confをどのように更新するのですか?
答え1
カーネルでテーブル(ファイルではない)を更新しました。ファイルを更新するとファイルに保存されます。その後、nftにファイルを再読み込みするように指示すると、そのファイルはカーネルにコピーされます。
すべてのUnix設定ファイルは単なるファイルです。ある時点で、それらは設定されているカーネルまたはプログラムに読み込まれ、ロードされます。nftables.conf
システムの起動時にロードされ、再起動時にロードされるか、nft
設定を再ロードするように指示します。
ファイルにコピーできるカーネルダンプデータを持つ方法があるかもしれません。ただし、これには、以前にすでに存在していたデータを変更することも含まれます。
答え2
nftables wikiを見てみると、ファイルからテーブルをロードする作業を扱うページは次のとおりです。 https://wiki.nftables.org/wiki-nftables/index.php/Scripting
このページでは、nft -f filename
コマンドがファイルからテーブル構成をロードする方法について説明しますが、構成をファイルに保存するのに一致するコマンドはありません。
「nft list」コマンドの出力がこのファイルで許可されている構文の1つであることを簡単に説明します。これは、nft list ruleset > filename
"nft -f"で読み取ることができるファイルが生成されることを意味します。
コマンドはなぜsystemctl reload nftables.service
これをしないのですか?明らかに、パッケージマネージャによって作成されたsystemctl設定はファイル操作に保存を実行しません。たぶんファイルの読み取りのみを実行できます。 NFTパケットフィルタリング機能を備えたコンピュータがなく、どのLinux / Unixを使用しているかについて言及していないため、詳細はありません。