首页 注册 登录
V2EX = way to explore V2EX 是一个关于分享和探索的地方
现在注册 已注册用户请 登录
V2EX Windows

可能是全球最快捷的修改 hosts 文件方式

shujuliuer · 318 天前 · 10878 次点击
这是一个创建于 318 天前的主题,其中的信息可能已经有所发展或是发生改变。

使用快捷方式一键修改 hosts 文件。 下面请看 VCR:

其实关键的命令只有一条:

powershell.exe -Command "Start-Process -FilePath notepad.exe -Verb RunAs -ArgumentList "$env:SystemRoot\system32\drivers\etc\hosts""

它使用记事本以管理员权限打开位于 C:\Windows\System32\drivers\etc\hosts 目录下的 hosts 文件,以便如果需要的话,可以编辑该文件。

Let's break it down:

powershell.exe: 这会调用 PowerShell 可执行文件,用于在命令行中执行 PowerShell 命令。
-Command: 该参数告诉 PowerShell 执行接下来的命令。
"Start-Process": 该 cmdlet 用于启动一个新进程(在这个例子中是一个应用程序,也就是记事本)。
-FilePath notepad.exe: 这指定了要启动的程序(记事本),notepad.exe 路径告诉 PowerShell 打开记事本。
-Verb RunAs: 这一部分指示 PowerShell 以提升的权限(管理员权限)运行该进程,这是修改系统文件(如 hosts 文件)所必需的。
-ArgumentList: 这指定了要传递给启动程序的参数(在本例中是记事本)。该参数是 hosts 文件的路径。
$env:SystemRoot\system32\drivers\etc\hosts: 这一部分通过 $env:SystemRoot 环境变量获取系统根目录(通常是 C:\Windows ),然后构建 hosts 文件的路径( C:\Windows\System32\drivers\etc\hosts )。
转义的双引号(\"):这些用于正确处理命令中的空格或特殊字符。此处用于围绕 $env:SystemRoot 变量,以正确地包含路径。

你也可以直接去下面网站下载已经生成的快捷方式。

windowsHost

第 1 条附言 · 309 天前
回帖我都看完了,但是我觉得都不适合电脑小白,或者不那么纯粹。
1. 需要安装额外软件,例如 switchhosts 、vscode ,甚至 sudo 等等;
2. 需要右击用管理员权限运行;
84 条回复 2025年03月06日 20:54:30 +08:00
qW7bo2FbzbC0
1
qW7bo2FbzbC0 318 天前
牛批
bbao
2
bbao 318 天前 ❤️ 6
看了这么一大堆文字,觉得,还是直接打开 host 文件修改比较快〜〜〜〜
julyclyde
3
julyclyde 318 天前 ❤️ 65
在低频需求上瞎优化
Zhuzhuchenyan
4
Zhuzhuchenyan 318 天前 ❤️ 9
我用 Power Toys 的 Hosts File Editor utility ,感觉也挺便捷的
https://learn.microsoft.com/en-us/windows/powertoys/hosts-file-editor
bzw875
5
bzw875 318 天前
ShadowPower
6
ShadowPower 318 天前 ❤️ 2
我用 SwitchHosts......
layxy
7
layxy 318 天前
当有很多 host 需要管理的时候还是 SwitchHosts 比较方便,否则手动编辑其实也还好
Alliot
8
Alliot 318 天前 ❤️ 12
冷知识: Win+R 打开运行,输入 drivers 回车,就能快速定位到 hosts 文件路径,双击就可以打开啦。
zictos
9
zictos 318 天前 ❤️ 1
随便建立一个快捷方式就可以了啊,路径:
%windir%\system32\notepad.exe %windir%\system32\drivers\etc\hosts
Belmode
10
Belmode 318 天前 ❤️ 3
xqzr
11
xqzr 318 天前 ❤️ 1
Win+R 或 创建快捷方式
sudo notepad drivers\etc\hosts
yidev
12
yidev 318 天前 ❤️ 11
我要是发送一个 hosts 快捷方式到桌面, 阁下又该如何应对?
Mark24
13
Mark24 318 天前
sudo vim /etc/hosts
chendy
14
chendy 318 天前
我的方法:
1. 用 vscode 打开,保存的时候会提示要管理员权限,然后确认就行了
2. 用 Power toy 里的 hosts 工具
asdasdqqq
15
asdasdqqq 318 天前
switchhosts
opengps
16
opengps 318 天前
我的 notapad++里常年吧 hosts 设置为第一个打开的文件
xiaolv
17
xiaolv 318 天前
@xqzr 这个确实方便。不过要 24h2
henix
18
henix 318 天前
有意思,但怎么没显示需要管理员权限的提示?
linuxsir2020
19
linuxsir2020 318 天前
HankAviator
20
HankAviator 318 天前
没事
经常
手动
用记事本
改 hosts 玩
PrinceofInj
21
PrinceofInj 317 天前
这个主要是第一次修改需要改文件权限。楼上这么多直接编辑的,想必第一次也得改一下文件权限才行吧。
wangtian2020
22
wangtian2020 317 天前
powertoys
ZxykM
23
ZxykM 317 天前
只用 SwitchHosts
shujuliuer
24
shujuliuer
OP
317 天前
@zictos 会有编辑权限问题
shujuliuer
25
shujuliuer
OP
317 天前
@henix 关键的点就在这里,无须管理员权限的提示
body007
26
body007 317 天前
zictos
27
zictos 317 天前
@shujuliuer #24 我今天真的遇到了编辑权限的问题,以前明明好好的,今天突然不能直接修改了,通过管理员权限运行 cmd 并通过 notepad.exe 打开 hosts 文件才能编辑。我一直用 administrator 账户登录的,以前能直接手动修改也能使用 python 自动修改。

不过权限问题解决了,用管理员权限运行 cmd ,然后执行下面两行命令之后就能随意编辑 hosts 文件了。
takeown /f C:\Windows\System32\drivers\etc\hosts
icacls C:\Windows\System32\drivers\etc\hosts /grant Administrators:F
peasant
28
peasant 317 天前
我选择本地跑 AdGuardHome
momo2278
29
momo2278 317 天前
Power Toys 了解一哈
raymonguo
30
raymonguo 317 天前
code C:\Windows\System32\drivers\etc\hosts
leee41
31
leee41 317 天前
C:\Windows\System32\drivers\etc\hosts
我直接快速访问固定该文件
lscho
32
lscho 317 天前
这就是我为什么开发环境不用 windows 的原因。。。。
FarmerChillax
33
FarmerChillax 317 天前
不如考虑一下这个: https://github.com/oldj/SwitchHosts 还带了环境管理
minami
34
minami 317 天前
@lscho 能发散到这个的也是神人了
LitterGopher
35
LitterGopher 317 天前
直接給 HOST 文件創建一個軟鏈接到你常用的目錄或桌面唄.
LitterGopher
36
LitterGopher 317 天前
@lscho #32 虽然我自己使用 Linux 开发, 但是就我所遇到的和过的公司和部门几乎也只有我是在纯 Linux 上开发,就算嵌入式不少也都是在 Windows 上开发, Linux 上调试, 即便在 Linux 上开发的也是在 Windows 装虚拟机进行开发, 而不是裸跑 Linux 进行开发.

你说 macOS? 那你一定不是做开发的.
lscho
37
lscho 317 天前
@minami


@LitterGopher

啊?我只是说了"我",又没有代表别人。不知道你们应激什么。。。
LitterGopher
38
LitterGopher 317 天前
@lscho #37 好像确实是我应激了, 抱歉, 抱歉.
qingshengwen
39
qingshengwen 317 天前
@yidev #12 哈哈哈哈,我就是这么做的
dode
40
dode 317 天前
使用 vscode 编辑器打开,保存时自动提升使用管理员权限强制保存
sinry
41
sinry 317 天前
你这太慢了,不如 utools ,1 秒打开
FishBear
42
FishBear 317 天前 ❤️ 1
@Zhuzhuchenyan #4 确实 直接按 alt+空格后 输入 host 就可以编辑了
happyxhw101
43
happyxhw101 317 天前
F2(打开 guake 终端) -> sudo vim /etc/hosts
Vegetable
44
Vegetable 317 天前
不是,快捷方式不能用吗?
strobber16
45
strobber16 317 天前
不是,本站用户人手一个软路由谁 TM 还改本机 hosts 啊
bhqt
46
bhqt 317 天前
hostsx
vmebeh
47
vmebeh 317 天前 via iPhone
能直接编辑的都是关了 UAC 的,打开任何程序都是有管理员权限,相当于 sudo 任何程序
psxf
48
psxf 317 天前
...用 Listary 搜索 host 直接编辑
ShadowPower
49
ShadowPower 317 天前
@strobber16 公司有一堆环境,微服务改配置里的注册中心和中间件的 IP 地址要花点时间。用域名,直接改 hosts ,然后全部重启就搞定了
ShadowPower
51
ShadowPower 317 天前
@lscho 我想知道为什么这是你不用 Windows 的原因......
难道这玩意还影响开发吗?
killva4624
52
killva4624 317 天前
alias vimhosts='vim /etc/hosts'
crac
53
crac 317 天前
其实翻墙软件里带这个功能的 直接写配置文件里就行。。。
jadeborner
54
jadeborner 317 天前 ❤️ 1
powertoys 里面不有吗
yulgang
55
yulgang 317 天前
创建一个快捷方式,比如:

Hosts.lnk

Target: %windir%\system32\notepad.exe %windir%\system32\drivers\etc\hosts

选填:
Shortcut key: Ctrl + Alt + C
Advanced: Run as Administrator

需要需改 hosts 的时候,任意窗口下,按 Ctrl + Alt + C ,允许以管理员身份运行即可。
minami
56
minami 317 天前
@lscho #37 能说到应激更是个神人,请问哪个系统不用工具改 hosts 不是进去手动改文件?跟 Windows 有什么关系? hosts 是给普通用户改着玩的吗
woodfizky
57
woodfizky 317 天前
如果用火绒,火绒就有这个类似的工具,帮你解决编辑权限问题。

在用这个之前,我的做法是复制一个 hosts ,用记事本打开,编辑完之后同名扔回去覆盖。
dmanbu
58
dmanbu 317 天前
我之所有不喜欢 powershell ,就是因为这玩意又臭又长
tf2
59
tf2 317 天前
@shujuliuer

> 关键的点就在这里,无须管理员权限的提示

呃,权限的问题,你可以手工修改一次,以后都没问题了。或者通过 cacls 命令去修改

没必要提权。。
zhizunzz
60
zhizunzz 317 天前
请问你们每天都改几十遍 host 吗
lscho
61
lscho 317 天前
@minami 能说神人的就更神人了。。我一直在说的是"我",不知道你在应激什么,我就不想手动点四五层目录进去找 host 文件怎么了?也不想使用 powershell ,我就喜欢直接 vim /etc/host 修改怎么了?甚至我可以说不想使用 windows 的文件管理器,因为我用着有点卡,这怎么了?和你有什么关系吗?真的搞笑。。。
alading11
62
alading11 317 天前
@Zhuzhuchenyan nb ,一直在用 Power Toys 但是搜索这个功能还真不咋用,批量修改文件名啥的还是挺好用的
lscho
63
lscho 317 天前
@ShadowPower 你看下 op 列出来改 host 使用的东西,并不是简单的改 host 的问题,而是因为这个问题衍生出来的 powershell 语法、权限设计、甚至文本编辑器带来的换行符问题。我是做后端开发的,代码要放到服务器运行的,在 windows 上开发 linux 运行的话,经常会有奇奇怪怪的小问题,真的会影响到我。

但是以上仅仅代表 [我] 个人感觉。
zenghx
64
zenghx 317 天前
gsudo/sudo 就好了
hefish
65
hefish 317 天前
全球最快,史上最快,国内首创,天下无敌。。。
esee
66
esee 317 天前
@leee41 我也是这样
mobaijun
68
mobaijun 317 天前
<img alt="tu" src="https://imgur.com/a/9MEefEw"> 没有这种方式嘛
ShadowPower
69
ShadowPower 317 天前
@lscho
op 写得太复杂了,其实非常简单,用 Powershell 以管理员权限运行程序是这样写:
Start-Process 程序名 参数 -Verb RunAs

程序名只需要填上:notepad
参数填上 hosts 文件路径:'C:\Windows\System32\drivers\etc\hosts'

我觉得还挺直观的。虽然没有 unix 命令那种一两个字母看起来短,不过实际上在脚本里可读性非常强。


然后用 Powershell 来运行它,只需要这样:
powershell -Command "这里是要执行的命令"

有缩略写法:
pwsh -c "这里是要执行的命令"


把这个添加到快捷方式里,就可以实现双击执行某条命令了。


对比苹果的设计,AppleScript 是这么写的:
do shell script "open -a 'TextEdit' /etc/hosts" with administrator privileges

整体上甚至差不多,格式都很像。如果追求"双击就能运行",那么这就是最简单的方法了。
除非配了免密码,不然用 sudo 的方式需要输入密码。
asm
70
asm 317 天前
@Alliot 牛啤~ 我以前经常这么输入%systemroot%\system32\drivers\etc.......
xiaomoxian
72
xiaomoxian 317 天前 via Android
@yidev 我是让 host 文件的快捷方式散布在每一个文件夹下,随时都能打开
davin
73
davin 317 天前
以前流行 SwitchHosts 的时候,为了方便切换开发环境的 host 配置,经常设置 SwitchHosts 开机自动启动,随用随改。
magicls
74
magicls 317 天前
蛤?
mmdsun
75
mmdsun 317 天前 ❤️ 1
微软新出了个 sudo 安装下就很方便了
czz404
76
czz404 317 天前
listary 直接键入 host 也可以
meteora0tkvo
77
meteora0tkvo 316 天前
Hopetree
78
Hopetree 316 天前
@bbao 有没有一种可能 Windows 上面不能直接编辑 hosts 文件,至少不能直接编辑,你可以拷贝一份编辑之后替换,但是不允许直接编辑
guanzhangzhang
79
guanzhangzhang 316 天前
大佬,我想写个修改 ip 的,powershell 用 New-NetIPAddress -InterfaceAlias 保存为.ps1 后无法运行,调整 powershell 运行策略后点击要是弹权限
bbao
80
bbao 316 天前 ❤️ 1
@Hopetree 没有可能
RYAN10041
81
RYAN10041 316 天前
![右键]( https://imgur.com/a/epy36gl "写在右键菜单里")
康康我的
shujuliuer
82
shujuliuer
OP
309 天前
@Alliot 双击打开后,保存时候没有权限......
shujuliuer
83
shujuliuer
OP
309 天前
@xqzr notepad drivers\etc\hosts 可以直接打开文件,但是一样没有保存权限
xqzr
84
xqzr 309 天前
关于 · 帮助文档 · 自助推广系统 · 博客 · API · FAQ · Solana · 890 人在线 最高记录 6679 · Select Language 创意工作者们的社区 World is powered by solitude VERSION: 3.9.8.5 · 93ms · UTC 21:25 · PVG 05:25 · LAX 13:25 · JFK 16:25
♥ Do have faith in what you're doing.

AltStyle によって変換されたページ (->オリジナル) /