Skip to content

Instantly share code, notes, and snippets.

@dartraiden
Last active February 11, 2021 03:09
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dartraiden/e55f8047901664cddc6a1b330a5f8175 to your computer and use it in GitHub Desktop.
Save dartraiden/e55f8047901664cddc6a1b330a5f8175 to your computer and use it in GitHub Desktop.

Во-первых, я бы использовал "ванильный" Adguard, а не эту шнягу для LuCi. Таким, образом

Установка AdGuard

  • установить wget с поддержкой https и сертификаты
opkg update
opkg install wget ca-certificates
  • скачать AdGuardHome_linux_mipsle_softfloat.tar.gz c https://github.com/AdguardTeam/AdGuardHome/releases

  • распаковать

  • создать каталог /usr/bin/AdGuardHome и в него закинуть бинарник AdGuardHome

  • сделать его исполняемым chmod +x /usr/bin/AdGuardHome/AdGuardHome

  • освободить 53 порт, занятый dnsmasq-ом:

uci set dhcp.@dnsmasq[0].port='0'
uci commit dhcp
service dnsmasq restart

На этом месте у клиентов пропадает доступ в интернет, потому что на 53 порту пока никого нет и на DNS-запросы никто не отвечает.

  • запустить AdGuard /usr/bin/AdGuardHome/AdGuardHome -s install

  • через пару минут зайти на http://192.168.1.1:3000, там должен быть диалог первичной настройки

  • в диалоге первичной настройки для админки указать All interfaces и порт 1234, а для DNS указать All interfaces и порт 53, также придумать имя и пароль на админку

  • зайти на http://192.168.1.1:1234, настроить там фильтры по вкусу

  • http://192.168.1.1:1234/#dns → Blocking mode: NXDOMAIN

  • http://192.168.1.1:1234/#encryption → ничего не трогать

  • http://192.168.1.1:1234/#dhcp → ничего не трогать

  • http://192.168.1.1:1234/#dns → Upstream DNS servers: 8.8.8.8

  • проверить, что создался файл /etc/inid.d/AdGuardHome, это скрипт, который будет стартовать при запуске роутера.

На этом месте у клиентов должен появиться доступ в интернет. Если не появился, то следует перезапустить роутер и подождать, пока AdGuard стартанет. Стандартный текст на dnskeaktest.com с браузера на клиенте должен показывать сервер 8.8.8.8

В дальнейшем обновлять AdGuard точно так же:

  • скачал билд для mipsle
  • распаковал
  • положил в /usr/bin/AdGuardHome
  • сделал исполняемым chmod +x /usr/bin/AdGuardHome/AdGuardHome
  • перезапустил service AdGuardHome restart

Обход блокировок

  • установить OpenVPN
opkg update
opkg install openvpn-openssl
uci delete openvpn.custom_config
uci delete openvpn.sample_client
uci delete openvpn.sample_server
uci set openvpn.antizapret=openvpn
uci set openvpn.antizapret.enabled='1'
uci set openvpn.antizapret.nobind='1'
uci set openvpn.antizapret.client='1'
uci add_list openvpn.antizapret.remote='vpn.antizapret.prostovpn.org'
uci set openvpn.antizapret.remote_cert_tls='server'
uci set openvpn.antizapret.dev='tun0'
uci set openvpn.antizapret.dev_type='tun'
uci set openvpn.antizapret.proto='tcp-client'
uci set openvpn.antizapret.cipher='AES-128-CBC'
uci set openvpn.antizapret.resolv_retry='infinite'
uci set openvpn.antizapret.persist_key='1'
uci set openvpn.antizapret.persist_tun='1'
uci set openvpn.antizapret.ca='/etc/openvpn/ca.crt'
uci set openvpn.antizapret.cert='/etc/openvpn/antizapret-useraccess2.crt'
uci set openvpn.antizapret.key='/etc/openvpn/antizapret-useraccess2.key'
uci set openvpn.antizapret.auth_nocache='1'
uci set openvpn.antizapret.pull='1'
uci commit openvpn
service openvpn restart antizapret
  • создать и настроить интерфейс для VPN:
uci set network.antizapret=interface
uci set network.antizapret.proto='none'
uci set network.antizapret.ifname='tun0'
uci commit network
service network restart
  • создать и настроить зону файерволла
uci add firewall zone
uci set firewall.@zone[-1].name='antizapret'
uci set firewall.@zone[-1].input='REJECT'
uci set firewall.@zone[-1].output='ACCEPT'
uci set firewall.@zone[-1].forward='REJECT'
uci set firewall.@zone[-1].network='antizapret'
uci set firewall.@zone[-1].masq='1'
uci set firewall.@zone[-1].mtu_fix='1'
uci add firewall forwarding
uci set firewall.@forwarding[-1].dest='antizapret'
uci set firewall.@forwarding[-1].src='lan'
uci commit firewall
service firewall restart
  • перехват AdGuard-овского трафика и заворот его в VPN
uci set openvpn.antizapret.route='8.8.8.8'
uci commit openvpn
service openvpn restart antizapret

Стандартный текст на dnskeaktest.com с браузера на клиенте должен показывать сервер anticensorship-proxy.antizapret.prostovpn.org

@pvrt
Copy link

pvrt commented Feb 11, 2021

Ошибка в названии сайта - dnsleaktest.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment