From f9cfa4b9e356e46069cedf7a7b55f0242f9df621 Mon Sep 17 00:00:00 2001 From: xueweihan <595666367@qq.com> Date: Tue, 22 Nov 2022 14:13:08 +0800 Subject: [PATCH] update --- README.md | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++ fetch_ips.py | 46 +++++++------ hosts | 39 ++++++++++- hosts.json | 1 + 4 files changed, 239 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index e69de29bb..dbe8de184 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,178 @@ +# GitHub520 +

+ +
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。
兴趣是最好的老师,这里能够帮你找到编程的兴趣! +

+ +[raw.hellogithub.com](https://raw.hellogithub.com/) 服务器续费了 3 年到 2024.12 共花了:1500+💰 + +有余粮的朋友[点击扫码赞助](https://cdn.jsdelivr.net/gh/521xueweihan/img_logo@main/logo/receiving_code.png),感谢🙏 + +## 一、介绍 +对 GitHub 说"爱"太难了:访问慢、图片加载不出来。 + +*注:* 本项目还处于测试阶段,仅在本机测试通过,如有问题欢迎提 [issues](https://github.com/521xueweihan/GitHub520/issues/new) + +--- + +本项目无需安装任何程序,通过修改本地 hosts 文件,试图解决: +- GitHub 访问速度慢的问题 +- GitHub 项目中的图片显示不出的问题 + +花 5 分钟时间,让你"爱"上 GitHub。 + +## 二、使用方法 + +### 2.1 复制下面的内容 +```bash +# GitHub520 Host Start +140.82.114.25 alive.github.com +140.82.114.5 api.github.com +185.199.108.153 assets-cdn.github.com +185.199.109.133 avatars.githubusercontent.com +185.199.109.133 avatars0.githubusercontent.com +185.199.109.133 avatars1.githubusercontent.com +185.199.109.133 avatars2.githubusercontent.com +185.199.109.133 avatars3.githubusercontent.com +185.199.109.133 avatars4.githubusercontent.com +185.199.109.133 avatars5.githubusercontent.com +185.199.110.133 camo.githubusercontent.com +140.82.114.22 central.github.com +185.199.109.133 cloud.githubusercontent.com +140.82.113.10 codeload.github.com +140.82.113.22 collector.github.com +185.199.109.133 desktop.githubusercontent.com +185.199.109.133 favicons.githubusercontent.com +140.82.114.3 gist.github.com +54.231.236.105 github-cloud.s3.amazonaws.com +52.217.131.145 github-com.s3.amazonaws.com +52.217.166.25 github-production-release-asset-2e65be.s3.amazonaws.com +52.217.140.201 github-production-repository-file-5c1aeb.s3.amazonaws.com +52.217.72.20 github-production-user-asset-6210df.s3.amazonaws.com +192.0.66.2 github.blog +140.82.114.4 github.com +140.82.114.18 github.community +185.199.108.154 github.githubassets.com +151.101.65.194 github.global.ssl.fastly.net +185.199.111.153 github.io +185.199.109.133 github.map.fastly.net +185.199.108.153 githubstatus.com +140.82.114.26 live.github.com +185.199.109.133 media.githubusercontent.com +185.199.109.133 objects.githubusercontent.com +13.107.42.16 pipelines.actions.githubusercontent.com +185.199.109.133 raw.githubusercontent.com +185.199.109.133 user-images.githubusercontent.com +13.107.213.51 vscode.dev + + +# Update time: 2022-11-22T06:12:56+08:00 +# Update url: https://raw.hellogithub.com/hosts +# Star me: https://github.com/521xueweihan/GitHub520 +# GitHub520 Host End + +``` + +上面内容会自动定时更新,保证最新有效。数据更新时间:2022-11-22T06:12:56+08:00(内容无变动不会更新) + +- 文件:`https://raw.hellogithub.com/hosts` +- JSON:`https://raw.hellogithub.com/hosts.json` + +### 2.1 手动方式 + +#### 2.1.1 修改 hosts 文件 +hosts 文件在每个系统的位置不一,详情如下: +- Windows 系统:`C:\Windows\System32\drivers\etc\hosts` +- Linux 系统:`/etc/hosts` +- Mac(苹果电脑)系统:`/etc/hosts` +- Android(安卓)系统:`/system/etc/hosts` +- iPhone(iOS)系统:`/etc/hosts` + +修改方法,把第一步的内容复制到文本末尾: + +1. Windows 使用记事本。 +2. Linux、Mac 使用 Root 权限:`sudo vi /etc/hosts`。 +3. iPhone、iPad 须越狱、Android 必须要 root。 + +#### 2.1.2 激活生效 +大部分情况下是直接生效,如未生效可尝试下面的办法,刷新 DNS: + +1. Windows:在 CMD 窗口输入:`ipconfig /flushdns` + +2. Linux 命令:`sudo nscd restart`,如报错则须安装:`sudo apt install nscd` 或 `sudo /etc/init.d/nscd restart` + +3. Mac 命令:`sudo killall -HUP mDNSResponder` + +**Tips:** 上述方法无效可以尝试重启机器。 + +### 2.2 自动方式 + +**Tip**:推荐 [SwitchHosts](https://github.com/oldj/SwitchHosts) 工具管理 hosts + +以 SwitchHosts 为例,看一下怎么使用的,配置参考下面: + +- Title: 随意 + +- Type: `Remote` + +- URL: `https://raw.hellogithub.com/hosts` + +- Auto Refresh: 最好选 `1 hour` + +如图: + +![](./img/switch-hosts.png) + +这样每次 hosts 有更新都能及时进行更新,免去手动更新。 + +### 2.3 One-liner (适用于类Unix系统) + +`sed -i "/# GitHub520 Host Start/Q" /etc/hosts && curl https://raw.hellogithub.com/hosts >> /etc/hosts` +自动更新`/etc/hosts`文件,可以添加到cron定时执行。使用前确保Github520内容在该文件最后部分。 + +### 2.4 AdGuard Home 用户(自动方式) + +在 **过滤器>DNS 封锁清单>添加阻止列表>添加一个自定义列表**,配置如下: + +- 名称: 随意 + +- URL: `https://raw.hellogithub.com/hosts`(和上面 SwitchHosts 使用的一样) + +如图: + +![](./img/AdGuard-rules.png) + +更新间隔在 **设置>常规设置>过滤器更新间隔(设置一小时一次即可)**,记得勾选上 **使用过滤器和 Hosts 文件以拦截指定域名** + +![](./img/AdGuard-rules2.png) + +**Tip**:不要添加在 **DNS 允许清单** 内,只能添加在 **DNS 封锁清单** 才管用。另外,AdGuard for Mac、AdGuard for Windows、AdGuard for Android、AdGuard for IOS 等等 **AdGuard 家族软件** 添加方法均类似。 + +### 2.5 Chrome 插件方式 + +[FasterHosts](https://github.com/gauseen/faster-hosts) 是个 Chrome 插件,主要原理是拦截浏览器的某些请求,将 `domain` 替换成访问速度较快的那个。hosts 资源来自 [GitHub520](https://github.com/521xueweihan/GitHub520),每 1 小时更新一次。 + +> 1. 下载 [FasterHosts](https://github.com/gauseen/faster-hosts/archive/master.zip) 然后解压,找到 `extension` 子目录 +> 2. 打开 Chrome,输入: `chrome://extensions/` +> 3. 打开「开发者模式」 +> 4. 选择「加载已解压的扩展程序」,然后定位到刚才解压的文件夹里面的 `extension` 目录,确定 +> 5. 这就安装好了,关闭「开发者模式」 + +## 三、效果对比 +之前的样子: + +![](./img/old.png) + +修改完 hosts 的样子: + +![](./img/new.png) + + +## TODO +- [x] 定时自动更新 hosts 内容 +- [x] hosts 内容无变动不会更新 +- [x] 寻到最优 IP 解析结果 + + +## 声明 +知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 diff --git a/fetch_ips.py b/fetch_ips.py index eaba3f490..39f7144be 100644 --- a/fetch_ips.py +++ b/fetch_ips.py @@ -16,31 +16,31 @@ from pythonping import ping from requests_html import HTMLSession from retry import retry -GITHUB_URLS = [ - 'alive.github.com' -] - # GITHUB_URLS = [ -# 'alive.github.com', 'api.github.com', 'assets-cdn.github.com', -# 'avatars.githubusercontent.com', 'avatars0.githubusercontent.com', -# 'avatars1.githubusercontent.com', 'avatars2.githubusercontent.com', -# 'avatars3.githubusercontent.com', 'avatars4.githubusercontent.com', -# 'avatars5.githubusercontent.com', 'camo.githubusercontent.com', -# 'central.github.com', 'cloud.githubusercontent.com', 'codeload.github.com', -# 'collector.github.com', 'desktop.githubusercontent.com', -# 'favicons.githubusercontent.com', 'gist.github.com', -# 'github-cloud.s3.amazonaws.com', 'github-com.s3.amazonaws.com', -# 'github-production-release-asset-2e65be.s3.amazonaws.com', -# 'github-production-repository-file-5c1aeb.s3.amazonaws.com', -# 'github-production-user-asset-6210df.s3.amazonaws.com', 'github.blog', -# 'github.com', 'github.community', 'github.githubassets.com', -# 'github.global.ssl.fastly.net', 'github.io', 'github.map.fastly.net', -# 'githubstatus.com', 'live.github.com', 'media.githubusercontent.com', -# 'objects.githubusercontent.com', 'pipelines.actions.githubusercontent.com', -# 'raw.githubusercontent.com', 'user-images.githubusercontent.com', -# 'vscode.dev' +# 'alive.github.com' # ] +GITHUB_URLS = [ + 'alive.github.com', 'api.github.com', 'assets-cdn.github.com', + 'avatars.githubusercontent.com', 'avatars0.githubusercontent.com', + 'avatars1.githubusercontent.com', 'avatars2.githubusercontent.com', + 'avatars3.githubusercontent.com', 'avatars4.githubusercontent.com', + 'avatars5.githubusercontent.com', 'camo.githubusercontent.com', + 'central.github.com', 'cloud.githubusercontent.com', 'codeload.github.com', + 'collector.github.com', 'desktop.githubusercontent.com', + 'favicons.githubusercontent.com', 'gist.github.com', + 'github-cloud.s3.amazonaws.com', 'github-com.s3.amazonaws.com', + 'github-production-release-asset-2e65be.s3.amazonaws.com', + 'github-production-repository-file-5c1aeb.s3.amazonaws.com', + 'github-production-user-asset-6210df.s3.amazonaws.com', 'github.blog', + 'github.com', 'github.community', 'github.githubassets.com', + 'github.global.ssl.fastly.net', 'github.io', 'github.map.fastly.net', + 'githubstatus.com', 'live.github.com', 'media.githubusercontent.com', + 'objects.githubusercontent.com', 'pipelines.actions.githubusercontent.com', + 'raw.githubusercontent.com', 'user-images.githubusercontent.com', + 'vscode.dev' +] + HOSTS_TEMPLATE = """# GitHub520 Host Start {content} @@ -66,8 +66,6 @@ def write_file(hosts_content: str, update_time: str) -> bool: if old_hosts == hosts_content_hosts: print("host not change") return False - else: - return False with open(template_path, "r") as temp_fb: template_str = temp_fb.read() diff --git a/hosts b/hosts index 994b0a6bb..2a5c5ce39 100644 --- a/hosts +++ b/hosts @@ -1,8 +1,45 @@ # GitHub520 Host Start 140.82.114.25 alive.github.com +140.82.114.5 api.github.com +185.199.108.153 assets-cdn.github.com +185.199.109.133 avatars.githubusercontent.com +185.199.109.133 avatars0.githubusercontent.com +185.199.109.133 avatars1.githubusercontent.com +185.199.109.133 avatars2.githubusercontent.com +185.199.109.133 avatars3.githubusercontent.com +185.199.109.133 avatars4.githubusercontent.com +185.199.109.133 avatars5.githubusercontent.com +185.199.110.133 camo.githubusercontent.com +140.82.114.22 central.github.com +185.199.109.133 cloud.githubusercontent.com +140.82.113.10 codeload.github.com +140.82.113.22 collector.github.com +185.199.109.133 desktop.githubusercontent.com +185.199.109.133 favicons.githubusercontent.com +140.82.114.3 gist.github.com +54.231.236.105 github-cloud.s3.amazonaws.com +52.217.131.145 github-com.s3.amazonaws.com +52.217.166.25 github-production-release-asset-2e65be.s3.amazonaws.com +52.217.140.201 github-production-repository-file-5c1aeb.s3.amazonaws.com +52.217.72.20 github-production-user-asset-6210df.s3.amazonaws.com +192.0.66.2 github.blog +140.82.114.4 github.com +140.82.114.18 github.community +185.199.108.154 github.githubassets.com +151.101.65.194 github.global.ssl.fastly.net +185.199.111.153 github.io +185.199.109.133 github.map.fastly.net +185.199.108.153 githubstatus.com +140.82.114.26 live.github.com +185.199.109.133 media.githubusercontent.com +185.199.109.133 objects.githubusercontent.com +13.107.42.16 pipelines.actions.githubusercontent.com +185.199.109.133 raw.githubusercontent.com +185.199.109.133 user-images.githubusercontent.com +13.107.213.51 vscode.dev -# Update time: 2022-11-22T05:53:41+08:00 +# Update time: 2022-11-22T06:12:56+08:00 # Update url: https://raw.hellogithub.com/hosts # Star me: https://github.com/521xueweihan/GitHub520 # GitHub520 Host End diff --git a/hosts.json b/hosts.json index e69de29bb..b63bc082a 100644 --- a/hosts.json +++ b/hosts.json @@ -0,0 +1 @@ +[["140.82.114.25", "alive.github.com"], ["140.82.114.5", "api.github.com"], ["185.199.108.153", "assets-cdn.github.com"], ["185.199.109.133", "avatars.githubusercontent.com"], ["185.199.109.133", "avatars0.githubusercontent.com"], ["185.199.109.133", "avatars1.githubusercontent.com"], ["185.199.109.133", "avatars2.githubusercontent.com"], ["185.199.109.133", "avatars3.githubusercontent.com"], ["185.199.109.133", "avatars4.githubusercontent.com"], ["185.199.109.133", "avatars5.githubusercontent.com"], ["185.199.110.133", "camo.githubusercontent.com"], ["140.82.114.22", "central.github.com"], ["185.199.109.133", "cloud.githubusercontent.com"], ["140.82.113.10", "codeload.github.com"], ["140.82.113.22", "collector.github.com"], ["185.199.109.133", "desktop.githubusercontent.com"], ["185.199.109.133", "favicons.githubusercontent.com"], ["140.82.114.3", "gist.github.com"], ["54.231.236.105", "github-cloud.s3.amazonaws.com"], ["52.217.131.145", "github-com.s3.amazonaws.com"], ["52.217.166.25", "github-production-release-asset-2e65be.s3.amazonaws.com"], ["52.217.140.201", "github-production-repository-file-5c1aeb.s3.amazonaws.com"], ["52.217.72.20", "github-production-user-asset-6210df.s3.amazonaws.com"], ["192.0.66.2", "github.blog"], ["140.82.114.4", "github.com"], ["140.82.114.18", "github.community"], ["185.199.108.154", "github.githubassets.com"], ["151.101.65.194", "github.global.ssl.fastly.net"], ["185.199.111.153", "github.io"], ["185.199.109.133", "github.map.fastly.net"], ["185.199.108.153", "githubstatus.com"], ["140.82.114.26", "live.github.com"], ["185.199.109.133", "media.githubusercontent.com"], ["185.199.109.133", "objects.githubusercontent.com"], ["13.107.42.16", "pipelines.actions.githubusercontent.com"], ["185.199.109.133", "raw.githubusercontent.com"], ["185.199.109.133", "user-images.githubusercontent.com"], ["13.107.213.51", "vscode.dev"]] \ No newline at end of file