在 network/interfaces 文件中进行准备

在 network/interfaces 文件中进行准备

我一直在摆弄我的 Raspberry Pi,试图将 Squid 设置为代理服务器。在此过程中,我在接口文件中遇到了一个我不知道的命令构造:准备

确切的结构是

iface lo inet loopback
pre-up iptables-restore < /etc/iptables.bridge.rules

并且 /etc/iptables.bridge.rules 文件是

*nat
-A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 3128
COMMIT

好的,这可行,但我还有一个 ebtables 命令,我想让它自动运行。我知道我可以将其添加到 rc.local 或其他启动文件/文件夹,但我想知道在接口文件中是否有类似的命令构造?

ebtables -t broute -A BROUTING -p IPv4 --ip-protocol 6
        --ip-destination-port 80 -j redirect --redirect-target ACCEPT

谢谢....RDK

答案1

准备命令

在启动接口之前运行命令。如果此命令失败,则 ifup 中止,不将接口标记为已配置,打印错误消息,并以状态 0 退出。此行为将来可能会更改。

参考这个https://manpages.org/etc-network-interfaces/5

答案2

鉴于手头任务的简单性,您可以非常简单地将以下行放入/etc/network/interfaces

pre-up ebtables -t broute -A BROUTING -p IPv4 --ip-protocol 6 --ip-destination-port 80 -j redirect --redirect-target ACCEPT

或者您可以创建一个可执行文件,/home/my_name/ebtables.rules内容如下

#!/bin/bash
ebtables -t broute -A BROUTING -p IPv4 --ip-protocol 6 --ip-destination-port 80 -j redirect --redirect-target ACCEPT

使其可执行,然后将以下行放入/etc/network/interfaces

pre-up /home/my_name/ebtables.rules

据我所知,Linux 中没有类似ebtables-save和 的命令ebtables-restore。或者更确切地说,曾经有,但它们已经停用,因为它们有问题,而且没有人支持它们。这家伙提供了他自己的版本;恕我直言,这比你需要做的工作还要多。

相关内容