Sign inSign up

alexzhuo/koolproxy

By alexzhuo

Updated over 9 years ago

Koolproxy透明代理去视频网站广告,支持HTTPS

Image
3

1.4K

alexzhuo/koolproxy repository overview

Docker server for Ad blocking on VPN

通过KoolProxy的透明代理去广告,支持HTTPS。

简介

如果想要实现透明代理去广告的功能,需要通过VPN进行接入,支持OpenVPN(公网),PPTP(内网)两种VPN进行接入。支持过滤规则的自动更新(Koolproxy自带的功能)

OpenVPN服务端配置文件位置:/etc/openvpn/server.conf OpenVPN客户端.ovpn文件位置:/root PPTP服务端配置文件:/etc/pptpd.conf PPTP用户名密码文件:/etc/ppp/chap-secrets KoolProxy CA证书位置: /usr/bin/koolproxy/data/certs 证书下载:连接VPN后浏览器访问110.110.110.110即可下载

使用方法

HTTPS的CA证书位置:/usr/bin/koolproxy/data/certs/ca.crt 开启HTTPS的话需要安装到系统中或者浏览器里

启动VPN服务端

OpenVPN协议:

OpenVPN需开放7000 UDP端口,适用于远程、公网、国内服务器、云等等。 客户端的.ovpn文件在容器的/root目录下,免费提供10个客户端文件。也可以通过浏览器访问容器80端口下载。注意需要修改.ovpn文件中的remote后IP为你的服务器IP

开启HTTPS模式: docker run -itd --privileged=true -p 0.0.0.0:7000:7000/udp alexzhuo/koolproxy /usr/bin/koolproxy/start_koolproxy_https.sh

仅过滤80端口模式: docker run -itd --privileged=true -p 0.0.0.0:7000:7000/udp alexzhuo/koolproxy /usr/bin/koolproxy/start_koolproxy.sh

PPTP协议:

启动方式和OpenVPN协议相似,但是需要映射tcp协议的1723端口

开启HTTPS模式: docker run -itd --privileged=true alexzhuo/koolproxy /usr/bin/koolproxy/start_koolproxy_https.sh

仅过滤80端口模式: docker run -itd --privileged=true alexzhuo/koolproxy /usr/bin/koolproxy/start_koolproxy.sh

注意,如果你客户端在连接PPTP服务器的时候出现了“错误619”(windows)并且在服务器宿主机上使用tcpdump发现如下提示protocol 47 unreachable 那么应该是没有开启GRE协议引起的,此时需要在宿主机上开启GRE协议和1723端口(网上有说开启47端口的都是胡说八道) 只需一条指令:modprobe ip_nat_pptp

如果还是protocol 47 unreachable,那么再试试下面这个 iptables -t nat -A PREROUTING -i eth0 -p 47 -j DNAT --to 容器IP

去广告+翻墙

需要同时部署alexzhuo/shadowsocks2vpn这个容器。 假设alexzhuo/shadowsocks2vpn容器的IP为192.168.0.2,本容器的IP为192.168.0.3,那么需要进行如下的策略路由

在koolproxy容器上执行:

route add default gw 192.168.0.1 #默认就有,一般不要随便修改,否则无法NAT

iptables -t mangle -A OUTPUT -s 192.168.0.3 -p tcp ! --sport 1723 -j MARK --set-mark 66 #把所有tcp流量打上标记,方便路由,因为openvpn使用udp协议,openvpn服务端的流量发给客户端是正常的,-s 192.168.0.3是因为openVPN的客户端流量10.8.0.2会在NAT之前被路由掉无法回来,所以只标记NAT之后的流量;! --sport 1723是防止PPTP协议被NAT了。

ip rule add fwmark 66 table 66#让被标记66的流量走系统默认路由表之外指定的路由表

ip route add default via 192.168.0.2 dev eth0 table 66 #建立自己自定义的路由表,ID为66,该路由表的默认网关为192.168.0.2(另一台docker容器),default可以换成0.0.0.0/0,或者其他目的地址

iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination 192.168.0.2:53 转发DNS请求到SS容器,把DNS解析的工作交给dnsmasq

在SS虚拟机上执行 iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -s 192.168.0.1/24 -p tcp -j REDIRECT --to-ports 12345

Tag summary

Content type

Image

Digest

Size

116.2 MB

Last updated

over 9 years ago

docker pull alexzhuo/koolproxy