Signed-off-by: sairate <sairate@sina.cn>

This commit is contained in:
sairate 2025-05-21 12:58:23 +08:00
commit f4a639ecb2
33 changed files with 96673 additions and 0 deletions

BIN
FastGithub.UI.exe Normal file

Binary file not shown.

6
FastGithub.UI.exe.config Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 老九
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

431
README.html Normal file
View File

@ -0,0 +1,431 @@
<!DOCTYPE html>
<html>
<head>
<title>README.md</title>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<style>
/* https://github.com/microsoft/vscode/blob/master/extensions/markdown-language-features/media/markdown.css */
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
body {
font-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif);
font-size: var(--vscode-markdown-font-size, 14px);
padding: 0 26px;
line-height: var(--vscode-markdown-line-height, 22px);
word-wrap: break-word;
}
#code-csp-warning {
position: fixed;
top: 0;
right: 0;
color: white;
margin: 16px;
text-align: center;
font-size: 12px;
font-family: sans-serif;
background-color:#444444;
cursor: pointer;
padding: 6px;
box-shadow: 1px 1px 1px rgba(0,0,0,.25);
}
#code-csp-warning:hover {
text-decoration: none;
background-color:#007acc;
box-shadow: 2px 2px 2px rgba(0,0,0,.25);
}
body.scrollBeyondLastLine {
margin-bottom: calc(100vh - 22px);
}
body.showEditorSelection .code-line {
position: relative;
}
body.showEditorSelection .code-active-line:before,
body.showEditorSelection .code-line:hover:before {
content: "";
display: block;
position: absolute;
top: 0;
left: -12px;
height: 100%;
}
body.showEditorSelection li.code-active-line:before,
body.showEditorSelection li.code-line:hover:before {
left: -30px;
}
.vscode-light.showEditorSelection .code-active-line:before {
border-left: 3px solid rgba(0, 0, 0, 0.15);
}
.vscode-light.showEditorSelection .code-line:hover:before {
border-left: 3px solid rgba(0, 0, 0, 0.40);
}
.vscode-light.showEditorSelection .code-line .code-line:hover:before {
border-left: none;
}
.vscode-dark.showEditorSelection .code-active-line:before {
border-left: 3px solid rgba(255, 255, 255, 0.4);
}
.vscode-dark.showEditorSelection .code-line:hover:before {
border-left: 3px solid rgba(255, 255, 255, 0.60);
}
.vscode-dark.showEditorSelection .code-line .code-line:hover:before {
border-left: none;
}
.vscode-high-contrast.showEditorSelection .code-active-line:before {
border-left: 3px solid rgba(255, 160, 0, 0.7);
}
.vscode-high-contrast.showEditorSelection .code-line:hover:before {
border-left: 3px solid rgba(255, 160, 0, 1);
}
.vscode-high-contrast.showEditorSelection .code-line .code-line:hover:before {
border-left: none;
}
img {
max-width: 100%;
max-height: 100%;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:focus,
input:focus,
select:focus,
textarea:focus {
outline: 1px solid -webkit-focus-ring-color;
outline-offset: -1px;
}
hr {
border: 0;
height: 2px;
border-bottom: 2px solid;
}
h1 {
padding-bottom: 0.3em;
line-height: 1.2;
border-bottom-width: 1px;
border-bottom-style: solid;
}
h1, h2, h3 {
font-weight: normal;
}
table {
border-collapse: collapse;
}
table > thead > tr > th {
text-align: left;
border-bottom: 1px solid;
}
table > thead > tr > th,
table > thead > tr > td,
table > tbody > tr > th,
table > tbody > tr > td {
padding: 5px 10px;
}
table > tbody > tr + tr > td {
border-top: 1px solid;
}
blockquote {
margin: 0 7px 0 5px;
padding: 0 16px 0 10px;
border-left-width: 5px;
border-left-style: solid;
}
code {
font-family: Menlo, Monaco, Consolas, "Droid Sans Mono", "Courier New", monospace, "Droid Sans Fallback";
font-size: 1em;
line-height: 1.357em;
}
body.wordWrap pre {
white-space: pre-wrap;
}
pre:not(.hljs),
pre.hljs code > div {
padding: 16px;
border-radius: 3px;
overflow: auto;
}
pre code {
color: var(--vscode-editor-foreground);
tab-size: 4;
}
/** Theming */
.vscode-light pre {
background-color: rgba(220, 220, 220, 0.4);
}
.vscode-dark pre {
background-color: rgba(10, 10, 10, 0.4);
}
.vscode-high-contrast pre {
background-color: rgb(0, 0, 0);
}
.vscode-high-contrast h1 {
border-color: rgb(0, 0, 0);
}
.vscode-light table > thead > tr > th {
border-color: rgba(0, 0, 0, 0.69);
}
.vscode-dark table > thead > tr > th {
border-color: rgba(255, 255, 255, 0.69);
}
.vscode-light h1,
.vscode-light hr,
.vscode-light table > tbody > tr + tr > td {
border-color: rgba(0, 0, 0, 0.18);
}
.vscode-dark h1,
.vscode-dark hr,
.vscode-dark table > tbody > tr + tr > td {
border-color: rgba(255, 255, 255, 0.18);
}
</style>
<style>
/* Tomorrow Theme */
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
/* Tomorrow Comment */
.hljs-comment,
.hljs-quote {
color: #8e908c;
}
/* Tomorrow Red */
.hljs-variable,
.hljs-template-variable,
.hljs-tag,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class,
.hljs-regexp,
.hljs-deletion {
color: #c82829;
}
/* Tomorrow Orange */
.hljs-number,
.hljs-built_in,
.hljs-builtin-name,
.hljs-literal,
.hljs-type,
.hljs-params,
.hljs-meta,
.hljs-link {
color: #f5871f;
}
/* Tomorrow Yellow */
.hljs-attribute {
color: #eab700;
}
/* Tomorrow Green */
.hljs-string,
.hljs-symbol,
.hljs-bullet,
.hljs-addition {
color: #718c00;
}
/* Tomorrow Blue */
.hljs-title,
.hljs-section {
color: #4271ae;
}
/* Tomorrow Purple */
.hljs-keyword,
.hljs-selector-tag {
color: #8959a8;
}
.hljs {
display: block;
overflow-x: auto;
color: #4d4d4c;
padding: 0.5em;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
</style>
<style>
/*
* Markdown PDF CSS
*/
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif, "Meiryo";
padding: 0 12px;
}
pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
border-radius: 3px;
overflow-x: auto;
white-space: pre-wrap;
overflow-wrap: break-word;
}
pre:not(.hljs) {
padding: 23px;
line-height: 19px;
}
blockquote {
background: rgba(127, 127, 127, 0.1);
border-color: rgba(0, 122, 204, 0.5);
}
.emoji {
height: 1.4em;
}
code {
font-size: 14px;
line-height: 19px;
}
/* for inline code */
:not(pre):not(.hljs) > code {
color: #C9AE75; /* Change the old color so it seems less like an error */
font-size: inherit;
}
/* Page Break : use <div class="page"/> to insert page break
-------------------------------------------------------- */
.page {
page-break-after: always;
}
</style>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
</head>
<body>
<script>
mermaid.initialize({
startOnLoad: true,
theme: document.body.classList.contains('vscode-dark') || document.body.classList.contains('vscode-high-contrast')
? 'dark'
: 'default'
});
</script>
<h1 id="fastgithub">FastGithub</h1>
<p>github加速神器解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。</p>
<h3 id="1-%E7%A8%8B%E5%BA%8F%E4%B8%8B%E8%BD%BD">1 程序下载</h3>
<ul>
<li><a href="https://github.com/dotnetcore/fastgithub/releases">github-release</a></li>
<li>Q群1 <a href="https://qm.qq.com/cgi-bin/qm/qr?k=cx_MgEIvoo1EMkrKg5tXz8vMdtPap3Rw&amp;jump_from=webapi">307306673</a> [已满]</li>
<li>Q群2 <a href="https://qm.qq.com/cgi-bin/qm/qr?k=6BBJ1nrJwe1o1E4-NJfwSOP-C4sMGc4q&amp;jump_from=webapi">742376932</a></li>
</ul>
<h3 id="2-%E9%83%A8%E7%BD%B2%E6%96%B9%E5%BC%8F">2 部署方式</h3>
<h4 id="21-windows-x64%E6%A1%8C%E9%9D%A2">2.1 windows-x64桌面</h4>
<ul>
<li>双击运行FastGithub.UI.exe</li>
</ul>
<h4 id="22-windows-x64%E6%9C%8D%E5%8A%A1">2.2 windows-x64服务</h4>
<ul>
<li><code>fastgithub.exe start</code> // 以windows服务安装并启动</li>
<li><code>fastgithub.exe stop</code> // 以windows服务卸载并删除</li>
</ul>
<h4 id="23-linux-x64%E7%BB%88%E7%AB%AF">2.3 linux-x64终端</h4>
<ul>
<li><code>sudo ./fastgithub</code></li>
<li>设置系统自动代理为<code>http://127.0.0.1:38457</code>或手动代理http/https为<code>127.0.0.1:38457</code></li>
</ul>
<h4 id="24-linux-x64%E6%9C%8D%E5%8A%A1">2.4 linux-x64服务</h4>
<ul>
<li><code>sudo ./fastgithub start</code> // 以systemd服务安装并启动</li>
<li><code>sudo ./fastgithub stop</code> // 以systemd服务卸载并删除</li>
<li>设置系统自动代理为<code>http://127.0.0.1:38457</code>或手动代理http/https为<code>127.0.0.1:38457</code></li>
</ul>
<h4 id="25-macos-x64">2.5 macOS-x64</h4>
<ul>
<li>双击运行fastgithub</li>
<li>安装cacert/fastgithub.cer并设置信任</li>
<li>设置系统自动代理为<code>http://127.0.0.1:38457</code>或手动代理http/https为<code>127.0.0.1:38457</code></li>
<li><a href="https://github.com/dotnetcore/FastGithub/blob/master/MacOSXConfig.md">具体配置详情</a></li>
</ul>
<h4 id="26-docker-compose%E4%B8%80%E9%94%AE%E9%83%A8%E7%BD%B2">2.6 docker-compose一键部署</h4>
<ul>
<li>准备好docker 18.09, docker-compose.</li>
<li>在源码目录下有一个docker-compose.yaml 文件专用于在实际项目中临时使用github.com源码而做的demo配置。</li>
<li>根据自己的需要更新docker-compose.yaml中的sample和build镜像即可完成拉github.com源码加速并基于源码做后续的操作。</li>
</ul>
<h3 id="3-%E8%BD%AF%E4%BB%B6%E5%8A%9F%E8%83%BD">3 软件功能</h3>
<ul>
<li>提供域名的纯净IP解析</li>
<li>提供IP测速并选择最快的IP</li>
<li>提供域名的tls连接自定义配置</li>
<li>google的CDN资源替换解决大量国外网站无法加载js和css的问题</li>
</ul>
<h3 id="4-%E8%AF%81%E4%B9%A6%E9%AA%8C%E8%AF%81">4 证书验证</h3>
<h4 id="41-git">4.1 git</h4>
<p>git操作提示<code>SSL certificate problem</code></br>
需要关闭git的证书验证<code>git config --global http.sslverify false</code></p>
<h4 id="42-firefox">4.2 firefox</h4>
<p>firefox提示<code>连接有潜在的安全问题</code></br>
设置-&gt;隐私与安全-&gt;证书-&gt;查看证书-&gt;证书颁发机构导入cacert/fastgithub.cer勾选“信任由此证书颁发机构来标识网站”</p>
<h3 id="5-%E5%AE%89%E5%85%A8%E6%80%A7%E8%AF%B4%E6%98%8E">5 安全性说明</h3>
<p>FastGithub为每台不同的主机生成自颁发CA证书保存在cacert文件夹下。客户端设备需要安装和无条件信任自颁发的CA证书请不要将证书私钥泄露给他人以免造成损失。</p>
<h3 id="6-%E5%90%88%E6%B3%95%E6%80%A7%E8%AF%B4%E6%98%8E">6 合法性说明</h3>
<p>《国际联网暂行规定》第六条规定:“计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其他信道进行国际联网。”
FastGithub本地代理使用的都是“公用电信网提供的国际出入口信道”从国外Github服务器到国内用户电脑上FastGithub程序的流量使用的是正常流量通道其间未对流量进行任何额外加密仅有网页原有的TLS加密区别于VPN的流量加密而FastGithub获取到网页数据之后发生的整个代理过程完全在国内不再适用国际互联网相关之规定。</p>
</body>
</html>

