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に設定します。