V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  infinet  ›  全部回复第 6 页 / 共 6 页
回复总数  102
1  2  3  4  5  6  
首先用iptables把squid对外的流量打上标记:
iptables -t mangle -A OUTPUT ! -d $YOUR_LAN -o lo -m owner --uid-owner $SQUID_UID -j MARK --set-mark 1

然后在/etc/iproute2/rt_tables 里加一行:
201 vpn.out

再用ip命令指定打上标记的流量加入vpn.out的路由表:
ip rule add fwmark 0x1 table vpn.out

最后指定vpn.out路由表的流量通过vpn:
ip route add default via $VPN_GATEWAY_IP dev $VPN_IF table vpn.out

楼主可能还需要在squid配置文件里指定dns_nameservers,不然的话dns还是通过本地查询。

对不支持http代理的客户端,如果碰巧支持SOCKS5代理的话,可以试用这个[内置DNS解析器的SOCKS5代理](https://github.com/infinet/blacksocks)。

另外,为什么不用dnsmasq的ipset和server功能?简直就是完全透明地分流。如果担心需要指定的域名太多影响速度,恭喜楼主,为维护世界和平,兄弟小改了一下[dnsmasq](https://github.com/infinet/dnsmasq),现在不论加载几千几万条ipset和server项都同样快如闪电。
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5655 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 07:16 · PVG 15:16 · LAX 00:16 · JFK 03:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.