方永、南天紫雲

道亦有道

linux透明代理
2020年04月01日

一种新方式。

和之前的思路大致相同 linux本机透明代理 , 但是由于一些原因,相关的工具都做了替换。

过程

不像之前,现在只拥有一个连向外界的tunnel,这个tunnel里只跑socks5,于是乎, 需要将DNS解析和代理这两步都要通过socks5 tunnel

仍旧用iptablesREDIRECT做转发,DNS解析可用dns over tcp的方式穿过socks5 tunnelREDIRECT的tcp转发到socks5,写了一个工具ttl-proxy ,可以实现,dns解析用smartdns

步骤

  1. 配置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

并启动

  1. smartdns设置为默认DNS

如果用Arch Linux并且用netctl,在profile文件中添加DNS=127.0.0.1, 并重启netctl

  1. 添加防火墙规则
ipset create gfw hash:ip;
iptables -t nat -A OUTPUT -p tcp -m set --match-set gfw dst -j REDIRECT --to-port 10800;
  1. 运行ttl-proxy

说明

tcp tunnel就不列举了,非常多,可根据实际情况选择,如果缺好用的socks5 server,这个 socks5-server, 高并发,极低内存占用,拿去用。