Jump to content
lbXKSxw1C

dnsproxy в opkg

Recommended Posts

А можно узнать для какой задачи?

 

Share this post


Link to post
Share on other sites

С dnsmasq'а все DNS запросы засылаю по DoH через Кинетиковский /usr/sbin/https_dns_proxy (не путать с opkg'шным /opt/sbin/https-dns-proxy, который у меня почему-то так и не заработал, не резолвит и всё :( )

/usr/sbin/https_dns_proxy настраивается через Web UI Кинетика (прошивка v 3.5.6), порты определяются прошивкой и я опасаюсь, что они могут поменяться и тогда дома инет "ляжет".

Поэтому я ищю альтернативу /usr/sbin/https_dns_proxy который был бы полностью под моим контролем. И тут мне попался этот dnsproxy 

Ещё dnsproxy поддерживает DoQ (DNS-over-QUIC). Тоже интересно попробовать

Share this post


Link to post
Share on other sites
22 часа назад, lbXKSxw1C сказал:

Кто-нибудь собирал пакет dnsproxy для opkg?

Makefile:

Скрытый текст

 


#
# Copyright (C) 2011-2020 Entware
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=dnsproxy
PKG_VERSION:=v0.33.7
PKG_RELEASE:=1

PKG_GOGET:=github.com/AdguardTeam/dnsproxy

GOPKG_SOURCE=GO_$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.bz2

#!!! uncomment PKG_SOURCE to download fixed version
PKG_SOURCE=$(GOPKG_SOURCE)
PKG_COMMIT=662b1052c36b71c9e6d7f314313cfdde9da0325a
PKG_HASH:=987d04fa0426993691aca980ae0c4f007d8984f041a82d75131d8bd12c762a84
PKG_MIRROR_HASH:=skip

PKG_LICENSE:=GPL-3.0-only
PKG_LICENSE_FILES:=LICENSE

PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/golang.mk

ifeq ($(BUILD_VARIANT),nohf)
GOARM:=GOARM=5
endif

define Package/dnsproxy/Default
	$(call Package/gopackage/Default)
	SECTION:=net
	CATEGORY:=Network
	SUBMENU:=IP Addresses and Names
	TITLE:=Simple DNS proxy with DoH, DoT, DoQ and DNSCrypt support
	URL:=https://github.com/AdguardTeam/dnsproxy
endef

define Package/dnsproxy
	$(call Package/dnsproxy/Default)
	VARIANT:=hf
endef

define Package/dnsproxy_nohf
	$(call Package/dnsproxy/Default)
	VARIANT:=nohf
	DEPENDS+=@(TARGET_armv7_2_6||TARGET_armv7_3_2)
endef

define Package/dnsproxy/description
    A simple DNS proxy server that supports all existing DNS
  protocols including DNS-over-TLS, DNS-over-HTTPS, DNSCrypt,
  and DNS-over-QUIC. Moreover, it can work as a DNS-over-HTTPS,
  DNS-over-TLS or DNS-over-QUIC server.
endef

Package/dnsproxy_nohf/description=$(Package/dnsproxy/description)

define Build/Compile
	( cd $(PKG_BUILD_DIR)/src/$(PKG_GOGET); \
		CGO_ENABLED=0 \
		GOOS=linux \
		GOARCH=$(GOARCH) \
		$(GOARM) \
		$(GOROOT)/bin/go build . ; \
	)
endef


define Package/dnsproxy/install
	$(INSTALL_DIR) $(1)/opt/bin
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/$(PKG_GOGET)/dnsproxy $(1)/opt/bin
endef

Package/dnsproxy_nohf/install=$(Package/dnsproxy/install)

$(eval $(call BuildPackage,dnsproxy))
$(eval $(call BuildPackage,dnsproxy_nohf))

 

pkg: dnsproxy_v0.33.7-1_mipsel-3.4.ipk

  • Thanks 1

Share this post


Link to post
Share on other sites
5 часов назад, TheBB сказал:

Makefile:

  Показать содержимое

 




