一种新方式。
和之前的思路大致相同 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, 高并发,极低内存占用,拿去用。