Redirect TCP transmissions over Socks5 proxy

重定向 TCP 传输通过 Socks5 代理,此方案用于 Linux 平台。

下载、编译 HevSocks5TProxy

git clone git://github.com/heiher/hev-lib
cd hev-lib
make static
cd ..
 
git clone git://github.com/heiher/hev-socks5-tproxy
cd hev-socks5-tproxy
make

运行 HevSocks5TProxy

bin/hev-socks5-tproxy 127.0.0.1 10800 127.0.0.1 1080
# 127.0.0.1 : 本地监听地址
# 10800 : 本地监听端口
# 127.0.0.1 : Socks5 服务器地址
# 1080 : Socks5 服务器端口

本地全局启用
用于本地主机,重定向所有的 TCP 传输经过 Socks5 代理

sudo iptables -t nat -A OUTPUT -d xxx.xxx.xxx.xxx/32 -j RETURN # Bypass,远程 Socks5 服务器地址不通过代理
sudo iptables -t nat -A OUTPUT -m tcp -p tcp -j REDIRECT --to-port 10800

网关全局启用
用于网关服务器,重定向所有的 TCP 传输经过 Socks5 代理

sudo iptables -t nat -A OUTPUT -d xxx.xxx.xxx.xxx/32 -j RETURN # Bypass,远程 Socks5 服务器地址不通过代理
sudo iptables -t nat -A PREROUTING -m tcp -p tcp -j REDIRECT --to-port 10800

DNS 转发
对于 DNS 污染情况,参考 Forwarding DNS queries on TCP transport

Over!

Forwarding DNS queries on TCP transport

转发 UDP 协议的 DNS 查询至 TCP 协议传输,目前可以有效的抵御某些组织的 DNS 污染,此方案用于 Linux 平台。

下载、编译 DNS Forwarder

git clone git://github.com/heiher/hev-lib
cd hev-lib
make static
cd ..
 
git clone git://github.com/heiher/hev-dns-forwarder
cd hev-dns-forwarder
make

运行 DNS Forwarder

bin/hev-dns-forwarder 127.0.0.1 5300 8.8.8.8
# 127.0.0.1 : 本地监听地址
# 5300 : 本地监听端口
# 8.8.8.8 :  上游 DNS 服务器

本地全局启用
用于本地主机,透明转发所有的本机 DNS 查询

sudo iptables -t nat -A OUTPUT -m udp -p udp --dport 53 -j REDIRECT --to-port 5300

或直接设置本地的 DNS 服务器为 127.0.0.1,并将 Forwarder 的本地监听端口修改为 53。

网关全局启用
用于网关服务器,透明转发所有网关服务的主机的 DNS 查询

sudo iptables -t nat -A PREROUTING -m udp -p udp --dport 53 -j REDIRECT --to-port 5300

Over!