Fedora COSMIC Atomic解决访问GitHub域名污染问题

原理

让域名解析从本地/etc/hosts文件读取ip地址,正确的IP地址从https://raw.githubusercontent.com/521xueweihan/GitHub520/main/hosts获取。

方法

获取github域名对应的IP地址,更新到/etc/hosts文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
# update-github-hosts
set -e
HOSTS_FILE="/etc/hosts"
TMP=$(mktemp)
# 下载github520 hosts
curl -s https://raw.githubusercontent.com/521xueweihan/GitHub520/main/hosts > "$TMP"
# 先把旧的 # GitHub520 区块删掉,再追加新的
sudo sed -i '/# GitHub520/,/# GitHub520 End/d' "$HOSTS_FILE"
sudo tee -a "$HOSTS_FILE" < "$TMP"
rm "$TMP"
# 刷新dns缓存
resolvectl flush-caches
echo "hosts 更新完成"

  1. 将上述脚本拷贝到可执行文件目录中,赋予执行权限,如果遇到github无法访问时可以尝试执行sudo /patch/update-github-hosts

  2. 执行dig github.com命令检查域名对应的IP地址是否已经刷新。

Fedora COSMIC Atomic中强制从hosts文件中解析域名

系统是否允许从hosts文件解析域名,在/usr/lib/systemd/resolved.conf配置,在Fedora COSMIC Atomic中不能直接修改此文件,可以通过drop-in 片段才修改 Atomic 系统配置。

  1. 创建drop-in配置
1
2
3
4
5
sudo mkdir -p /etc/systemd/resolved.conf.d
sudo tee /etc/systemd/resolved.conf.d/00-readhosts.conf <<'EOF'
[Resolve]
ReadEtcHosts=yes
EOF
  1. 重载 systemd + 重启 resolved
1
2
3
4
sudo systemctl daemon-reload
sudo systemctl restart systemd-resolved
resolvectl flush-caches

  1. 检查配置是否生效
1
2
systemd-analyze cat-config systemd/resolved.conf | grep ReadEtcHosts

执行上述命令即可看到一行不再带 #的ReadEtcHosts=yes的配置。

Fedora COSMIC Atomic解决访问GitHub域名污染问题

http://mixiang.tech/2026/10/27/2026-10-27-11/

作者

Mixion

发布于

2026-10-27

更新于

2026-10-27

许可协议