“1024” 做了一个能够让 Switch Hosts 使用起来更舒服一些的小工具,不论是程序工具本身,还是 Docker 容器都只有 5MB 尺寸,支持多种 CPU 架构。

当我们需要在多台设备上同步 Hosts 规则,或者需要和团队小伙伴共享 Hosts 规则的时候,使用这个工具能够极大提升分享时的使用体验。

写在前面

之前在《用于本地开发使用的 DNS 方案》一文中,分享的内容包含了使用带有界面的 “dnsmasq”、使用 “go-dnsmasq”、以及在不方便使用 DNS 模式的时候,使用工具编辑“系统 Hosts” 的方法。

在最近整理仓库的时候,看到了一个使用 Nginx 作为 SwitchHosts 远程配置的项目,虽然方案的运行性能、资源占用都不错,但偶尔想更新配置,需要使用本地编辑器更新,然后使用 Git 推动仓库变动,再触发 CI/CD 部署更新流程,总归比较麻烦。

为了接下来能够偷懒,于是我做了一个简单的工具,支持在线编辑和修改 Hosts 配置,并分享给包括 SwitchHosts 在内的软件使用。

完整代码开源在 GitHub:https://github.com/soulteary/remote-hosts-server。

快速上手

这个程序的使用非常简单,从 GitHub Releases 页面获取适合你运行环境的二进制文件,直接在命令行中执行即可启动服务啦:

./remote-hosts-server

如果你喜欢使用 Docker ,可以使用下面的方式来快速启动容器服务:

docker run --rm -it -v `pwd`/data:/data -p 8080:8080 soulteary/remote-hosts-server

程序默认的服务端口是 8080,如果你希望调整端口号,可以使用 PORT=8090 ./remote-hosts-server 来修改端口号。使用 Docker 方式运行,可以选择使用相同的方式设置环境变量来调整端口号(添加 -e "PORT=8090"),或者直接修改映射端口(-p 8090:8080),至于怎么做,随你喜好来就好。

在服务启动之后,我们打开浏览器,访问 http://localhost:8080,将看到下面的编辑器界面,根据实际需求调整内容之后,点击提交按钮,保存内容即可。

在点击按钮提交数据之后,程序将会根据实际情况,提示我们数据已正常保存,或还需要人工介入“进行额外确认”,确保数据变动是符合预期的,避免错误的改动导致其他软件应用 Hosts 规则时出现问题。

如果你不希望使用程序的时候,出现这个“额外确认”的界面,可以通过设置 MODE=simple (使用 Docker 时,添加环境变量 -e "MODE=simple"),来关闭这个界面。

当我们完成数据保存、更新完 Hosts 规则之后,可以通过访问 http://$${IP}:${PORT}/api/hosts 来获得我们设置的所有 Hosts 规则。以上文默认程序运行地址为例,可以访问:http://localhost:8080/api/hosts 这个地址。

我们将上面的地址添加 Switch Hosts 的远程配置界面中,设置合理的规则更新时间,然后点击“更新数据”按钮简单验证接口是否可用,如果没有问题。接着,点击确认按钮关闭界面就能够正常开始使用啦。

Switch Hosts 将根据设置的数据更新频率,自动的同步和更新我们的 Hosts 规则。

结合 Docker Compose 使用

如果你习惯使用 Compose ,可以参考下面的配置来使用软件:

version: '2'
services:remote-hosts-server:image: soulteary/remote-hosts-serverports:- "8080:8080"environment:# same with ports- PORT=8080# mode: normal or simple- MODE=normalvolumes:- ./data:/data

其他

早些时候,我使用的方案是使用 Nginx 的 AutoIndex 功能,来完成 Hosts 规则的分享。如果你希望使用这种方式来解决需求,可以参考这篇文章快速搭建一个界面相对漂亮的 AutoIndex 页面:《使用 Docker 和 Nginx 实现简单目录索引服务》。

后续,我会抽空更新这个小工具的功能,让它支持简单的 ACL、多种存储后端,比如 S3、NFS 等,如果你有好的想法和建议,也欢迎在项目 Issue 中提出。

最后

节日快乐,希望这个小工具对你有帮助。

–EOF


本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

本文作者: 苏洋

创建时间: 2022年10月24日
统计字数: 2551字
阅读时间: 6分钟阅读
本文链接: https://soulteary.com/2022/10/24/online-sharing-hosts-rules-tool-remote-hosts-server.html

