总结最近配置透明代理的问题

1. 什么是透明代理?

百科上这样说的

透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改变你的request fields(报文),并会传送真实IP,多用于路由器的NAT转发中。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。

2. 我想用透明代理实现什么需求?

让家里的设备自动走统一的代理配置,只要在一台机器上配置代理客户端。使用透明代理实现的话,局域网的其他想走自动代理的机器只需要把网关和DNS设置为代理机的ip即可,这一步可以在路由器的DHCP里自动设置。但是我实测失败了,原因可能是我选的方案奇葩,我选的方案是在docker 里面部署代理机,代理客户端选的 v2ray。

用的方案就是这个 https://github.com/lisaac/tproxy-gateway

遇到个 v2ray 的报错没有解决。

其实还有其他方案可以尝试,比如用虚拟机的这套方案
https://github.com/icymind/VRouter

我不想再搞一套虚拟机,因为我的需求只是为了让局域网的机器可以方便的配置自动代理,然后我就换了一种方案。

3. 自动代理 PAC?

局域网的机器如果直接设置代理为 v2ray 客户端的端口 8080,就会全部走代理了。为了不需要在每台机器上都配置 PAC,就需要再加一层代理了,可以用 Privoxy 搭建。

网络结构是这样的:

windows/linux/mac/android/ios 
    -> privoxy(192.168.2.2:8081)
    -> v2ray client(192.168.2.2:8080)
    -> v2ray server(xx.xx.com:443)

这样一来,局域网的机器只需要把代理配置为 192.168.2.2:8081 即可。

v2ray server 安装在自己买的 VPS 上,安装方法网上教材很多很多。

v2ray clientprivoxy 我是安装在 docker 里面。privoxy 的配置用的这个工具 zfl9/gfwlist2privoxy 把 gfwlist 转成 gfwlist.action 配置文件的。写了个脚本转完后重启 privoxy 容器,然后配置 crontab 自动每天做一次。

可以参考我的 docker-compose.yml 配置:

version: '2'

services:

    v2ray:
        image: v2ray/official
        restart: always
        container_name: v2ray
        ports:
            - "1080:1080"
            - "8080:8080"
        volumes:
            - ./data/v2ray:/etc/v2ray
        entrypoint:
            - v2ray
            - -config=/etc/v2ray/config.json

    privoxy:
        image: vimagick/privoxy
        restart: always
        container_name: privoxy
        ports:
            - "8081:8118"
        volumes:
            - ./data/privoxy/user.action:/etc/privoxy/user.action
        cap_add:
            - NET_ADMIN

PS: 如果想要配置带认证的代理,Privoxy 好像还不支持,可以考虑用 Squid 替代 Privoxy.

点击进入评论 ...