操作步骤:
打开终端
Command + 空格
聚焦搜索“终端”,打开应用。执行一键脚本
复制以下命令粘贴到终端运行(需输入密码授权):bash
sed -i "" "/# GitHub520 Host Start/,/# Github520 Host End/d" /etc/hosts && curl https://raw.hellogithub.com/hosts >> /etc/hosts
作用:
删除旧 GitHub520 规则
拉取最新 Hosts 配置追加到系统文件34
刷新 DNS 缓存
bash
sudo killall -HUP mDNSResponder # Monterey 及更新系统 sudo dscacheutil -flushcache # 可选,双重刷新:cite[2]:cite[4]
方法二:设置自动跟新host
在 Mac 上设置 GitHub520 自动更新
推荐使用官方提供的 Shell 脚本方案,这是最直接、最可靠的方法。
方法一:使用官方自动脚本(推荐)
这个方案通过一个 crontab
定时任务,每天自动从项目地址获取最新的 hosts 内容并刷新。
操作步骤
创建或下载自动更新脚本
首先,你需要一个能执行更新操作的脚本。你可以直接使用项目作者提供的脚本。打开终端(Terminal),依次执行以下命令:
bash
# 1. 进入你的用户目录(通常在 /Users/你的用户名/) cd ~# 2. 创建一个用于存放脚本的目录(如果已有其他目录也可) mkdir Scripts && cd Scripts# 3. 使用 curl 命令下载官方推荐的更新脚本 # 注意:在执行远程脚本前,最好先检查其内容是否安全 (https://github.com/521xueweihan/GitHub520/blob/main/hosts-tool.sh) curl -fsSL https://cdn.jsdelivr.net/gh/521xueweihan/GitHub520@main/hosts-tool.sh -o hosts-tool.sh# 4. 给下载的脚本赋予可执行权限 chmod +x hosts-tool.sh
(可选)手动运行一次脚本进行测试
在设置自动任务前,最好先手动执行一次,确保它能正常工作。bash
# 在终端中运行(需要sudo权限因为它要修改/etc/hosts) sudo ./hosts-tool.sh
输入你的管理员密码后,脚本会自动完成下载、替换和刷新 DNS 的全过程。如果终端没有报错,就说明成功了。你可以马上打开浏览器访问 GitHub 测试一下速度。
设置定时任务 (crontab)
crontab 是 Linux 和 macOS 系统自带的定时任务工具,可以让你定期自动执行脚本。在终端中输入以下命令来编辑当前用户的定时任务列表:
bash
crontab -e
如果你是第一次使用
crontab -e
,系统可能会让你选择一个编辑器。强烈建议选择nano
(输入它的序号即可),因为它最简单。
在打开的编辑器中,添加如下一行:
bash
# 每天中午12点自动运行更新脚本(请确保将 /path/to/ 替换为你实际存放 hosts-tool.sh 的路径!) 0 12 * * * sudo /bin/bash /path/to/your/Scripts/hosts-tool.sh >/dev/null 2>&1
重要:你必须将
/path/to/your/Scripts/
替换成真实的路径。如果你完全按照上面的步骤操作,路径通常是/Users/你的用户名/Scripts/hosts-tool.sh
。如果不确定路径,可以在终端中输入pwd
来查看当前所在目录的绝对路径。
在 nano 编辑器中的操作:
粘贴好内容并修改路径后,按下
Control + O
来保存文件,然后按回车键确认文件名。再按下
Control + X
退出编辑器。
这行配置的意思是:每天 UTC 时间的 12:00(对于中国时区是 UTC+8,即晚上8点)自动以 root 权限执行这个脚本,并将所有输出信息丢弃(不发送邮件提醒)。
关于时间:如果你想在其他时间运行,可以修改开头的时间表达式。例如:
0 9 * * *
每天 UTC 时间 9:00(北京时间为下午5点)执行。0 20 * * *
每天 UTC 时间 20:00(北京时间为次日凌晨4点)执行。
允许 cron 访问辅助功能(可能需要的步骤)
在某些版本的 macOS 上,cron
需要特殊权限才能刷新 DNS 缓存。如果自动任务不生效,你可能需要手动执行一次sudo ./hosts-tool.sh
。