Hiện nay đa số mọi người đều dùng cách thức chặn quảng cáo như dùng add-on/extention cho trình duyệt, dùng phần mềm trên máy tính hay trên các thiết bị di động. Một số ít dùng DNS/VPN/PAC
Các cách thức chặn quảng cáo đều chặn kết nối đến ad server, và đều chặn từ thiết bị đâu cuối. Tất cả các thiết bị trong hệ thống mạng nội bộ đều phải sử dụng phần mềm/dịch vụ chặn quảng cáo. Nên mình nghĩ là sao ta không chặn từ thiết bị trung gian nhu router chẳng hạn. Như thế sẽ gọn hơn rất nhiều.
Yêu cầu:
- Router hỗ trợ firmware DD-WRT
- Router của bạn phải hỗ trợ cURL
- Bộ nhớ trong (ROM) có dung lượng tương đối một chút hoặc router có hỗ trợ USB Flashnếu router có bộ nhớ trong hạn chế. Mục đích là để chứa file hosts.
Thực hiện:
- Phân vùng đầu là Linux Swap | 256->512Mb
- Phân vùng nhị sẽ chèn vào /jffs in ext4 format | 1.75Gb
- Phân vùng tam sẽ chèn vào /opt in ext4 format | 1.5Gb
Dưới đây là hình mẫu cấu hình router dùng USB Flash.
Khi dùng USB Flash thì bạn phải tắt JFFS2 (mặc định là tắt)
- Sau khi chèn thành công USB Flash vào router thì phân vùng trên USB được chèn vào lần lượt là /jffs và /otp. Chép file sh vào thư mục trên /jffs router/usb: (dùng WinSCP để chép).
- Telnet vào router để chạy file sh: sh /jffs/s.sh với tham số lệnh như sau:
- s.sh -h : Xem help để biết chi tiết chức năng và tham số lệnh cụ thể
- s.sh -v : Xem phiên bản script
- s.sh -u : Cập nhật csript
- s.sh -b : Thêm blacklist
- s.sh -w : Thêm whitelist
- s.sh -p : Tạm ngưng chặn
- s.sh -r : Tiếp tục chặn chặn
- s.sh -s : Tải url https
- s.sh -[0 cho tới 4] : Đây là cấp độ chặn nhiều hay ít (ss.sh -4 mặc định)
- Cấu hình router dùng file host sau khi scripts chạy xong:
- Bật DNS DNSMasq và local DNS cho LAN và WAN.
- Phần Additional DNSMaasq Options: bạn để như hình hoặc
- conf-file=/jffs/xxx | xxx là đường dẫn đến file d (domain) phân vùng jffs
- addn-hosts=/jffs/yyy | xxx là đường dẫn đến file h (host) phân vùng jffs
Nếu muốn scripts tự động chạy theo lịch thì bạn làm theo hướng dẫn ở đây:
# minute (0-59),
# | hour (0-23),
# | | day of the month (1-31),
# | | | month of the year (1-12),
# | | | | day of the week (0-6 with 0=Sunday).
# | | | | | commands
Vào Administration => Management, rồi nhập vào Additional Cron Jobs:
0 2 * * 1,4 root /jffs/s.sh -u
2 2 * * 1,4 root /jffs/s.sh
Lưu ý:
- Script chính thực hiện việc tải và xử lý file host là s.sh
- Script có thể chạy trên Linux/iOS/Android có hỗ trợ cURL các lệnh Bash cơ bản
- Về việc router của bạn có hỗ trợ firmware DD-WRT hay không thì bạn tự tìm hiểu thêm trên mạng. Mình sẽ không hỗ trợ phần này.
- Cách dùng WinSCP hay telnet vào router bạn tự tìm hiểu nhé!
- Nếu chạy scripts này trên Linux/Andoid/iOS thì bạn tạo file rỗng có tên Location trong cùng thư mục script đang chạy.
Mọi thắc mắc các bạn có thể pm cho mình vào fb.me/LucThanhPhu