net.ipv4.ip_forward=0 は、再起動後も持続しません。

net.ipv4.ip_forward=0 は、再起動後も持続しません。

Debian BookwormがインストールされたRaspberry Piがあります。パケット転送を防止しようとしています。これは設定できることを知っていますが、再sudo sysctl -w net.ipv4.ip_forward=0起動後も持続しません。

また、再起動後にパケット転送が有効になることをnet.ipv4.ip_forward = 0ファイルの一番下に追加してみました。/etc/sysctl.confまた、ディレクトリにこの行を含むファイル(99-forward.conf)を追加し、再/etc/sysctl.d/起動後もパケット転送が有効になります。

追加情報:

  • そのインターフェイスに接続されている他の電話でIP転送が機能していることを確認していますsysctl -n net.ipv4.ip_forward(アクセスポイントであり、IP転送が無効になっているとインターネットにアクセスできないことがわかります)。
  • 私が実行すると、sudo sysctl -w net.ipv4.ip_forward=0現在の起動で動作します
  • Linuxカーネル:Linux 6.1.0-rpi7-rpi-v8 aarch64
  • NetworkManagerをインストールしました(助けになりますか?)
  • ls -al /etc/sysctl.d出力
total 20
drwxr-xr-x  2 root root 4096 Feb 29 17:04 .
drwxr-xr-x 91 root root 4096 Feb 29 17:11 ..
-rw-r--r--  1 root root   92 May 10  2023 98-rpi.conf
-rw-r--r--  1 root root   55 Feb 29 17:01 99-forward.conf
lrwxrwxrwx  1 root root   14 Nov 10 00:25 99-sysctl.conf -> ../sysctl.conf
-rw-r--r--  1 root root  798 Dec 19  2022 README.sysctl

ベストアンサー1

これはStéphane Chazelasの助けを借りて発見されました。ご協力ありがとうございます。

この問題は NetworkManager に関連しています。 ipv4メソッドが共有に設定されているアクセスポイントがあります。これにより、net.ipv4.ip_forward が 1 に設定されます。

それでも共有するアクセスポイントを設定したかったので、解決策を見つけました。ファイルに以下を追加して/etc/NetworkManager/dispatcher.d/99-disable-ip-forward実行可能にしました(sudo chmod +x /etc/NetworkManager/dispatcher.d/99-disable-ip-forward)。

#!/bin/sh

INTERFACE=$1
ACTION=$2

if [ "$INTERFACE" = "ap0" ] && [ "$ACTION" = "up" ]; then
    sudo sysctl -w net.ipv4.ip_forward=0
    sudo sysctl -w net.ipv6.conf.all.forwarding=0
fi

ネットワークイベントが発生すると、NetworkManagerはスクリプトを実行して/etc/NetworkManager/dispatcher.d/自動的にnet.ipv4.ip_forwardを0に設定します。

おすすめ記事