在线分享 Hosts 规则工具:Remote Hosts Server相关推荐

  1. mac hosts修改工具:SwitchHosts Mac的中文设置

    SwitchHosts for Mac中文版是mac上一个管理切换编辑Mac系统hosts的工具.支持编辑mac hosts文件,自定义以及添加多个hosts文件配置,备份hosts文件,非常好用!如 ...

  2. Python|Git remote|hosts|PyCharm常用快捷键|变量转换|命名|类型|运算符|分支|调整tab|循环|语言基础50课:学习记录(1)-项目简介及变量、条件及循环

    目录 系列目录 均引自原项目地址: Python语言基础50课简介及相关网址 修改 hosts 文件 解决 GitHub 上图片无法显示 视频资源 Python语言基础50课代码等文件资源 表1. P ...

  3. 分享一个在线占位图制作工具

    给大家分享一个在线占位置,生成图片的一个工具 先说一下为什么需要这个? 我们在制作一个网站,或者交付前端项目时,难免会使用到图片素材,有的喜欢使用在线地址来引用图片路径,还有的比较喜欢搜图片保存之后再 ...

  4. gohost -- go 开发的命令行hosts配置管理工具

    前几天在微博上看到有人推荐了lazygit这个工具,让人眼前一亮,什么时候命令行也可以这么抢到了,?,调研了下,发现它使用了gocui,使用它可以做出来很多很炫的命令行工具. 现有的hosts工具里面 ...

  5. chrome hosts文件管理工具 空白问题的解决

    chrome  的 hosts文件管理工具 扩展程序非常好用 但是今天发现这个文件整个变白了  工作不正常 最后发现 是禁用了  chrome://plugins/ 中的 如下插件导致 ,启用后解决 ...

  6. 分享一款国内版的Gitbook在线文档创作工具

    GitBook满足了文档创作者和读者最原始的需求,让创作者专注于创作,让读者专注于阅读. 但对于国内的用户来说GitBook访问速度较慢,想体验更多功能的话得要付美金而且要绑信用卡很不方便. 网上关于 ...

  7. SwitchHosts Hosts管理工具

    SwitchHosts Hosts管理工具 介绍:SwitchHosts工具是一个管理 Hosts 文件的应用,操作简单,完全免费,支持多平台,必须以[管理员身份运行],否则会报 "没有写入 ...

  8. 【好物推荐】一款免费的Hosts切换工具——SwitchHosts

    一.Hosts文件介绍 Hosts文件是一个计算机操作系统中的文本文件,用于将主机名映射到其对应的IP地址. 当计算机需要连接其他设备或服务时,它会首先在Hosts文件中查找相应的IP地址,如果找到则 ...

  9. YOLOv5的Tricks | 【Trick11】在线模型训练可视化工具wandb(Weights Biases)

    如有错误,恳请指出. 与其说是yolov5的训练技巧,这篇博客更多的记录如何使用wandb这个在线模型训练可视化工具,感受到了yolov5作者对其的充分喜爱. 所以下面内容更多的记录下如何最简单的使用 ...

最新文章

  1. mysql 锁表查询和解锁操作
  2. 3级联动 ajax java_java+ajax(三级连动下拉框)
  3. MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM)
  4. Android零基础入门第81节:Activity数据传递
  5. 【云栖号案例 | 教育与科研机构】科研机构上云提供更加精准分析检测服务
  6. 运算符优先级与结合性
  7. 什么?你项目还在用Date表示时间?!
  8. firstchild.data与childNodes[0].nodeValue意思
  9. php 修改图像大小,PHP图像大小调整
  10. Haproxy的安装与配置
  11. mysql c函数大全_Mysql 函数大全
  12. 重载 重写 多态区别
  13. 【C语言数据结构】数组
  14. 已知任意三点坐标求圆心
  15. smartadmin mysql_ApiBoot Logging 和Logging Admin使用总结
  16. 电路实验一阶电路误差分析_动态电路分析
  17. lis =[2,3,'k',['qwe',20,['k1',['tt',3,'1']],89],'ab','adv'] 将列表lis中的'tt'变成大写(用两种方式)。...
  18. 加州大学欧文分校 计算机专业,加州大学欧文分校计算机工程专业怎么样?
  19. windows服务器迁到_Windows服务器迁移工具使用攻略
  20. Ubuntu怎么切换为中文版

热门文章

  1. #数据挖掘--第3章:建模调参之支持向量机SVM初体验
  2. scau csapp复习
  3. 防火墙是什么,其作用是什么?
  4. 公司注册资本越高越好吗?公司注册资本为什么不能随便填?
  5. ble_app_hrs心率程序 nrf51822
  6. 2019年细分“行业龙头股”
  7. [19]Window管理框架WMF(Window Management Framework) 5.0 VS Window管理框架WMF(Window Management Framework) 5.1
  8. Android自定义View 多边形能力分析控件,雷达图(蛛网)动态实现
  9. 国内外网络安全厂商大汇总
  10. 利用Java Calendar类打印日历