完善文档

This commit is contained in:
陈国伟 2021-09-15 10:23:26 +08:00
parent 40f50d9c42
commit 3628f4ff50
5 changed files with 415 additions and 39 deletions

View File

@ -31,7 +31,7 @@
<None Include="../README.md" Link="README.md">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="../README.pdf" Link="README.pdf">
<None Include="../README.html" Link="README.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="../LICENSE" Link="LICENSE">

View File

@ -1,7 +1,7 @@
{
// appsettings.*.json
"FastGithub": {
"HttpProxyPort": 2222, // httpwindows使
"HttpProxyPort": 38457, // httpwindows使
"DomainConfigs": {
"*.fastgithub.com": { // *.0
"TlsSni": false, // tlsSNI

405
README.html Normal file
View File

@ -0,0 +1,405 @@
<!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>
<p>如果不能下载<a href="https://github.com/dotnetcore/FastGithub">releases</a>里发布的程序可以到Q群<code>307306673</code>里面的群文件下载。</p>
<h3 id="2-%E9%83%A8%E7%BD%B2%E6%96%B9%E5%BC%8F">2 部署方式</h3>
<h4 id="21-windows%E6%9C%AC%E6%9C%BA">2.1 windows本机</h4>
<ul>
<li>双击运行FastGithub.exe程序</li>
<li><code>FastGithub.exe start</code> // 以windows服务安装并启动</li>
<li><code>FastGithub.exe stop</code> // 以windows服务卸载并删除</li>
</ul>
<h4 id="22-linux%E6%9C%AC%E6%9C%BA">2.2 linux本机</h4>
<ul>
<li>执行<code>sudo ./FastGithub</code></li>
<li>手工安装CACert/FastGithub.cer到受信任的根证书颁发机构</li>
<li>手工设置系统代理为http://127.0.0.1:38457或自动代理为http://127.0.0.1:38457/proxy.pac</li>
</ul>
<h4 id="23-macos%E6%9C%AC%E6%9C%BA">2.3 macOS本机</h4>
<ul>
<li>双击运行FastGithub程序</li>
<li>手工安装CACert/FastGithub.cer并设置信任</li>
<li>手工设置系统代理为http://127.0.0.1:38457或自动代理为http://127.0.0.1:38457/proxy.pac</li>
</ul>
<h3 id="3-%E8%AF%81%E4%B9%A6%E9%AA%8C%E8%AF%81">3 证书验证</h3>
<h4 id="31-git">3.1 git</h4>
<p>git操作提示<code>SSL certificate problem</code></br></p>
<p>需要关闭git的证书验证<code>git config --global http.sslverify false</code></p>
<h4 id="32-firefox">3.2 firefox</h4>
<p>firefox提示<code>连接有潜在的安全问题</code></br></p>
<p>设置-&gt;隐私与安全-&gt;证书-&gt;查看证书-&gt;证书颁发机构导入FastGithub.cer勾选信任由此证书颁发机构来标识网站</p>
<h3 id="4-%E5%AE%89%E5%85%A8%E6%80%A7%E8%AF%B4%E6%98%8E">4 安全性说明</h3>
<p>FastGithub为每台不同的主机生成自颁发CA证书保存在CACert文件夹下。客户端设备需要安装和无条件信任自颁发的CA证书请不要将证书私钥泄露给他人以免造成损失。</p>
<h3 id="5-%E5%90%88%E6%B3%95%E6%80%A7%E8%AF%B4%E6%98%8E">5 合法性说明</h3>
<p>《国际联网暂行规定》第六条规定:“计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其他信道进行国际联网。”
FastGithub本地代理使用的都是“公用电信网提供的国际出入口信道”从国外Github服务器到国内用户电脑上FastGithub程序的流量使用的是正常流量通道其间未对流量进行任何额外加密仅有网页原有的TLS加密区别于VPN的流量加密而FastGithub获取到网页数据之后发生的整个代理过程完全在国内不再适用国际互联网相关之规定。</p>
</body>
</html>

View File

@ -12,59 +12,30 @@ github加速神器解决github打不开、用户头像无法加载、releases
#### 2.2 linux本机
* 执行`sudo ./FastGithub`
* 手工添加127.0.0.1做为/etc/resolv.conf的第一条记录
* 手工安装CACert/FastGithub.cer到受信任的根证书颁发机构
* 手工设置系统代理为http://127.0.0.1:38457或自动代理为http://127.0.0.1:38457/proxy.pac
#### 2.3 macOS本机
* 双击运行FastGithub程序
* 手工添加127.0.0.1做为连接网络的DNS的第一条记录
* 手工安装CACert/FastGithub.cer并设置信任
* 手工设置系统代理为http://127.0.0.1:38457或自动代理为http://127.0.0.1:38457/proxy.pac
#### 2.4 局域网服务器
* 在局域网服务器运行FastGithub程序
* 手工将你电脑的主DNS设置为局域网服务器的ip
* 手工在你电脑安装FastGithub.cer到受信任的根证书颁发机构
### 3 应用冲突
#### 3.1 hosts文件
需要从hosts文件移除github相关域名的配置
#### 3.2 代理(proxy)
关闭代理或将浏览器和系统配置为不代理github相关域名
#### 3.3 浏览器安全DNS
关闭浏览器的安全DNS功能或将安全DNS设置为https://127.0.0.1
### 4 证书验证
#### 4.1 git
### 3 证书验证
#### 3.1 git
git操作提示`SSL certificate problem`</br>
需要关闭git的证书验证`git config --global http.sslverify false`
#### 4.2 firefox
#### 3.2 firefox
firefox提示`连接有潜在的安全问题`</br>
设置->隐私与安全->证书->查看证书->证书颁发机构导入FastGithub.cer勾选信任由此证书颁发机构来标识网站
### 5 加速原理
1 修改本机的dns服务指向FastGithub自身</br>
2 解析匹配的域名为FastGithub自身的ip</br>
3 请求安全dns服务(dnscrypt-proxy)获取域名的ip</br>
4 选择最优的ip进行ssh代理或https反向代理
### 6 协议列表
| 协议 | 资源标识 | 端口要求 | 用途 |
| ----- | --------------------- | ---------- | ---------------------------- |
| DNS | `udp://0.0.0.0:53` | 要求可用 | 解析配置的域名指向FastGithub |
| DoH | `https://0.0.0.0:443` | 要求可用 | 解析配置的域名指向FastGithub |
| HTTPS | `https://0.0.0.0:443` | 要求可用 | 反向代理https请求 |
| HTTP | `http://0.0.0.0:80` | 不要求可用 | 反向代理http请求 |
| SSH | `ssh://0.0.0.0:22` | 不要求可用 | 代理ssh请求到github |
### 7 安全性说明
### 4 安全性说明
FastGithub为每台不同的主机生成自颁发CA证书保存在CACert文件夹下。客户端设备需要安装和无条件信任自颁发的CA证书请不要将证书私钥泄露给他人以免造成损失。
### 8 合法性说明
### 5 合法性说明
《国际联网暂行规定》第六条规定:“计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其他信道进行国际联网。”
FastGithub本地代理使用的都是“公用电信网提供的国际出入口信道”从国外Github服务器到国内用户电脑上FastGithub程序的流量使用的是正常流量通道其间未对流量进行任何额外加密仅有网页原有的TLS加密区别于VPN的流量加密而FastGithub获取到网页数据之后发生的整个代理过程完全在国内不再适用国际互联网相关之规定。

Binary file not shown.