oldj/SwitchHosts
GitHub: oldj/SwitchHosts
一款基于 Tauri 和 React 构建的跨平台 hosts 文件管理工具,支持本地与远程 hosts 配置的快速切换与组织。
Stars: 26970 | Forks: 2654
Special thanks to:
### [Warp,面向开发者的智能终端](https://go.warp.dev/SwitchHosts)
[适用于 MacOS、Linux 和 Windows](https://go.warp.dev/SwitchHosts)
# SwitchHosts
- [Polski](README.pl.md)
- [简体中文](README.zh_hans.md)
- [繁體中文](README.zh_hant.md)
主页:[https://switchhosts.vercel.app](https://switchhosts.vercel.app)
SwitchHosts 是一款用于管理 hosts 文件的应用,它基于 [Tauri](https://tauri.app/)、[React](https://facebook.github.io/react/)、[Jotai](https://jotai.org/)、[Mantine](https://mantine.dev/) 等技术构建。
## 截图
### [Warp,面向开发者的智能终端](https://go.warp.dev/SwitchHosts)
[适用于 MacOS、Linux 和 Windows](https://go.warp.dev/SwitchHosts)
## 功能
- 管理系统、本地、远程、分组以及文件夹的 hosts 记录
- 从主窗口或系统托盘快速切换 hosts
- 为 hosts 文件提供语法高亮
- 在所有 hosts 记录中进行查找和替换
- 手动、按计划或在启动时刷新远程 hosts
- 导入/导出 hosts 数据,包括从 URL 导入备份
- 将记录移至回收站,并在稍后恢复或删除
- 针对写入模式、代理、更新检查、开机启动、应用后执行命令以及本地 HTTP API 的偏好设置
## 安装
### 下载
你可以下载源代码并自行构建,或者从以下链接下载已构建的版本:
- [SwitchHosts 下载页面 (GitHub release)](https://github.com/oldj/SwitchHosts/releases)
```
choco install switchhosts
```
## 备份
SwitchHosts 将数据存储在 `~/.SwitchHosts`(或者在 Windows 上当前用户主目录下的 `.SwitchHosts` 文件夹中)。在 v5 的数据目录结构中:
- `~/.SwitchHosts/manifest.json` 存储 hosts 树状结构
- `~/.SwitchHosts/entries/` 存储本地和远程的 hosts 内容
- `~/.SwitchHosts/trashcan.json` 存储回收站记录
- `~/.SwitchHosts/internal/config.json` 存储偏好设置
- `~/.SwitchHosts/internal/histories/` 存储系统 hosts 和命令执行历史
要进行完整的手动备份,请复制整个 `~/.SwitchHosts` 文件夹。应用内的导出功能会生成一个 hosts 数据备份 JSON,但不包含偏好设置和历史记录。
## 开发与构建
### 前置条件
- [Node.js](https://nodejs.org/)
- [Rust](https://www.rust-lang.org/tools/install)
- Tauri 系统依赖,请参阅 [Tauri 前置条件](https://v2.tauri.app/start/prerequisites/)
### 开发
- 运行 `npm install` 安装依赖
- 运行 `npm run tauri:dev` 以开发模式启动应用
### 构建与打包
- 运行 `npm run tauri:build` 创建生产构建
- 打包后的文件将位于 `./src-tauri/target/release/bundle/`
```
# development
npm run tauri:dev
# production build
npm run tauri:build
```
## 版权
SwitchHosts 是一款免费开源软件,基于 [Apache License](./LICENSE) 发布。标签:MITM代理, 可视化界面, 通知系统