Signed-off-by: sairate <sairate@sina.cn>
This commit is contained in:
commit
f4a639ecb2
BIN
FastGithub.UI.exe
Normal file
BIN
FastGithub.UI.exe
Normal file
Binary file not shown.
6
FastGithub.UI.exe.config
Normal file
6
FastGithub.UI.exe.config
Normal 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
21
LICENSE
Normal 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
431
README.html
Normal 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&jump_from=webapi">307306673</a> [已满]</li>
|
||||
<li>Q群2 <a href="https://qm.qq.com/cgi-bin/qm/qr?k=6BBJ1nrJwe1o1E4-NJfwSOP-C4sMGc4q&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>
|
||||
设置->隐私与安全->证书->查看证书->证书颁发机构,导入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
59
README.md
Normal 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
37
appsettings.json
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
// 新增的子配置文件appsettings.*.json,重启应用程序才生效
|
||||
"FastGithub": {
|
||||
"HttpProxyPort": 38457, // http代理端口,linux/osx平台使用
|
||||
"FallbackDns": [ // 以下dns必须要支持tcp
|
||||
"8.8.8.8:53",
|
||||
"119.29.29.29:53",
|
||||
"114.114.114.114:53"
|
||||
],
|
||||
"DomainConfigs": {
|
||||
"*.fastgithub.com": { // 域名的*表示除.之外0到多个任意字符
|
||||
"TlsSni": false, // 指示tls握手时是否发送SNI
|
||||
"TlsSniPattern": null, // SNI表达式,@domain变量表示取域名值 @ipaddress变量表示取ip @random变量表示取随机值,其它字符保留不替换
|
||||
"TlsIgnoreNameMismatch": false, // 是否忽略服务器证书域名不匹配,当不发送SNI时服务器可能发回域名不匹配的证书,默认为false
|
||||
"Timeout": null, // 请求超时时长,格式为"00:02:00",默认为null
|
||||
"IPAddress": null, // 请求的ip,默认为null
|
||||
"Destination": null, // 请求目的地,格式为绝对或相对Uri,默认null
|
||||
"Response": { // 阻断请求直接响应,设置了Response其它配置都不起作用了
|
||||
"StatusCode": 404, // 响应的状态码
|
||||
"ContentType": "text/plain;charset=utf-8", // 如果有ContentValue,就要指示ContentType
|
||||
"ContentValue": "这是一个用于示范配置的域名" // 自定义返回的内容,这是可选的
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Serilog": {
|
||||
"MinimumLevel": {
|
||||
"Default": "Information",
|
||||
"Override": {
|
||||
"Yarp": "Warning",
|
||||
"System": "Warning",
|
||||
"Microsoft": "Warning",
|
||||
"Microsoft.AspNetCore.Server.Kestrel": "Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
12
appsettings/appsettings.amazonaws.json
Normal file
12
appsettings/appsettings.amazonaws.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"FastGithub": {
|
||||
"DomainConfigs": {
|
||||
"s3.amazonaws.com": {
|
||||
"TlsIgnoreNameMismatch": true
|
||||
},
|
||||
"*.s3.amazonaws.com": {
|
||||
"TlsIgnoreNameMismatch": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
13
appsettings/appsettings.bootcss.json
Normal file
13
appsettings/appsettings.bootcss.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"FastGithub": {
|
||||
"DomainConfigs": {
|
||||
"*.cloudflare.com": {
|
||||
"TlsSni": true
|
||||
},
|
||||
"cdn.bootcss.com": {
|
||||
"TlsSni": true,
|
||||
"Destination": "https://cdnjs.cloudflare.com/ajax/libs/"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
15
appsettings/appsettings.fastly.json
Normal file
15
appsettings/appsettings.fastly.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"FastGithub": {
|
||||
"DomainConfigs": {
|
||||
"*.fastly.net": {
|
||||
"TlsIgnoreNameMismatch": true
|
||||
},
|
||||
"*.*.fastly.net": {
|
||||
"TlsIgnoreNameMismatch": true
|
||||
},
|
||||
"*.*.*.fastly.net": {
|
||||
"TlsIgnoreNameMismatch": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
36
appsettings/appsettings.github.json
Normal file
36
appsettings/appsettings.github.json
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
25
appsettings/appsettings.google.json
Normal file
25
appsettings/appsettings.google.json
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
15
appsettings/appsettings.imgur.json
Normal file
15
appsettings/appsettings.imgur.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"FastGithub": {
|
||||
"DomainConfigs": {
|
||||
"imgur.com": {
|
||||
"TlsIgnoreNameMismatch": true
|
||||
},
|
||||
"*.imgur.com": {
|
||||
"TlsIgnoreNameMismatch": true
|
||||
},
|
||||
"*.*.imgur.com": {
|
||||
"TlsIgnoreNameMismatch": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
85
appsettings/appsettings.microsoft.json
Normal file
85
appsettings/appsettings.microsoft.json
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
12
appsettings/appsettings.packages.json
Normal file
12
appsettings/appsettings.packages.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"FastGithub": {
|
||||
"DomainConfigs": {
|
||||
"*.nuget.org": {
|
||||
"TlsSni": true
|
||||
},
|
||||
"*.maven.org": {
|
||||
"TlsSni": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
12
appsettings/appsettings.v2ex.json
Normal file
12
appsettings/appsettings.v2ex.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"FastGithub": {
|
||||
"DomainConfigs": {
|
||||
"v2ex.com": {
|
||||
"TlsSni": false
|
||||
},
|
||||
"*.v2ex.com": {
|
||||
"TlsSni": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
19
cacert/fastgithub.cer
Normal file
19
cacert/fastgithub.cer
Normal 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
27
cacert/fastgithub.key
Normal 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
15
dnscrypt-proxy/LICENSE
Normal 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.
|
||||
BIN
dnscrypt-proxy/dnscrypt-proxy.exe
Normal file
BIN
dnscrypt-proxy/dnscrypt-proxy.exe
Normal file
Binary file not shown.
395
dnscrypt-proxy/dnscrypt-proxy.toml
Normal file
395
dnscrypt-proxy/dnscrypt-proxy.toml
Normal 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
|
||||
4232
dnscrypt-proxy/public-resolvers.md
Normal file
4232
dnscrypt-proxy/public-resolvers.md
Normal file
File diff suppressed because it is too large
Load Diff
4
dnscrypt-proxy/public-resolvers.md.minisig
Normal file
4
dnscrypt-proxy/public-resolvers.md.minisig
Normal 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
2283
dnscrypt-proxy/relays.md
Normal file
File diff suppressed because it is too large
Load Diff
4
dnscrypt-proxy/relays.md.minisig
Normal file
4
dnscrypt-proxy/relays.md.minisig
Normal 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
142
dnsendpoints.json
Normal 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
BIN
fastgithub.exe
Normal file
Binary file not shown.
14828
logs/log20250108.txt
Normal file
14828
logs/log20250108.txt
Normal file
File diff suppressed because it is too large
Load Diff
14405
logs/log20250110.txt
Normal file
14405
logs/log20250110.txt
Normal file
File diff suppressed because it is too large
Load Diff
12066
logs/log20250111.txt
Normal file
12066
logs/log20250111.txt
Normal file
File diff suppressed because it is too large
Load Diff
11374
logs/log20250228.txt
Normal file
11374
logs/log20250228.txt
Normal file
File diff suppressed because it is too large
Load Diff
5412
logs/log20250309.txt
Normal file
5412
logs/log20250309.txt
Normal file
File diff suppressed because it is too large
Load Diff
20762
logs/log20250316.txt
Normal file
20762
logs/log20250316.txt
Normal file
File diff suppressed because it is too large
Load Diff
9926
logs/log20250323.txt
Normal file
9926
logs/log20250323.txt
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user