一种新方式。
和之前的思路大致相同 linux本机透明代理 , 但是由于一些原因,相关的工具都做了替换。
过程
不像之前,现在只拥有一个连向外界的tunnel,这个tunnel里只跑socks5,于是乎,
需要将DNS解析和代理这两步都要通过socks5 tunnel。
仍旧用iptables的REDIRECT做转发,DNS解析可用dns over tcp的方式穿过socks5 tunnel,
REDIRECT的tcp转发到socks5,写了一个工具ttl-proxy
,可以实现,dns解析用smartdns。
步骤
- 配置
smartdns
配置1(smartdns.conf):
dualstack-ip-selection yes
# upstream dns server
server 192.168.1.1
server 114.114.114.114
server 2400:da00::6666
server 119.29.29.29
server 1.2.4.8
server-tcp 127.0.0.1:10800 -group gfw -exclude-default-group
server-tcp 1.1.1.1 -group gfw
# block ad
address /pos.baidu.com/#
conf-file gfw.conf
配置2(gfw.conf):
domain-rules /amazonaws.com/ -nameserver gfw -ipset gfw
并启动
- 将
smartdns设置为默认DNS
如果用Arch Linux并且用netctl,在profile文件中添加DNS=127.0.0.1,
并重启netctl
- 添加防火墙规则
ipset create gfw hash:ip;
iptables -t nat -A OUTPUT -p tcp -m set --match-set gfw dst -j REDIRECT --to-port 10800;
- 运行
ttl-proxy
说明
tcp tunnel就不列举了,非常多,可根据实际情况选择,如果缺好用的socks5 server,这个
socks5-server, 高并发,极低内存占用,拿去用。