{"id":13539472,"url":"https://github.com/fardog/secureoperator","last_synced_at":"2025-04-09T18:19:24.154Z","repository":{"id":57488849,"uuid":"79747726","full_name":"fardog/secureoperator","owner":"fardog","description":"A DNS-protocol proxy for DNS-over-HTTPS providers, such as Google and Cloudflare","archived":false,"fork":false,"pushed_at":"2021-09-25T09:45:10.000Z","size":3988,"stargazers_count":243,"open_issues_count":3,"forks_count":23,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-09T18:19:18.608Z","etag":null,"topics":["cloudflare-dns","dns","dns-over-https","dns-protocol-proxy","dns-server","google-dns","privacy"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fardog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-22T21:41:36.000Z","updated_at":"2025-02-21T06:34:16.000Z","dependencies_parsed_at":"2022-08-29T15:10:39.383Z","dependency_job_id":null,"html_url":"https://github.com/fardog/secureoperator","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fardog%2Fsecureoperator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fardog%2Fsecureoperator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fardog%2Fsecureoperator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fardog%2Fsecureoperator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fardog","download_url":"https://codeload.github.com/fardog/secureoperator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248085325,"owners_count":21045139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare-dns","dns","dns-over-https","dns-protocol-proxy","dns-server","google-dns","privacy"],"created_at":"2024-08-01T09:01:26.401Z","updated_at":"2025-04-09T18:19:24.124Z","avatar_url":"https://github.com/fardog.png","language":"Go","funding_links":[],"categories":["Go","\u003ca id=\"d03d494700077f6a65092985c06bf8e8\"\u003e\u003c/a\u003e工具","Go (531)","\u003ca id=\"1a9934198e37d6d06b881705b863afc8\"\u003e\u003c/a\u003e通信\u0026\u0026代理\u0026\u0026反向代理\u0026\u0026隧道"],"sub_categories":["\u003ca id=\"6381920f17576b07cc87a8dc619123aa\"\u003e\u003c/a\u003eDNS","\u003ca id=\"56acb7c49c828d4715dce57410d490d1\"\u003e\u003c/a\u003e未分类-Proxy"],"readme":"# secureoperator\n\n[![Build Status](https://travis-ci.org/fardog/secureoperator.svg?branch=master)](https://travis-ci.org/fardog/secureoperator)\n[![](https://godoc.org/github.com/fardog/secureoperator?status.svg)](https://godoc.org/github.com/fardog/secureoperator)\n\nA DNS-protocol proxy for [DNS-over-HTTPS][dnsoverhttps]: allows you to run a\nserver on your local network which responds to DNS queries, but requests records\nacross the internet using HTTPS.\n\nIt's known to work with the following providers:\n\n* [Google][dnsoverhttps] - Well tested and configured by default\n* [Cloudflare][] _(Beta)_ - May be used by passing the `--cloudflare` flag\n* [Quad9][] _(Beta)_ - May be used by passing the `--quad9' flag\n\nIf you're interested in a more roll-your-own-DNS system, you might look at\n[dnoxy][], a sibling project to secureoperator which allows running your own\nDNS-over-HTTPS servers.\n\n## Installation\n\nYou may retrieve binaries from [the releases page][releases], or install using\n`go get`:\n\n```\ngo get -u github.com/fardog/secureoperator/cmd/secure-operator\n```\n\nThen either run the binary you downloaded, or the built package:\n\n```\nsecure-operator\n```\n\nThis will start a DNS server listening on TCP and UDP at `:53`. For usage\ninformation, run `secure-operator --help`.\n\n**Note:** Running a service on port `53` requires administrative privileges on\nmost systems.\n\n### Docker\n\nThere is a [Docker][docker] image available for secureoperator:\n\n```\ndocker pull fardog/secureoperator\n```\n\nThe `latest` tag will always be the build from the `master` branch. If you wish\nto use one of the stable releases, use its version tag when pulling, e.g.:\n\n```\ndocker pull fardog/secureoperator:4  # latest of major version\ndocker pull fardog/secureoperator:4.0  # latest of minor version\ndocker pull fardog/secureoperator:4.0.1  # exact version\n```\n\n## Version Compatibility\n\nThis package follows [semver][] for its tagged releases. The `master` branch is\nalways considered stable, but may break API compatibility. If you require API\nstability, either use the tagged releases or mirror on gopkg.in:\n\n```\ngo get -u gopkg.in/fardog/secureoperator.v4\n```\n\n## Caching\n\nsecureoperator _does not perform any caching_; each request to it causes a\nmatching request to the upstream DNS-over-HTTPS server to be made. It's\nrecommended that you place secureoperator behind a caching DNS server such as\n[dnsmasq][] on your local network.\n\nAn simple example setup is [described on the wiki][wiki-setup]. Please feel free\nto contribute additional setups if you are running secureoperator in your\nenvironment.\n\n## Security\n\nNote that while DNS requests are made over HTTPS, this does not imply \"secure\";\nconsider the following:\n\n* You must trust the upstream provider with your requests; for your chosen\n  provider, see:\n  * [Google's Privacy Policy][googlednspriv]\n  * [Cloudflare's Privacy Policy][cloudflarednspriv]\n* The lookup for the HTTP endpoint must happen in _some_ regard, although how\n  this is handled is up to you:\n    * The system DNS resolver is used to look up the endpoint (default)\n    * You provide a list of DNS servers to use for the endpoint lookup\n    * You provide the IP address(es) to the endpoint; and no unencrypted DNS\n      lookup will be performed. However if the addresses change while the\n      service is running, you will need to restart the service to provide new\n      addresses.\n      \nInformation on the usage of these options is available with\n`secure-operator --help`. \n  \n## Help Wanted\n\nsecureoperator could be greatly enhanced by community contributions! The\nfollowing areas could use work:\n\n* More thorough unit tests\n* Installable packages for your favorite Linux distributions\n* Documentation on deploying secureoperator to a local network\n\n### Known Issues\n\nCloudflare is not fully tested yet; it should work for common cases, however: \n\n* EDNS is not supported; this is an intentional choice by Cloudflare, which\n  means any EDNS setting you provide when using Cloudflare as a provider will\n  be silently ignored.\n\nFor a production environment, the Google provider (default) is your best option\ntoday. If you're brave, please test Cloudflare and [report any issues][issues]!\n\n## Acknowledgments\n\nThis owes heavily to the following work:\n\n* https://github.com/miekg/dns\n* https://github.com/wrouesnel/dns-over-https-proxy\n* https://github.com/StalkR/dns-reverse-proxy\n\n## License\n\n```\n   Copyright 2018 Nathan Wittstock\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n```\n\n[dnsoverhttps]: https://developers.google.com/speed/public-dns/docs/dns-over-https\n[googlednspriv]: https://developers.google.com/speed/public-dns/privacy\n[cloudflarednspriv]: https://developers.cloudflare.com/1.1.1.1/commitment-to-privacy/\n[releases]: https://github.com/fardog/secureoperator/releases\n[docker]: https://www.docker.com/\n[issues]: https://github.com/fardog/secureoperator/issues\n[semver]: http://semver.org/\n[wiki-setup]: https://github.com/fardog/secureoperator/wiki/Setting-up-dnsmasq-with-secureoperator\n[dnsmasq]: http://www.thekelleys.org.uk/dnsmasq/doc.html\n[cloudflare]: https://1.1.1.1/\n[quad9]: https://www.quad9.net/\n[dnoxy]: https://github.com/fardog/dnoxy\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffardog%2Fsecureoperator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffardog%2Fsecureoperator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffardog%2Fsecureoperator/lists"}