from: cgroup-iptables-disable-app_copyq-net.md
#[功能] 挂载、创建 cgroup(名为disable_net) ,设置其class_id, 令iptables丢弃该class_id的网络包
function mountCreateCgroup__disable_net__my_classid__iptables_drop(){
set -e -u
[[ $# -lt 1 ]] && return 41
local my_classid="$1"
##local my_classid=123 #命令展开形式(例)
local net_cls_d="/sys/fs/cgroup/net_cls"
#挂载cgroup的net_cls
sudo mkdir -p $net_cls_d
##sudo mkdir -p /sys/fs/cgroup/net_cls #命令展开形式
sudo mount | grep $net_cls_d || sudo mount -t cgroup -onet_cls net_cls $net_cls_d
##............................|| sudo mount -t cgroup -onet_cls net_cls /sys/fs/cgroup/net_cls #命令展开形式
#查看已挂载的cgroup
sudo mount | grep cgroup
#cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
#net_cls on /sys/fs/cgroup/net_cls type cgroup (rw,relatime,net_cls)
#新建cgroup (名为disable_net)
sudo cgcreate -g net_cls:/disable_net
#默认classid为0
cat $net_cls_d/disable_net/net_cls.classid # == 0
#修改classid为123(例)
echo $my_classid | sudo tee $net_cls_d/disable_net/net_cls.classid # == 123(例)
##echo 123 | sudo tee /sys/fs/cgroup/net_cls/disable_net/net_cls.classid # == 123(例) #命令展开形式(例)
cat $net_cls_d/disable_net/net_cls.classid # == 123(例)
#令iptables丢弃 classid==123(例) 的 网络包裹, 从而达到禁止网络访问的效果
sudo iptables -A OUTPUT -m cgroup --cgroup $my_classid -j DROP
##sudo iptables -A OUTPUT -m cgroup --cgroup 123 -j DROP #命令展开形式(例)
} #end_func
使用举例
#挂载、创建 cgroup(名为disable_net) ,设置其class_id, 令iptables丢弃该class_id的网络包
my_classid=123
mountCreateCgroup__disable_net__my_classid__iptables_drop $my_classid
#获得域名163.com对应的ip
site_domain="163.com"
site_ip=$(dig +short "$site_domain") # == 59.111.160.244
web_url="http://${site_ip}" # == http://59.111.160.244
#普通curl正常访问网络
curl "${web_url}"
#实测 经过 该net_cls 的 curl命令确实不能访问网络
sudo cgexec -g net_cls:disable_net curl --verbose "${web_url}"
#* Trying 59.111.160.244:80... #停在这里
#运行copyq但不允许其访问网络
sudo cgexec -g net_cls:disable_net /usr/bin/copyq
##sudo DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY cgexec -g net_cls:disable_net /usr/bin/copyq #备用命令
参考:
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » copyq禁止访问网络(ubuntu cgroup)
发表评论 取消回复