59
README.md Normal file
View File

@ -0,0 +1,59 @@
# FastGithub
github加速神器解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。
### 1 程序下载
* [github-release](https://github.com/dotnetcore/fastgithub/releases)
* Q群1 [307306673](https://qm.qq.com/cgi-bin/qm/qr?k=cx_MgEIvoo1EMkrKg5tXz8vMdtPap3Rw&jump_from=webapi) [已满]
* Q群2 [742376932](https://qm.qq.com/cgi-bin/qm/qr?k=6BBJ1nrJwe1o1E4-NJfwSOP-C4sMGc4q&jump_from=webapi)
* Q群3 [597131950](https://jq.qq.com/?_wv=1027&k=1YpGW564)
### 2 部署方式
#### 2.1 windows-x64桌面
* 双击运行FastGithub.UI.exe
#### 2.2 windows-x64服务
* `fastgithub.exe start` // 以windows服务安装并启动
* `fastgithub.exe stop` // 以windows服务卸载并删除
#### 2.3 linux-x64终端
* `sudo ./fastgithub`
* 设置系统自动代理为`http://127.0.0.1:38457`或手动代理http/https为`127.0.0.1:38457`
#### 2.4 linux-x64服务
* `sudo ./fastgithub start` // 以systemd服务安装并启动
* `sudo ./fastgithub stop` // 以systemd服务卸载并删除
* 设置系统自动代理为`http://127.0.0.1:38457`或手动代理http/https为`127.0.0.1:38457`
#### 2.5 macOS-x64
* 双击运行fastgithub
* 安装cacert/fastgithub.cer并设置信任
* 设置系统自动代理为`http://127.0.0.1:38457`或手动代理http/https为`127.0.0.1:38457`
* [具体配置详情](https://github.com/dotnetcore/FastGithub/blob/master/MacOSXConfig.md)
#### 2.6 docker-compose一键部署
* 准备好docker 18.09, docker-compose.
* 在源码目录下有一个docker-compose.yaml 文件专用于在实际项目中临时使用github.com源码而做的demo配置。
* 根据自己的需要更新docker-compose.yaml中的sample和build镜像即可完成拉github.com源码加速并基于源码做后续的操作。
### 3 软件功能
* 提供域名的纯净IP解析
* 提供IP测速并选择最快的IP
* 提供域名的tls连接自定义配置
* google的CDN资源替换解决大量国外网站无法加载js和css的问题
### 4 证书验证
#### 4.1 git
git操作提示`SSL certificate problem`</br>
需要关闭git的证书验证`git config --global http.sslverify false`
#### 4.2 firefox
firefox提示`连接有潜在的安全问题`</br>
设置->隐私与安全->证书->查看证书->证书颁发机构导入cacert/fastgithub.cer勾选“信任由此证书颁发机构来标识网站”
### 5 安全性说明
FastGithub为每台不同的主机生成自颁发CA证书保存在cacert文件夹下。客户端设备需要安装和无条件信任自颁发的CA证书请不要将证书私钥泄露给他人以免造成损失。
### 6 合法性说明
《国际联网暂行规定》第六条规定:“计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其他信道进行国际联网。”
FastGithub本地代理使用的都是“公用电信网提供的国际出入口信道”从国外Github服务器到国内用户电脑上FastGithub程序的流量使用的是正常流量通道其间未对流量进行任何额外加密仅有网页原有的TLS加密区别于VPN的流量加密而FastGithub获取到网页数据之后发生的整个代理过程完全在国内不再适用国际互联网相关之规定。

37
appsettings.json Normal file
View File

@ -0,0 +1,37 @@
{
// appsettings.*.json
"FastGithub": {
"HttpProxyPort": 38457, // httplinux/osx使
"FallbackDns": [ // dnstcp
"8.8.8.8:53",
"119.29.29.29:53",
"114.114.114.114:53"
],
"DomainConfigs": {
"*.fastgithub.com": { // *.0
"TlsSni": false, // tlsSNI
"TlsSniPattern": null, // SNI@domain @ipaddressip @random
"TlsIgnoreNameMismatch": false, // SNIfalse
"Timeout": null, // "00:02:00"null
"IPAddress": null, // ipnull
"Destination": null, // Urinull
"Response": { // Response
"StatusCode": 404, //
"ContentType": "text/plain;charset=utf-8", // ContentValueContentType
"ContentValue": "这是一个用于示范配置的域名" //
}
}
}
},
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Yarp": "Warning",
"System": "Warning",
"Microsoft": "Warning",
"Microsoft.AspNetCore.Server.Kestrel": "Error"
}
}
}
}

View File

@ -0,0 +1,12 @@
{
"FastGithub": {
"DomainConfigs": {
"s3.amazonaws.com": {
"TlsIgnoreNameMismatch": true
},
"*.s3.amazonaws.com": {
"TlsIgnoreNameMismatch": true
}
}
}
}

View File

@ -0,0 +1,13 @@
{
"FastGithub": {
"DomainConfigs": {
"*.cloudflare.com": {
"TlsSni": true
},
"cdn.bootcss.com": {
"TlsSni": true,
"Destination": "https://cdnjs.cloudflare.com/ajax/libs/"
}
}
}
}

View File

@ -0,0 +1,15 @@
{
"FastGithub": {
"DomainConfigs": {
"*.fastly.net": {
"TlsIgnoreNameMismatch": true
},
"*.*.fastly.net": {
"TlsIgnoreNameMismatch": true
},
"*.*.*.fastly.net": {
"TlsIgnoreNameMismatch": true
}
}
}
}

View File

@ -0,0 +1,36 @@
{
"FastGithub": {
"DomainConfigs": {
"github.com": {
"TlsSni": false
},
"api.github.com": {
"TlsSni": false
},
"githubstatus.com": {
"TlsSni": false
},
"gist.github.com": {
"TlsIgnoreNameMismatch": true
},
"vscode-auth.github.com": {
"TlsSni": true
},
"*.github.com": {
"TlsIgnoreNameMismatch": true
},
"*.github.io": {
"TlsIgnoreNameMismatch": true
},
"*.githubapp.com": {
"TlsIgnoreNameMismatch": true
},
"*.githubassets.com": {
"TlsIgnoreNameMismatch": true
},
"*.githubusercontent.com": {
"TlsIgnoreNameMismatch": true
}
}
}
}

View File

@ -0,0 +1,25 @@
{
"FastGithub": {
"DomainConfigs": {
"ajax.googleapis.com": {
"TlsSni": true,
"Destination": "https://gapis.geekzu.org/ajax/"
},
"fonts.googleapis.com": {
"TlsSni": true,
"Destination": "https://fonts.geekzu.org/"
},
"themes.googleusercontent.com": {
"TlsSni": true,
"Destination": "https://gapis.geekzu.org/g-themes/"
},
"fonts.gstatic.com": {
"TlsSni": true,
"Destination": "https://gapis.geekzu.org/g-fonts/"
},
"*.gravatar.com": {
"TlsIgnoreNameMismatch": true
}
}
}
}

View File

@ -0,0 +1,15 @@
{
"FastGithub": {
"DomainConfigs": {
"imgur.com": {
"TlsIgnoreNameMismatch": true
},
"*.imgur.com": {
"TlsIgnoreNameMismatch": true
},
"*.*.imgur.com": {
"TlsIgnoreNameMismatch": true
}
}
}
}

View File

@ -0,0 +1,85 @@
{
"FastGithub": {
"DomainConfigs": {
"azure.com": {
"TlsSni": true
},
"*.azure.com": {
"TlsSni": true
},
"*.*.azure.com": {
"TlsSni": true
},
"*.*.*.azure.com": {
"TlsSni": true
},
"*.azureedge.net": {
"TlsSni": true
},
"*.visualstudio.com": {
"TlsSni": true
},
"*.*.visualstudio.com": {
"TlsSni": true
},
"*.live.com": {
"TlsSni": true
},
"*.*.live.com": {
"TlsSni": true
},
"microsoftonline.com": {
"TlsSni": true
},
"*.microsoftonline.com": {
"TlsSni": true
},
"windows.net": {
"TlsSni": true
},
"*.windows.net": {
"TlsSni": true
},
"*.*.windows.net": {
"TlsSni": true
},
"azurewebsites.net": {
"TlsSni": true
},
"*.azurewebsites.net": {
"TlsSni": true
},
"*.*.azurewebsites.net": {
"TlsSni": true
},
"*.vsassets.io": {
"TlsSni": true
},
"aadcdn.msauth.net": {
"TlsSni": true
},
"aadcdn.msftauth.net": {
"TlsSni": true
},
"static2.sharepointonline.com": {
"TlsSni": true
},
"az764295.vo.msecnd.net": {
"TlsSni": true,
"Destination": "https://vscode.cdn.azure.cn/"
},
"*.*.msecnd.net": {
"TlsSni": true
},
"*.aspnetcdn.com": {
"TlsSni": true
},
"onedrive.live.com": {
"TlsSni": false
},
"*.onedrive.live.com": {
"TlsSni": false
}
}
}
}

View File

@ -0,0 +1,12 @@
{
"FastGithub": {
"DomainConfigs": {
"*.nuget.org": {
"TlsSni": true
},
"*.maven.org": {
"TlsSni": true
}
}
}
}

View File

@ -0,0 +1,12 @@
{
"FastGithub": {
"DomainConfigs": {
"v2ex.com": {
"TlsSni": false
},
"*.v2ex.com": {
"TlsSni": false
}
}
}
}

19
cacert/fastgithub.cer Normal file
View File

@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDBjCCAe6gAwIBAgIQAP2jqJv1v7HnrRvYqjqaOTANBgkqhkiG9w0BAQsFADAV
MRMwEQYDVQQDDApGYXN0R2l0aHViMB4XDTI1MDEwNzAwMDAwMFoXDTM1MDEwODAw
MDAwMFowFTETMBEGA1UEAwwKRmFzdEdpdGh1YjCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAIvq+N+wPHFuBfVorUvHbFGqQHURbWPm6UpVkeiJJt/b+3r8
Xp+h6uVHz6P7qJ2e4iOyyFrpEUL9UBKmLehM+AI9pCFN6AfirtTMyoOhG8QR2nFT
Vs/DgkVOfz8ooedcpgOeIHxRDFnE3vKs7PI2hEo4t9/BgIc7ErmHSsIRegMPcSPC
/fSygLp65qazQbyQiOcZYQEEFT9qSgmUN0m8dXq63x8pE3VbLe2p/MhVLTx0FQMm
LXnUiJreQqAhmdlqH4puNlycNqAy8mGvd8MJ6AjEwfFsFg7tOGj96ku8cllAaxxW
53HwiXtNp5EOvJa0qfqHoO0X5Z6yS17TD3CVdokCAwEAAaNSMFAwEgYDVR0TAQH/
BAgwBgEB/wIBATALBgNVHQ8EBAMCAYYwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwEw
FQYDVR0RBA4wDIIKRmFzdEdpdGh1YjANBgkqhkiG9w0BAQsFAAOCAQEAJ/crGYaz
sJweccLVuUH4td10jx6ggqeHR9m0lU2yQRoW2WQ0/buLCxifxgVBRTbSFZaFnK8b
RRIGHOsu7Lv6fAAu1nK2AkZVGS95t3SCHfGNIhkpgxGmVLX3j1TCTwuG+6KHHyHs
okxV2iOMup+D/TM98ET/wfZA8LXUMyg2gls++1Tw3dpGZ5RBsDRyuQxPsHENvz5E
1XA8AZr0noaOOVJM5lNmLDSdAPJNT6SohpULWhstWxaqHDUqzAM3XAEu86iuamXr
VXfu/4reNDUz1kPfOgjp/1gLMvuKJoRbCyuRGRrcpwsUBpz9EGfNdcBbBfILLNHo
lzh5lMrB/DBuow==
-----END CERTIFICATE-----

27
cacert/fastgithub.key Normal file
View File

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAi+r437A8cW4F9WitS8dsUapAdRFtY+bpSlWR6Ikm39v7evxe
n6Hq5UfPo/uonZ7iI7LIWukRQv1QEqYt6Ez4Aj2kIU3oB+Ku1MzKg6EbxBHacVNW
z8OCRU5/Pyih51ymA54gfFEMWcTe8qzs8jaESji338GAhzsSuYdKwhF6Aw9xI8L9
9LKAunrmprNBvJCI5xlhAQQVP2pKCZQ3Sbx1errfHykTdVst7an8yFUtPHQVAyYt
edSImt5CoCGZ2Wofim42XJw2oDLyYa93wwnoCMTB8WwWDu04aP3qS7xyWUBrHFbn
cfCJe02nkQ68lrSp+oeg7RflnrJLXtMPcJV2iQIDAQABAoIBAAaJYviiVWSQOQ+K
xSPX7H/RNiMx/fwPluEN59vnAm2ta42Gmk4XZK+y/+ifknRQrqxvxwv2PQP17SZ9
5IGojOKf6hnTN66coMHY0nI9Vdx+YAfw1oqszdp6jRfQiGXUbn4XRlnAeJT+DVNl
kElNkjcceLynn99Re3G2+B9ibSKU5YwSkipPJb4GS2IiqhChZQaTtDJu72fo2Gy6
KgAJIBbJHImw8tRRakj9WgN9XaCl5+xl1sCb1B9F4UMoPDYQgIGdnuPJjy4gB077
Ix7+/MsYu7L61kiCgDcqbWoNLbaNmH7Kn7ZrN2SazJ60cj8EaWIJrBUuY6i02wxF
//Ot6R0CgYEA1ONMb61GisleuImsJ+bBnkRwSPONRRwp2/MN02b1LMGaUnhfbz3y
Zo+CnS/hOemxd8vOCp3PMHKcfOeo7m28e0+Whhrkg52OhK9Sm7iHxA/uN5dcK0kA
97iFd33n26C5RlajJo6WhEIKSMQdn0vEMmgPuvCp4UTCse6H1zjfJO0CgYEAqEC0
PeVRfjyGeuAXXh8uc5LmvDFoBvAJ/cpjdokdWj9UPJFCNW3B/AfVZCpohxCpcNr4
+QlqZDW35IdUFE7gfifPY7ei1zhNz8tIo0HUaWevUosubzpUShTwjQSsHoI82Z0+
p3IKwDIef9kUvMPvHeGaUNAjcruCoZnYW/fCoI0CgYEAxovew+D1A4dfIfi0aNpc
BYGKv172iFgF6i663EkPrFg712KQjy1VH7YEeRkok1ySuUmItnoLvAGIVS2xbf1G
ZjMKDbSTHvUY8EKbZsQpSwAYihxOR8hkcKTVRWZVkY5KfYFb1B/z3RHCia7ueZyu
NNy8nvrJVWFNu6jdZCqUYtkCgYB38QBMa3BHvF/lsmAWIcZcb2l62QGeiHmm6SM0
ehRppGGpd6eqLN8vimoNqMmxFyijIgaAibzFSSIZkHtYqs4QQNLv9BXqtOGLcxAK
CcChj1+FSWDFu+Agm4LMFHuamB9GxnjGp16Qmmnxm8/TrR2FwLDgUTAj9xXtm52I
GjwtdQKBgQCzx17tL3d/xM0d/9n8vAg5ntdcc/S3uhm5NsnlRwJAGrqbwopI+NE0
KF8lA2NBYEiyeMXe0YxAhuLgvBYZDUmgCW+iDNRPdIdCsf5iJdAA/Ql4QVqO8hM8
xoG8yNCn8hJ67vbM5FFSx81Kce2kAQRpX3ldf7yq83KiocNrkMiQtw==
-----END RSA PRIVATE KEY-----

15
dnscrypt-proxy/LICENSE Normal file
View File

@ -0,0 +1,15 @@
ISC License
Copyright (c) 2018-2021, Frank Denis <j at pureftpd dot org>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

Binary file not shown.

View File

@ -0,0 +1,395 @@
# #############################################
# #
# dnscrypt-proxy configuration #
# #
# #############################################
listen_addresses = [ "127.0.0.1:5533" ]
# # Maximum number of simultaneous client connections to accept
max_clients = 250
# # Switch to a different system user after listening sockets have been created.
# # Note (1): this feature is currently unsupported on Windows.
# # Note (2): this feature is not compatible with systemd socket activation.
# # Note (3): when using -pidfile, the PID file directory must be writable by the new user
# user_name = 'nobody'
# # Require servers (from remote sources) to satisfy specific properties
# Use servers reachable over IPv4
ipv4_servers = true
# Use servers reachable over IPv6 -- Do not enable if you don't have IPv6 connectivity
ipv6_servers = false
# Use servers implementing the DNSCrypt protocol
dnscrypt_servers = true
# Use servers implementing the DNS-over-HTTPS protocol
doh_servers = true
# Use servers implementing the Oblivious DoH protocol
odoh_servers = false
# # Require servers defined by remote sources to satisfy specific properties
# Server must support DNS security extensions (DNSSEC)
require_dnssec = false
# Server must not log user queries (declarative)
require_nolog = true
# Server must not enforce its own blocklist (for parental control, ads blocking...)
require_nofilter = true
# Server names to avoid even if they match all criteria
disabled_server_names = []
# # Always use TCP to connect to upstream servers.
# # This can be useful if you need to route everything through Tor.
# # Otherwise, leave this to `false`, as it doesn't improve security
# # (dnscrypt-proxy will always encrypt everything even using UDP), and can
# # only increase latency.
force_tcp = false
# # SOCKS proxy
# # Uncomment the following line to route all TCP connections to a local Tor node
# # Tor doesn't support UDP, so set `force_tcp` to `true` as well.
# proxy = 'socks5://127.0.0.1:9050'
# # HTTP/HTTPS proxy
# # Only for DoH servers
# http_proxy = 'http://127.0.0.1:8888'
# # How long a DNS query will wait for a response, in milliseconds.
# # If you have a network with *a lot* of latency, you may need to
# # increase this. Startup may be slower if you do so.
# # Don't increase it too much. 10000 is the highest reasonable value.
timeout = 5000
# # Keepalive for HTTP (HTTPS, HTTP/2) queries, in seconds
keepalive = 30
# # Add EDNS-client-subnet information to outgoing queries
# #
# # Multiple networks can be listed; they will be randomly chosen.
# # These networks don't have to match your actual networks.
# edns_client_subnet = ["0.0.0.0/0", "2001:db8::/32"]
# # Response for blocked queries. Options are `refused`, `hinfo` (default) or
# # an IP response. To give an IP response, use the format `a:<IPv4>,aaaa:<IPv6>`.
# # Using the `hinfo` option means that some responses will be lies.
# # Unfortunately, the `hinfo` option appears to be required for Android 8+
# blocked_query_response = 'refused'
# # Load-balancing strategy: 'p2' (default), 'ph', 'p<n>', 'first' or 'random'
# # Randomly choose 1 of the fastest 2, half, n, 1 or all live servers by latency.
# # The response quality still depends on the server itself.
# lb_strategy = 'p2'
# # Set to `true` to constantly try to estimate the latency of all the resolvers
# # and adjust the load-balancing parameters accordingly, or to `false` to disable.
# # Default is `true` that makes 'p2' `lb_strategy` work well.
# lb_estimator = true
# # Log level (0-6, default: 2 - 0 is very verbose, 6 only contains fatal errors)
# log_level = 2
# # Log file for the application, as an alternative to sending logs to
# # the standard system logging service (syslog/Windows event log).
# #
# # This file is different from other log files, and will not be
# # automatically rotated by the application.
# log_file = 'dnscrypt-proxy.log'
# # When using a log file, only keep logs from the most recent launch.
# log_file_latest = true
# # Use the system logger (syslog on Unix, Event Log on Windows)
# use_syslog = true
# # Delay, in minutes, after which certificates are reloaded
cert_refresh_delay = 240
# # DNSCrypt: Create a new, unique key for every single DNS query
# # This may improve privacy but can also have a significant impact on CPU usage
# # Only enable if you don't have a lot of network load
# dnscrypt_ephemeral_keys = false
# # DoH: Disable TLS session tickets - increases privacy but also latency
# tls_disable_session_tickets = false
# # DoH: Use a specific cipher suite instead of the server preference
# # 49199 = TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
# # 49195 = TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
# # 52392 = TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
# # 52393 = TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
# # 4865 = TLS_AES_128_GCM_SHA256
# # 4867 = TLS_CHACHA20_POLY1305_SHA256
# #
# # On non-Intel CPUs such as MIPS routers and ARM systems (Android, Raspberry Pi...),
# # the following suite improves performance.
# # This may also help on Intel CPUs running 32-bit operating systems.
# #
# # Keep tls_cipher_suite empty if you have issues fetching sources or
# # connecting to some DoH servers. Google and Cloudflare are fine with it.
# tls_cipher_suite = [52392, 49199]
# # Bootstrap resolvers
# #
# # These are normal, non-encrypted DNS resolvers, that will be only used
# # for one-shot queries when retrieving the initial resolvers list and if
# # the system DNS configuration doesn't work.
# #
# # No user queries will ever be leaked through these resolvers, and they will
# # not be used after IP addresses of DoH resolvers have been found (if you are
# # using DoH).
# #
# # They will never be used if lists have already been cached, and if the stamps
# # of the configured servers already include IP addresses (which is the case for
# # most of DoH servers, and for all DNSCrypt servers and relays).
# #
# # They will not be used if the configured system DNS works, or after the
# # proxy already has at least one usable secure resolver.
# #
# # Resolvers supporting DNSSEC are recommended, and, if you are using
# # DoH, bootstrap resolvers should ideally be operated by a different entity
# # than the DoH servers you will be using, especially if you have IPv6 enabled.
# #
# # People in China may want to use 114.114.114.114:53 here.
# # Other popular options include 8.8.8.8, 9.9.9.9 and 1.1.1.1.
# #
# # If more than one resolver is specified, they will be tried in sequence.
# #
# # TL;DR: put valid standard resolver addresses here. Your actual queries will
# # not be sent there. If you're using DNSCrypt or Anonymized DNS and your
# # lists are up to date, these resolvers will not even be used.
bootstrap_resolvers = [ '9.9.9.9:53', '8.8.8.8:53' ]
# # Always use the bootstrap resolver before the system DNS settings.
ignore_system_dns = true
# # Maximum time (in seconds) to wait for network connectivity before
# # initializing the proxy.
# # Useful if the proxy is automatically started at boot, and network
# # connectivity is not guaranteed to be immediately available.
# # Use 0 to not test for connectivity at all (not recommended),
# # and -1 to wait as much as possible.
netprobe_timeout = 60
# # Address and port to try initializing a connection to, just to check
# # if the network is up. It can be any address and any port, even if
# # there is nothing answering these on the other side. Just don't use
# # a local address, as the goal is to check for Internet connectivity.
# # On Windows, a datagram with a single, nul byte will be sent, only
# # when the system starts.
# # On other operating systems, the connection will be initialized
# # but nothing will be sent at all.
netprobe_address = '9.9.9.9:53'
# # Offline mode - Do not use any remote encrypted servers.
# # The proxy will remain fully functional to respond to queries that
# # plugins can handle directly (forwarding, cloaking, ...)
# offline_mode = false
# # Additional data to attach to outgoing queries.
# # These strings will be added as TXT records to queries.
# # Do not use, except on servers explicitly asking for extra data
# # to be present.
# # encrypted-dns-server can be configured to use this for access control
# # in the [access_control] section
# query_meta = ['key1:value1', 'key2:value2', 'token:MySecretToken']
# # Automatic log files rotation
# Maximum log files size in MB - Set to 0 for unlimited.
log_files_max_size = 10
# How long to keep backup files, in days
log_files_max_age = 7
# Maximum log files backups to keep (or 0 to keep all backups)
log_files_max_backups = 1
# ########################
# Filters #
# ########################
# # Note: if you are using dnsmasq, disable the `dnssec` option in dnsmasq if you
# # configure dnscrypt-proxy to do any kind of filtering (including the filters
# # below and blocklists).
# # You can still choose resolvers that do DNSSEC validation.
# # Immediately respond to IPv6-related queries with an empty response
# # This makes things faster when there is no IPv6 connectivity, but can
# # also cause reliability issues with some stub resolvers.
block_ipv6 = false
# # Immediately respond to A and AAAA queries for host names without a domain name
block_unqualified = true
# # Immediately respond to queries for local zones instead of leaking them to
# # upstream resolvers (always causing errors or timeouts).
block_undelegated = true
# # TTL for synthetic responses sent when a request has been blocked (due to
# # IPv6 or blocklists).
reject_ttl = 10
# #################################################################################
# Route queries for specific domains to a dedicated set of servers #
# #################################################################################
# # See the `example-forwarding-rules.txt` file for an example
# forwarding_rules = 'forwarding-rules.txt'
# ##############################
# Cloaking rules #
# ##############################
# # Cloaking returns a predefined address for a specific name.
# # In addition to acting as a HOSTS file, it can also return the IP address
# # of a different name. It will also do CNAME flattening.
# #
# # See the `example-cloaking-rules.txt` file for an example
# cloaking_rules = 'cloaking-rules.txt'
# # TTL used when serving entries in cloaking-rules.txt
# cloak_ttl = 600
# ##########################
# DNS cache #
# ##########################
# # Enable a DNS cache to reduce latency and outgoing traffic
cache = true
# # Cache size
cache_size = 4096
cache_min_ttl = 60
cache_max_ttl = 120
cache_neg_min_ttl = 60
cache_neg_max_ttl = 120
log_level = 6
lb_strategy = "ph"
# # dnscrypt-proxy can act as a local DoH server. By doing so, web browsers
# # requiring a direct connection to a DoH server in order to enable some
# # features will enable these, without bypassing your DNS proxy.
# # Addresses that the local DoH server should listen to
# listen_addresses = ['127.0.0.1:3000']
# # Path of the DoH URL. This is not a file, but the part after the hostname
# # in the URL. By convention, `/dns-query` is frequently chosen.
# # For each `listen_address` the complete URL to access the server will be:
# # `https://<listen_address><path>` (ex: `https://127.0.0.1/dns-query`)
# path = '/dns-query'
# # Certificate file and key - Note that the certificate has to be trusted.
# # See the documentation (wiki) for more information.
# cert_file = 'localhost.pem'
# cert_key_file = 'localhost.pem'
# ##############################
# Query logging #
# ##############################
# # Log client queries to a file
[query_log]
# # Path to the query log file (absolute, or relative to the same directory as the config file)
# # Can be set to /dev/stdout in order to log to the standard output.
# file = 'query.log'
# # Query log format (currently supported: tsv and ltsv)
format = 'tsv'
# # Do not log these query types, to reduce verbosity. Keep empty to log everything.
# ignored_qtypes = ['DNSKEY', 'NS']
# ###########################################
# Suspicious queries logging #
# ###########################################
# # Log queries for nonexistent zones
# # These queries can reveal the presence of malware, broken/obsolete applications,
# # and devices signaling their presence to 3rd parties.
[nx_log]
# # Path to the query log file (absolute, or relative to the same directory as the config file)
# file = 'nx.log'
# # Query log format (currently supported: tsv and ltsv)
format = 'tsv'
# [schedules.'time-to-sleep']
# mon = [{after='21:00', before='7:00'}]
# tue = [{after='21:00', before='7:00'}]
# wed = [{after='21:00', before='7:00'}]
# thu = [{after='21:00', before='7:00'}]
# fri = [{after='23:00', before='7:00'}]
# sat = [{after='23:00', before='7:00'}]
# sun = [{after='21:00', before='7:00'}]
# [schedules.'work']
# mon = [{after='9:00', before='18:00'}]
# tue = [{after='9:00', before='18:00'}]
# wed = [{after='9:00', before='18:00'}]
# thu = [{after='9:00', before='18:00'}]
# fri = [{after='9:00', before='17:00'}]
# ########################
# Servers #
# ########################
# # Remote lists of available servers
# # Multiple sources can be used simultaneously, but every source
# # requires a dedicated cache file.
# #
# # Refer to the documentation for URLs of public sources.
# #
# # A prefix can be prepended to server names in order to
# # avoid collisions if different sources share the same for
# # different servers. In that case, names listed in `server_names`
# # must include the prefixes.
# #
# # If the `urls` property is missing, cache files and valid signatures
# # must already be present. This doesn't prevent these cache files from
# # expiring after `refresh_delay` hours.
# # Cache freshness is checked every 24 hours, so values for 'refresh_delay'
# # of less than 24 hours will have no effect.
# # A maximum delay of 168 hours (1 week) is imposed to ensure cache freshness.
[sources]
# # An example of a remote source from https://github.com/DNSCrypt/dnscrypt-resolvers
[sources.public-resolvers]
urls = [ 'https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md', 'https://ipv6.download.dnscrypt.info/resolvers-list/v3/public-resolvers.md', 'https://download.dnscrypt.net/resolvers-list/v3/public-resolvers.md' ]
cache_file = 'public-resolvers.md'
minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
refresh_delay = 72
prefix = ''
# # Anonymized DNS relays
[sources.relays]
urls = [ 'https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/relays.md', 'https://download.dnscrypt.info/resolvers-list/v3/relays.md', 'https://ipv6.download.dnscrypt.info/resolvers-list/v3/relays.md', 'https://download.dnscrypt.net/resolvers-list/v3/relays.md' ]
cache_file = 'relays.md'
minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
refresh_delay = 72
prefix = ''
# # ODoH (Oblivious DoH) servers and relays
# [sources.'odoh-servers']
# urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/odoh-servers.md', 'https://download.dnscrypt.info/resolvers-list/v3/odoh-servers.md', 'https://ipv6.download.dnscrypt.info/resolvers-list/v3/odoh-servers.md', 'https://download.dnscrypt.net/resolvers-list/v3/odoh-servers.md']
# cache_file = 'odoh-servers.md'
# minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
# refresh_delay = 24
# prefix = ''
# [sources.'odoh-relays']
# urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/odoh-relays.md', 'https://download.dnscrypt.info/resolvers-list/v3/odoh-relays.md', 'https://ipv6.download.dnscrypt.info/resolvers-list/v3/odoh-relays.md', 'https://download.dnscrypt.net/resolvers-list/v3/odoh-relays.md']
# cache_file = 'odoh-relays.md'
# minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
# refresh_delay = 24
# prefix = ''
# # Quad9
# [sources.quad9-resolvers]
# urls = ['https://www.quad9.net/quad9-resolvers.md']
# minisign_key = 'RWQBphd2+f6eiAqBsvDZEBXBGHQBJfeG6G+wJPPKxCZMoEQYpmoysKUN'
# cache_file = 'quad9-resolvers.md'
# prefix = 'quad9-'
# # Another example source, with resolvers censoring some websites not appropriate for children
# # This is a subset of the `public-resolvers` list, so enabling both is useless
# [sources.'parental-control']
# urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/parental-control.md', 'https://download.dnscrypt.info/resolvers-list/v3/parental-control.md', 'https://ipv6.download.dnscrypt.info/resolvers-list/v3/parental-control.md', 'https://download.dnscrypt.net/resolvers-list/v3/parental-control.md']
# cache_file = 'parental-control.md'
# minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
# ########################################
# Servers with known bugs #
# ########################################
[broken_implementations]
# Cisco servers currently cannot handle queries larger than 1472 bytes, and don't
# truncate reponses larger than questions as expected by the DNSCrypt protocol.
# This prevents large responses from being received over UDP and over relays.
#
# Older versions of the `dnsdist` server software had a bug with queries larger
# than 1500 bytes. This is fixed since `dnsdist` version 1.5.0, but
# some server may still run an outdated version.
#
# The list below enables workarounds to make non-relayed usage more reliable
# until the servers are fixed.
fragments_blocked = [ 'cisco', 'cisco-ipv6', 'cisco-familyshield', 'cisco-familyshield-ipv6', 'cleanbrowsing-adult', 'cleanbrowsing-adult-ipv6', 'cleanbrowsing-family', 'cleanbrowsing-family-ipv6', 'cleanbrowsing-security', 'cleanbrowsing-security-ipv6' ]
#
# creds = [
# { server_name='*', client_cert='client.crt', client_key='client.key' }
# ]
# ###############################
# Anonymized DNS #
# ###############################
[anonymized_dns]
# # Routes are indirect ways to reach DNSCrypt servers.
# #
# # A route maps a server name ("server_name") to one or more relays that will be
# # used to connect to that server.
# #
# # A relay can be specified as a DNS Stamp (either a relay stamp, or a
# # DNSCrypt stamp) or a server name.
# #
# # The following example routes "example-server-1" via `anon-example-1` or `anon-example-2`,
# # and "example-server-2" via the relay whose relay DNS stamp is
# # "sdns://gRIxMzcuNzQuMjIzLjIzNDo0NDM".
# #
# # !!! THESE ARE JUST EXAMPLES !!!
# #
# # Review the list of available relays from the "relays.md" file, and, for each
# # server you want to use, define the relays you want connections to go through.
# #
# # Carefully choose relays and servers so that they are run by different entities.
# #
# # "server_name" can also be set to "*" to define a default route, for all servers:
# # { server_name='*', via=['anon-example-1', 'anon-example-2'] }
# #
# # If a route is ["*"], the proxy automatically picks a relay on a distinct network.
# # { server_name='*', via=['*'] } is also an option, but is likely to be suboptimal.
# #
# # Manual selection is always recommended over automatic selection, so that you can
# # select (relay,server) pairs that work well and fit your own criteria (close by or
# # in different countries, operated by different entities, on distinct ISPs...)
# routes = [
# { server_name='example-server-1', via=['anon-example-1', 'anon-example-2'] },
# { server_name='example-server-2', via=['sdns://gRIxMzcuNzQuMjIzLjIzNDo0NDM'] }
# ]
# Skip resolvers incompatible with anonymization instead of using them directly
skip_incompatible = false

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,4 @@
untrusted comment: signature from minisign secret key
RWQf6LRCGA9i5983IlJLZNz+p4xrbaCtbtPEro9Fvidyy/eI6cWdP1dYrATCD6PbMrSX7QyLzKSyRjcoRLtaWCyDFz7Az+aB1Qk=
trusted comment: timestamp:1741012330 file:public-resolvers.md
jxECeEEfp5hRhoYoUrvmB7OrbWIenOz5oLIoWt77LiSTFLrM/zojiIgEpbdRUJNPqDR7kVdIu89oJ+aHrIrGAg==

2283
dnscrypt-proxy/relays.md Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,4 @@
untrusted comment: signature from minisign secret key
RWQf6LRCGA9i5wd6xJA/svAS1g//oZjkOCM8OZVX/YQhzA/SAY/Mfe0tZdoYiJYrJpBxL/8z/U1thhrLZLUxqnIvCpdHp8CPTQA=
trusted comment: timestamp:1741019027 file:relays.md
0B4fIVYpM5pc617/bOpgbfuHG7dOyHzRXdM2NLj9G0YCUDZ9U5iIB5s0r97LVecTrfmU4gbnZp6omM1a/xE/Cg==

142
dnsendpoints.json Normal file
View File

@ -0,0 +1,142 @@
[
{
"host": "collector.github.com",
"port": 443
},
{
"host": "marketplace.visualstudio.com",
"port": 443
},
{
"host": "canary.officeapps.live.com",
"port": 443
},
{
"host": "clientnotification-userprodscus1-1.servicebus.windows.net",
"port": 443
},
{
"host": "g.live.com",
"port": 443
},
{
"host": "avatars.githubusercontent.com",
"port": 443
},
{
"host": "codeload.github.com",
"port": 443
},
{
"host": "storage.live.com",
"port": 443
},
{
"host": "xpaywalletcdn-prod.azureedge.net",
"port": 443
},
{
"host": "github.com",
"port": 443
},
{
"host": "github.githubassets.com",
"port": 443
},
{
"host": "login.microsoftonline.com",
"port": 443
},
{
"host": "api.github.com",
"port": 443
},
{
"host": "api.vstsusers.visualstudio.com",
"port": 443
},
{
"host": "app.vssps.visualstudio.com",
"port": 443
},
{
"host": "raw.githubusercontent.com",
"port": 443
},
{
"host": "devtools.azureedge.net",
"port": 443
},
{
"host": "objects.githubusercontent.com",
"port": 443
},
{
"host": "xpaywalletcdn.azureedge.net",
"port": 443
},
{
"host": "mrodevicemgr.officeapps.live.com",
"port": 443
},
{
"host": "az667904.vo.msecnd.net",
"port": 443
},
{
"host": "login.live.com",
"port": 443
},
{
"host": "camo.githubusercontent.com",
"port": 443
},
{
"host": "private-user-images.githubusercontent.com",
"port": 443
},
{
"host": "edge-consumer-static.azureedge.net",
"port": 443
},
{
"host": "az700632.vo.msecnd.net",
"port": 443
},
{
"host": "gapis.geekzu.org",
"port": 443
},
{
"host": "fonts.geekzu.org",
"port": 443
},
{
"host": "secure.gravatar.com",
"port": 443
},
{
"host": "roaming.officeapps.live.com",
"port": 443
},
{
"host": "ocws.officeapps.live.com",
"port": 443
},
{
"host": "cdnjs.cloudflare.com",
"port": 443
},
{
"host": "odc.officeapps.live.com",
"port": 443
},
{
"host": "alive.github.com",
"port": 443
},
{
"host": "edgeassetservice.azureedge.net",
"port": 443
}
]

BIN
fastgithub.exe Normal file

Binary file not shown.

14828
logs/log20250108.txt Normal file

File diff suppressed because it is too large Load Diff

14405
logs/log20250110.txt Normal file

File diff suppressed because it is too large Load Diff

12066
logs/log20250111.txt Normal file

File diff suppressed because it is too large Load Diff

11374
logs/log20250228.txt Normal file

File diff suppressed because it is too large Load Diff

5412
logs/log20250309.txt Normal file

File diff suppressed because it is too large Load Diff

20762
logs/log20250316.txt Normal file

File diff suppressed because it is too large Load Diff

9926
logs/log20250323.txt Normal file

File diff suppressed because it is too large Load Diff