发布时间:
Go Hosts 是一款基于 Go+fyne 开发的轻量级 Hosts 文件管理工具,适配 Windows 和 macOS 系统,作为 SwitchHosts(Electron)的轻量化替代方案;核心功能包含图形化 Hosts 规则管理、IP / 域名多绑定、Ping 测试(获取域名所有可访问 IP)、TCP 测速(筛选最快 IP),还支持自定义 CMD 命令按钮扩展,体积小巧且支持跨平台编译打包
为什么会重复造轮子呢? #
SwitchHosts 太大了(Electron),不太灵活。我对小工具的执念挺大,小工具就应该足够小(虽然还是不够小😊)。
- PING 测试,快速找到目标网站所有IP地址,例如 github.com。
- TCP 测试,快速找到当前网络环境连接最快的那个IP,配置 hosts 加速访问。
- 支持扩展 cmd 命令菜单,把系统一些常用工具給串起来
- 我就是玩!哈哈哈~
屏幕截图 #




功能 #
基础功能 #
- 图形化管理 hosts 规则(增、删、改、刷新)
- 支持一个 IP 绑定多个域名
- 支持一个域名绑定多个 IP,并可快速切换
- 支持 Ping 测试、TCP 测试、主题切换、系统托盘
数据类型说明 #
- IP 类型:一个 IP 对应多个域名,可同时启用多个规则
- Domain 类型:一个域名对应多个 IP,同一时间只启用一个
进阶功能 #
Ping 测试 #
- 通过域名获取当前网络下可访问的所有 IP
- 用于排查解析慢或访问不稳定的问题
TCP 测速 #
- 对多个 IP 进行并发 TCP 测试
- 自动选出当前网络最快的 IP
自定义按钮(高级) #
支持通过 YAML 配置自定义操作按钮,用于执行系统或第三方命令。
- 按钮可显示在界面或系统托盘
- 支持参数注入,参数注入使用
%s - 命令中涉及路径要写反斜杠 "/"
- 本质是 cmd 扩展,适用于任何可命令行操作的软件
- 查看支持的 fyne icon
示例 #
配置文件 config.yaml
cus_buttons:
- name: "刷新 DNS"
icon: "ViewRefreshIcon"
cmd: "ipconfig /flushdns"
- name: "打开配置"
cmd: "cmd /c start %USERPROFILE%/.GoHosts"
- name: "打开 hosts 文件"
cmd: "notepad C:/Windows/System32/drivers/etc/hosts"
# 若需要输入框注入参数使用 %s 可以注入输入的参数
- name: "端口扫描"
cmd: "fscan -h %s"
- name: "注册表"
icon: "ListIcon"
cmd: "cmd /c regedit"
- name: "控制面板"
cmd: "control"
- name: "网络连接"
cmd: "cmd /c ncpa.cpl"
开发 & 打包 #
提示
Mac 应该是有限支持,为了支持 Mac 10.15.x,fyne@v2.5.3+go 1.20。
软件数据目录 window: %USERPROFILE%/.GoHosts,mac: ~/.GoHosts。
- 安装 go 并配置环境变量
- 安装 tdm-gcc
- 安装 fyne
go install fyne.io/fyne/v2/cmd/fyne@latest
执行以下命令打包:
go mod tidy
# 打包 Window
fyne package -os windows
# 打包 Mac
fyne package -os darwin
注意事项 #
MacOS 权限问题 #
警告
MacOS 需修改 hosts 权限否则无法写入
执行以下命令修改权限
sudo chown $(whoami) /etc/hosts
# 或
sudo chmod u+w /etc/hosts
Cause: APIUnavailable: WGL: The driver does not appear to support OpenGL #
- 解压
mesa3d-25.3.3-release-msvc.7z。 - 运行
perappdeploy.cmd后,全部按回车键。 - 运行
systemwidedeploy.cmd后,输入【1】然后按回车键。(在cmd执行,不要直接双击)