First step: Prepare the firmware
Compiling openwrt firmware-select Privoxy
Configure User.filter, user.action, config files.
Config file to specify the listener address and port number
[cpp] View Plain copy root@yswifi:/etc/privoxy# cat config confdir / etc/privoxy logdir /var/log filterfile default.filter Filterfile user.filter #logfile privoxy actionsfile match-all.action # actions that are applied to all sites and maybe overruled later on. Actionsfile default.action # main actions file actionsfile user.action # user customizations listen-address 10.1.1.1:8118 toggle 1 enable-remote-toggle 1 enable-remote-http-toggle 0 enable-edit-actions 1 enforce-blocks 0 buffer-limit 4096 Forwarded-connect-retries 0 accept-intercepted-requests 1 allow-cgi-request-crunching 0 split-large-forms 0 keep-alive-timeout 300 socket-timeout 300 permit-access 10.1.1.0/24 Debug 1 # show each GET/POST/CONNECT request debug 4096 # startup banner and warnings debug 8192 # errors - *we highly recommended enabling this* #admin-address privoxy-admin@example.com #proxy-info-url http://www.example.com/proxy-service.html Root@yswifi :/etc/privoxy#
Inject ad script into the user.action xxx.js
Specific reference to my script Https://gist.github.com/qianguozheng
Add Filter rule in User.filter
1. Filter:block-weeds
2. S|
Call Filter Rule in user.action
1. {+filter{block-weeds}}
2. *
Go to port 8118 for all destination port 80 requests
1. Iptables-t nat-a prerouting-s 0.0.0.0/0.0.0.0-p tcp--dport 80-j REDIRECT--to-ports 8118