参考了https://unix.stackexchange.com/questions/68956/block-network-access-of-a-process ,其中netns是docker在用的方法,配置比较复杂,比较简单的方法是创建专门的group,在iptable增加针对group的限制。
# 新增一个组
groupadd no-lan
# 验证下组
sg no-lan id
# 阻止no-lan这个组对10.0.0.0/8的访问
iptables -I OUTPUT 1 -m owner --gid-owner no-lan -d 10.0.0.0/8 -j DROP
sg no-lan 'ping 10.0.0.1'
sg no-lan 'ping 114.114.114.114'
sg no-lan 'python your-script.py'