FastGithub/README.html
2021-11-01 13:44:33 +08:00

430 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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">2.1 windows-x64</h4>
<ul>
<li>双击运行FastGithub.UI.exe</li>
</ul>
<h4 id="22-linux-x64">2.2 linux-x64</h4>
<ul>
<li>执行<code>./fastgithub</code></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>
</ul>
<h4 id="23-macos-x64">2.3 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>
<h3 id="3-%E5%8A%A0%E9%80%9F%E5%8E%9F%E7%90%86">3 加速原理</h3>
<h4 id="31-windows">3.1 windows</h4>
<ol>
<li>客户端访问<code>https://github.com</code></li>
<li>客户端向dns查询github.com的ipFastGithub拦截dns数据包并伪造解析结果为127.0.0.1</li>
<li>客户端请求到FastGithub的<code>https://127.0.0.1:443</code></li>
<li>FastGithub使用fastgithub.cer颁发服务器证书给客户端</li>
<li>FastGithub查询和计算github.com最快的ip</li>
<li>FastGithub与github.com进行无sni的tls连接</li>
<li>FastGithub将请求反向代理到<code>https://github.com</code></li>
</ol>
<h4 id="32-linuxosx">3.2 linux/osx</h4>
<ol>
<li>客户端访问<code>https://github.com</code></li>
<li>客户端使用fagithub的代理端口38457代理请求</li>
<li>FastGithub将代理的流量请求到自身的反向代理服务</li>
<li>FastGithub使用fastgithub.cer颁发服务器证书给客户端</li>
<li>FastGithub查询和计算github.com最快的ip</li>
<li>FastGithub与github.com进行无sni的tls连接</li>
<li>FastGithub将请求反向代理到<code>https://github.com</code></li>
</ol>
<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>