家用透明代理
家里用的透明代理, 时间长了之后, 我自己也有些不记得. 这里记录一下.
域名解析
一些域名在国内解析有问题, 但是如果所有的 DNS 解析都代理, 得到的 IP 可能是
国外的, 有一些其它的解决方案. 我这里只把一些指定的域名走了代理.
用的是 dnsmasq 在 etc 下面增加一个文件用于纪录这些域名
server=/slack-msgs.com/127.0.0.1#5353
这一行配置表示, 把域名为 slack-msgs.com 的所有的域名在解析的时候都走 127.0.01 的 5353 端口.
我在 ss-tunnel 在 5353 进行了监听.
这样解决了域名解析的问题.
IP 透明代理
使用 ss-redir 配合 iptables 来实现这个功能.
简单说明一下, iptables 把指定的包转发到 ss-redir 上. 而 ss-redir 可以从系统知道原来这个包是发给谁的.
ss-redir 把数据使用 socks5 得到发送出动. 把收到的数据再返回给内网的请求者.
iptable 先创建一个nat chain 先通过 match-set 来分析目的 ip 的归属, 如果是国内的还有内网的直接 return.
其它的就导给 ss-redir.
其后把 chain 回到 nat 上去.
这里记得对于 socks 服务器地址要路过了别也走了代理就是麻烦了.