#
# Copyright (C) 2011-2020 Entware
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=dnsproxy
PKG_VERSION:=v0.33.7
PKG_RELEASE:=1

PKG_GOGET:=github.com/AdguardTeam/dnsproxy

GOPKG_SOURCE=GO_$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.bz2

#!!! uncomment PKG_SOURCE to download fixed version
PKG_SOURCE=$(GOPKG_SOURCE)
PKG_COMMIT=662b1052c36b71c9e6d7f314313cfdde9da0325a
PKG_HASH:=987d04fa0426993691aca980ae0c4f007d8984f041a82d75131d8bd12c762a84
PKG_MIRROR_HASH:=skip

PKG_LICENSE:=GPL-3.0-only
PKG_LICENSE_FILES:=LICENSE

PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/golang.mk

ifeq ($(BUILD_VARIANT),nohf)
GOARM:=GOARM=5
endif

define Package/dnsproxy/Default
	$(call Package/gopackage/Default)
	SECTION:=net
	CATEGORY:=Network
	SUBMENU:=IP Addresses and Names
	TITLE:=Simple DNS proxy with DoH, DoT, DoQ and DNSCrypt support
	URL:=https://github.com/AdguardTeam/dnsproxy
endef

define Package/dnsproxy
	$(call Package/dnsproxy/Default)
	VARIANT:=hf
endef

define Package/dnsproxy_nohf
	$(call Package/dnsproxy/Default)
	VARIANT:=nohf
	DEPENDS+=@(TARGET_armv7_2_6||TARGET_armv7_3_2)
endef

define Package/dnsproxy/description
    A simple DNS proxy server that supports all existing DNS
  protocols including DNS-over-TLS, DNS-over-HTTPS, DNSCrypt,
  and DNS-over-QUIC. Moreover, it can work as a DNS-over-HTTPS,
  DNS-over-TLS or DNS-over-QUIC server.
endef

Package/dnsproxy_nohf/description=$(Package/dnsproxy/description)

define Build/Compile
	( cd $(PKG_BUILD_DIR)/src/$(PKG_GOGET); \
		CGO_ENABLED=0 \
		GOOS=linux \
		GOARCH=$(GOARCH) \
		$(GOARM) \
		$(GOROOT)/bin/go build . ; \
	)
endef


define Package/dnsproxy/install
	$(INSTALL_DIR) $(1)/opt/bin
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/$(PKG_GOGET)/dnsproxy $(1)/opt/bin
endef

Package/dnsproxy_nohf/install=$(Package/dnsproxy/install)

$(eval $(call BuildPackage,dnsproxy))
$(eval $(call BuildPackage,dnsproxy_nohf))

 

pkg: dnsproxy_v0.33.7-1_mipsel-3.4.ipk

Спасибо. А как его надо было собирать? И можно ли его включить в репозиторий Entware?

Проверил с несколькими конфигурациями через JSON всё работает. Создал /opt/etc/init.d/S09dnsproxy

#!/bin/sh

ENABLED=yes
PROCS=dnsproxy

ARGS="-l 0.0.0.0 -p 9253 -u https://cloudflare-dns.com/dns-query -b 1.1.1.1:53 -f 8.8.8.8:53 -f 94.140.14.140:53"

PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func

P.S. Проверенные варианты для других DNS'ов:

-u https://dns.google/dns-query -b 8.8.8.8:53 -f 1.1.1.1:53 -f 94.140.14.140:53
-u https://dns-unfiltered.adguard.com/dns-query -b 94.140.14.140:53 -f 1.1.1.1:53 -f 8.8.8.8:53
-u quic://dns-unfiltered.adguard.com -b 94.140.14.140:53 -f 1.1.1.1:53 -f 8.8.8.8:53

  • Thanks 1

Share this post


Link to post
Share on other sites

Компилировать исходники go лучше на Keenetic'е или кросскомиляция на PC?

Share this post


Link to post
Share on other sites
16 часов назад, lbXKSxw1C сказал:

Компилировать исходники go лучше на Keenetic'е или кросскомиляция на PC?

Если cross, Makefile выше, если нативно (на устройстве), тогда начинать отсюда.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...