请问有没有办法让 Linux 访问到 github 的时候自动添加加速域名?

2022-02-27 11:00:35 +08:00
 ciki

比如只要检测到访问 github 地址就自动在 url 前面加上 https://mirror.ghproxy.com/

4109 次点击
所在节点    程序员
22 条回复
villivateur
2022-02-27 11:16:56 +08:00
在路由器上做个劫持吧,其他没啥好的方案
learningman
2022-02-27 11:25:44 +08:00
考虑到 https ,劫持都不好做,还是弄个梯子吧
teekgeek
2022-02-27 11:33:33 +08:00
Sainnhepark
2022-02-27 11:38:42 +08:00
mingl0280
2022-02-27 12:02:04 +08:00
装个 Windows 用 proxifier
sujin190
2022-02-27 12:05:01 +08:00
一种可行的方案就是自己弄个根证书签个私有的 github 证书,然后设置 github.com 解析都 127.0.0.1 ,然后在本机配置 nginx 转发到 https://mirror.ghproxy.com/估计行

不过似乎太麻烦了吧,简单一点为 github.com 在 hosts 中设置一个固定地址,然后配置 iptables 配置地址端口重写把该地址的流量转到你的加速代理就好了吧,为了把普通流量解析成代理协议,之前写过一个脚本
python3 -m sevent.helpers.arproxy -h
先 pip install sevent 包,这个脚本会解析 http 和 tls 头提取访问域名,然后使用你指定的代理协议转发到你配置的代理服务器来代理访问,你可以试试看能不能满足你的需求
yin1999
2022-02-27 12:14:09 +08:00
用浏览器插件最方便,你可以看看这个插件行不行 https://chrome.google.com/webstore/detail/requestly-modify-headers/mdnleldcmiljblolnjhpnblkcekpdkpa

不行就按 google 跳转到 cn 站点的插件改写一下 https://github.com/chenzhuo914/google-cn-devsites-extension
yin1999
2022-02-27 12:35:19 +08:00
@yin1999 不好意思,好像没考虑到命令行
wangyu17455
2022-02-27 12:40:50 +08:00
fake-ip ,劫持本机 dns 然后把 github 解析到 198 之类的非公网地址上,然后在本机注册一个 tun 设备处理这些流量给它加代理(没错我说的就是 clash 的 tun 模式)
stille
2022-02-27 14:28:24 +08:00
如果是脚本里,可以来个判断.

```
PROXY_URL="https://ghproxy.com"
GOOGLE_HTTP_CODE=$(curl -o /dev/null --connect-timeout 5 --max-time 8 -s --head -w "%{http_code}" "https://www.google.com")
PROXY_HTTP_CODE=$(curl -o /dev/null --connect-timeout 5 --max-time 8 -s --head -w "%{http_code}" "${PROXY_URL}")

if [ $GOOGLE_HTTP_CODE == "200" ]; then
curl -L -O https://raw.githubusercontent.com/.../.../...
else
if [ $PROXY_HTTP_CODE == "200" ]; then
curl -L -O ${PROXY_URL}https://raw.githubusercontent.com/.../.../...
else
curl -L -O https://raw.githubusercontent.com/.../.../...
fi
fi
```
stille
2022-02-27 14:29:15 +08:00
接上文,变量少个 /

PROXY_URL="https://ghproxy.com/"
mingl0280
2022-02-27 15:12:10 +08:00
我刚刚闲得蛋疼想了下还有另外一个办法,稍微有点复杂,需要几个服务:
1.dns 服务器,或者 hosts……不管哪种,把 URL 解析到要么本机或者专门的内网虚拟机。建议后者,前者容易抽风。
2.apache 或者 nginx (反正某种 web 服务器)开启 URL Rewrite 模块,配置重写 URL 规则( rewrite 到你要的域名)。http 和 https 都要配置。注意:这台机器的 DNS 不可访问或请求上面 1 的 DNS 。
3.用于给 2 的服务使用的、自己添加信任的 SSL 证书,用于支持 2 的 https 访问。
这样搞一下应该可以实现无痕转发(就是你访问 github.com 实际上被 dns 先劫持到本地的服务器,然后本地的服务器反代到加速网址)。我以前用 Windows server 搞过内网部分劫持 ubuntu 源加速就用的这个类似的手法,只是我的 HTTP 服务器就在本地,所以没有做反向代理。
lB2cGz9OQ1agw7XK
2022-02-27 16:34:37 +08:00
直接用 clash 翻墙不就行了吗?
janus77
2022-02-27 17:04:47 +08:00
没必要 全程梯子就行了
kingcanfish
2022-02-27 20:17:02 +08:00
都上 V2EX 了 还用教怎么魔法上 github 吗?
GoodRui
2022-02-27 21:47:29 +08:00
initd
2022-02-27 23:52:08 +08:00
git 源
GIT_SSL_NO_VERIFY=1 git clone https://gh-cf.mirr.one/bot-h/kodbox.git
GIT_SSL_NO_VERIFY=1 git clone https://gh.gcdn.mirr.one/bot-h/kodbox.git

githubusercontent 全域
`.githubusercontent.com` -> `-gh.mirr.one`

https://raw-gh.mirr.one/initdc/vvtt/master/gen.sh

github 到 ghuser 自动跳转
https://gh-rep.mirr.one/initdc/vvtt/raw/master/gen.sh
initd
2022-02-27 23:54:18 +08:00
githubusercontent 全域
.githubusercontent.com -> -ghuser.mirr.one

https://raw-ghuser.mirr.one/initdc/vvtt/master/gen.sh
irainsoft
2022-02-28 08:55:59 +08:00
这种另类需求只有挂代理最简单,做劫持只会更麻烦。命令行下装个图形界面,再上个代理程序其实很快就能解决问题
scukmh
2022-02-28 10:57:56 +08:00
为啥不能挂代理呢?根本不需要装图形界面,直接一个 clash-core 就能解决问题,而且也不用服务器全局走代理工作,你只需要在下载脚本之前,export 环境变量就行了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/836681

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX