{"id":37158591,"url":"https://github.com/plushbeaver/unnamed","last_synced_at":"2026-01-14T18:56:29.393Z","repository":{"id":87888201,"uuid":"264313991","full_name":"PlushBeaver/unnamed","owner":"PlushBeaver","description":"Forward DNS using the specified protocol for each upstream.","archived":false,"fork":false,"pushed_at":"2020-05-17T22:31:49.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-02-27T04:17:59.730Z","etag":null,"topics":["dns","forwarder","tcp","udp","upstream"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PlushBeaver.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-15T22:43:40.000Z","updated_at":"2024-06-19T11:12:46.957Z","dependencies_parsed_at":null,"dependency_job_id":"a9ec0453-c29e-4c82-9895-fef4a1d76d8e","html_url":"https://github.com/PlushBeaver/unnamed","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/PlushBeaver/unnamed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlushBeaver%2Funnamed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlushBeaver%2Funnamed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlushBeaver%2Funnamed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlushBeaver%2Funnamed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PlushBeaver","download_url":"https://codeload.github.com/PlushBeaver/unnamed/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlushBeaver%2Funnamed/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28431007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["dns","forwarder","tcp","udp","upstream"],"created_at":"2026-01-14T18:56:28.598Z","updated_at":"2026-01-14T18:56:29.386Z","avatar_url":"https://github.com/PlushBeaver.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unnamed\n\nUnnamed forwards DNS queries using the specified protocol for each upstream.\nIt is useful when some upstreams are UDP-only and some are TCP-only.\n\n\n## Installation\n\n### Manual\n\nUnnamed has no dependencies beyond Go standard library.\n\n```shell\ngo install https://github.com/PlushBeaver/unnamed\n```\n\nIf you plan to start Unnamed as a service, install the binary to system\nlocation and deploy the systemd unit (edit `UNNAMED_OPTS` first):\n\n```shell\n$EDITOR unnamed.service\nsudo install -D -m 755 -t /usr/local/bin $GOPATH/bin/unnamed\nsudo install -D -m 644 -t /etc/systemd/system unnamed.service\nsudo systemctl enable unnamed\nsudo systemctl start unnamed\n```\n\nIf you don't plan to use systemd, because Go standard library does not support\ndropping privileges, to use port 53 you can set capabilities and run the\nprogram as normal user:\n\n```shell\nsudo setcap cap_net_bind_service+ep $GOPATH/bin/unnamed\n```\n\n\n### NixOS\n\nIn your `/etc/nixos/configuration.nix`, attach local repository,\nenable service and configure upstreams:\n\n```nix\n{\n  imports = [\n    # ...\n    /path/to/unnamed/config.nix\n  ];\n\n  nixpkgs.config = {\n    packageOverrides = pkgs: {\n      # ...\n      unnamed = pkgs.callPackage /path/to/unnamed {};\n    };\n  };\n\n  services.unnamed = {\n    enable = true;\n    upstreams = [\n      {\n        domain = \".\";\n        server = \"8.8.8.8\";\n      }\n      {\n        domain = \".udp.example.com\";\n        server = \"192.0.2.100\";\n      }\n      {\n        domain = \".tcp.example.com\";\n        server = \"192.0.2.200\";\n        protocol = \"tcp\";\n      }\n    ];\n  };\n}\n```\n\nSet `services.unnamed.resolveLocalQueries = false` if you don't want to use\nUnnamed as your default resolver.\n\n\n## Usage\n\nRun unnamed as a local DNS server and point your `resolv.conf` to it:\n\n```\nnameserver 127.0.0.1\n```\n\nAlternatively you can run unnamed as e.g. dnsmasq upstream.\nUnnamed only supports DNS over UDP queries and no DNSSEC, etc fancy stuff.\n\n```\nUsage of unnamed:\n\n  unnamed -upstream .tcp.local=192.0.2.100:1053/tcp -upstream .=192.0.2.200\n\nDefault upstream protocol is UDP, default port is 53.\nLongest match is preferred. Use . domain for default nameserver.\n\n  -dumpconfig\n        dump configuration on startup\n  -listen string\n        address to receive DNS on (default \"127.0.0.1:53\")\n  -upstream value\n        upstream 'domain=host:port/proto'\n```\n\n**Q:** Can't dnsmasq/unbound/named do the job?\n\n**A:** No. Probably because translating protocols would be too hard\n    in all scenarios these production-grade servers support.\n\n**Q:** Why not extend \u003chttps://github.com/jrmdev/dnsplit\u003e?\n\n**A:** Viral GPL-3.0, external dependencies.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplushbeaver%2Funnamed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplushbeaver%2Funnamed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplushbeaver%2Funnamed/lists"}