1. 编辑 arptables 表
sudo arptables -A INPUT -s 192.168.1.1 --source-mac xx:xx:xx:xx:xx:xx -j ACCEPT
sudo arptables -A INPUT -j DROP
sudo arptables -A OUTPUT -d 192.168.1.1 --destination-mac xx:xx:xx:xx:xx:xx -j ACCEPT
sudo arptables -A OUTPUT -j DROP
2. sudo sh -c "arptables-save > /etc/arptables.rules"
3. sudo nano /etc/network/if-pre-up.d/arptablesload
#!/bin/sh
arptables-restore < /etc/arptables.rules
exit 0
4.sudo chmod +x /etc/network/if-pre-up.d/arptablesload
5.重启 arptables表恢复初始。
以上步骤2.3.4 参考 《Iptables How To》
https://help.ubuntu.com/community/Iptab ... ost-down.d
在18.04中可以开机自动恢复arptables 表。换了19.10就不行了。新手请求帮助
19.10,重启后arptables表恢复初始
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 2
- 注册时间: 2019-11-03 16:59
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 19.10,重启后arptables表恢复初始
把arptablesload放到/etc/network/if-up.d/下面试试
-
- 帖子: 2
- 注册时间: 2019-11-03 16:59
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 19.10,重启后arptables表恢复初始
这个问题的关键在于搞清楚这些目录下的脚本是谁来负责运行的
在ubuntu 19.10桌面版环境下,负责处理网络的是network manager,/etc/network/if-*.d/下面的脚本也是由它来负责运行的。
更精确地说是由 /lib/systemd/system/NetworkManager-dispatcher.service 这个systemd 服务来在启动时去执行/usr/lib/NetworkManager/nm-dispatcher,再由后者去执行 /etc/NetworkManager/dispatcher.d下面的脚本。而/etc/NetworkManager/dispatcher.d下面又会装上一个01-ifupdown脚本。默认正是由这个脚本去处理/etc/network/if-*.d/下面的东西。
这个脚本的内容不长,你打开它看一下就知道了,它对if-pre-up.d和if-down.d下面脚本的处理方法是不做处理。
话说回来,18.04里的network manager的行为也是一样的。至于为什么18.04里放到if-pre-up.d下面的脚本就能被执行,是因为18.04桌面版还默认安装了ifupdown,它有一套类似的机制去执行if-pre-up.d下面的脚本。到了19.10,ifupdown没有被默认安装,if-pre-up.d下面的东西就没人管了