使用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