{"id":22779668,"url":"https://github.com/isayme/dnsfilter","last_synced_at":"2025-04-15T14:22:16.171Z","repository":{"id":13943897,"uuid":"16643748","full_name":"isayme/DNSFilter","owner":"isayme","description":"filter dns packet from GFW.","archived":false,"fork":false,"pushed_at":"2015-01-11T13:45:15.000Z","size":172,"stargazers_count":5,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T10:02:26.996Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"rebelidealist/stripe-ruby-mock","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isayme.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}},"created_at":"2014-02-08T13:28:36.000Z","updated_at":"2023-06-09T08:33:51.000Z","dependencies_parsed_at":"2022-09-16T09:41:23.265Z","dependency_job_id":null,"html_url":"https://github.com/isayme/DNSFilter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isayme%2FDNSFilter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isayme%2FDNSFilter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isayme%2FDNSFilter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isayme%2FDNSFilter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isayme","download_url":"https://codeload.github.com/isayme/DNSFilter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249085801,"owners_count":21210356,"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":[],"created_at":"2024-12-11T20:09:27.771Z","updated_at":"2025-04-15T14:22:16.149Z","avatar_url":"https://github.com/isayme.png","language":"Python","readme":"About\n=====\n\n脚本用于防止DNS污染。  \n  \n当前用于防止DNS污染的方法主要有三种：  \n\n1.  UDP转TCP；\n2.  DNS加密传输；\n3.  过滤掉来自GFW的污染数据包；\n\nUDP转TCP\n--------  \n因为GFW返回的污染包是UDP格式，而且TCP通信比UDP更加可靠，所以这种方法比较有效。  \n缺点是TCP协议连接建立需要多次握手，会导致通信耗时较大。  \n如果对此种方法感兴趣，可以参看我另外一个rep：[DnsByTcp](https://github.com/isayme/DnsByTcp).\n\nDNS加密传输\n-----------\n加密整个UDP请求包，这样GFW无法正常解析出你的请求就不会做出污染。  \n缺点是有加密就需要有解密，你需要在墙外再建立一个解密服务器，并将返回包加密后发送回来。这期间的耗时未必会比上一种方式少。而且对于一些使用了CDN的网站，这种方式会影响到你访问对应网站的速度。  \n如果对此种方法感兴趣，可以参看我另外一个rep：[xdns](https://github.com/isayme/xdns).\n\n过滤掉来自GFW的污染数据包\n-------------------------\n因为GFW的DNS污染包中使用的虚假IP地址只有几十个，我们过滤掉那些包即可~  \n当然，这么高大上的方法就是本程序使用的~ \n详情请看代码......\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisayme%2Fdnsfilter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisayme%2Fdnsfilter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisayme%2Fdnsfilter/lists"}