操作步骤

  • 创建了两台虚拟机:alpine-host(192.168.1.217),alpine-client(192.168.1.88)。

  • 设置 client 的 gateway 为 host:

    1
    2
    3
    4
    5
    6
    7
    
    # cat /etc/network/interfaces
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    	gateway 192.168.1.217
    
  • 通过 ssredir_tproxy.sh 成功从 client 请求 Google。

    • 原理:在 host 机器上将流量通过 iptables 转换到 ipt2socks 进程内处理
    • 进程将其转换成 socks5 client 协议,然后请求代理 socks server 服务完成翻墙。

iptables 规则里面有两条没看懂,TPROXY 没定义,不知道跳哪里去了。

hand over the marked package to TPROXY for processing

1
2
iptables -t mangle -A PREROUTING -p tcp -m mark --mark 0x2333 -j TPROXY --on-ip 127.0.0.1 --on-port 60080
iptables -t mangle -A PREROUTING -p udp -m mark --mark 0x2333 -j TPROXY --on-ip 127.0.0.1 --on-port 60080

查到了,竟然是 Linux 官方标准模块…… Transparent proxy support

相关工具

  • ipt2socks 将作为 gateway 的流量转换成 socks5 client 后请求 socks server 将流量发送到境外;
桃子的碎碎念 桃子 编辑