使用nftables为指定Linux用户强制使用代理
来自md5.pw
更多语言
更多操作
1. 准备
确保 nftables 已经安装, 且本地有透明代理端口 (比如Xray的dokodemo-door), 这里就不注重如何开设透明代理
nft --version若没有安装, 以Debian13为例
apt update
apt install nftables
systemctl enable nftables拷贝原有的nftables配置, 到一个好找的目录里, 以 /main/nftables 为例, 再对原路径进行链接
cp /etc/nftables.conf /main/nftables/
ln -f /main/nftables/nftables.conf /etc/nftables.conf并准备好编辑 /main/nftables/nftables.conf
2. 配置nftables
查看用户id
cat /etc/passwd这里假设我在10809端口开设了透明代理, 我需要1000与1001的用户id所建立的tcp连接使用代理
请在合适位置添加或与其它的table进行合并
table inet proxy {
chain output {
type nat hook output priority 10;
policy accept;
meta skuid { 1000, 1001 } ip protocol tcp dnat to 127.0.0.1:10809;
}
}4. 完成配置
保存后并重启
systemctl restart nftables.service