Proxy
嘗試從我的 Linux 機器重定向所有傳出 (TCP) 流量時,REDSOCKS 出現“文件描述符不足”
我正在嘗試將所有傳出 TCP 流量從我的 linux 機器重定向到遠端 SOCKS5 代理伺服器。
目前我在 OUTPUT 鏈中使用以下規則:
sudo iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner myuser -j REDSOCKS
REDSOCKS 鏈包含:
sudo iptables -t nat -N REDSOCKS sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN sudo iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN sudo iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 12345
在本地埠上,
12345
我正在執行與遠端 SOCKS5 代理伺服器通信的 REDSOCKS 守護程序。這很好用!代表使用者 myuser 啟動的所有應用程序都通過遠端 SOCKS5 代理“socksified”。
但是,如果我想讓它適用於我的 Linux 機器上的所有使用者怎麼辦?
因此,我在 OUTPUT 鏈中嘗試了以下規則(而不是上面的規則):
sudo iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
這就是 REDSOCKS 守護程序立即“超出文件描述符”並且無法重定向任何數據包的時候。
為什麼會這樣?如何將所有使用者(及其應用程序)的 TCP 流量重定向到遠端 SOCKS5 代理伺服器?
PS我試過:
sudo iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner 0-10000 -j REDSOCKS
ulimit -n 4096
但仍然有同樣的問題。
我猜你需要排除 REDSOCKS 自己的流量——當你為所有使用者重定向時,你正在創建一個循環。