是否有一种工具,可以让个人在不同的 etc/hosts 配置之间临时切换,而无需设置 dns?
例子:
我想快速更改 etc/hosts 配置文件,以便 project1.com 转发到本地 IP(如 192.168.10.50),而无需更改我们的 DNS 服务器中的信息。
为什么?
我们正在开发几个较大的 cms 项目。cms 是在虚拟机内开发的。有时我们必须对已投入生产的 cms 系统进行较大的更改。开发人员需要访问网站的生产版本,几分钟后他想将所有请求重定向到本地虚拟机。
一个能够轻松地在不同的 etc/hosts 配置文件之间切换的工具是理想的。
如果可能的话,不希望用户手动编辑 etc/hosts 文件。
答案1
您可以编写一个批处理作业,在运行时将主机文件从一个版本交换到另一个版本。
答案2
您可以创建批处理文件,然后用户输入复制并替换主机文件。
也许不是最理想的,但却是一个简单而快速的解决方案。
只需创建 hosts 文件并将其保存在机器上的某个位置,例如 C:\temp\hostfiles\
然后创建一个.bat 文件,内容如下:
[@echo off
:ask
@echo Select hosts file project
@echo 1 - Project 1
@echo 2 - Project 2
@echo 3 - Project 3
@echo 0 - Exit
set INPUT=
set /P INPUT=Type input: %=%
If /I "%INPUT%"=="1" goto 1
If /I "%INPUT%"=="2" goto 2
If /I "%INPUT%"=="3" goto 3
If /I "%INPUT%"=="0" goto exit
goto ask
:1
COPY "C:\temp\hostfiles\project1" "C:\Windows\System32\drivers\etc\hosts" /y >nul
@echo Project 1 hosts file is now active
goto exit
:2
COPY "C:\temp\hostfiles\project2" "C:\Windows\System32\drivers\etc\hosts" /y >nul
@echo Project 2 hosts file is now active
goto exit
:3
COPY "C:\temp\hostfiles\project3" "C:\Windows\System32\drivers\etc\hosts" /y >nul
@echo Project 3 hosts file is now active
goto exit
:exit
@pause
强烈建议在测试之前备份主机文件。