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

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

  •  
  •   shujuliuer · 2025 年 2 月 25 日 · 10972 次点击
    这是一个创建于 328 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用快捷方式一键修改 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 条附言  ·  2025 年 3 月 6 日
    回帖我都看完了,但是我觉得都不适合电脑小白,或者不那么纯粹。
    1. 需要安装额外软件,例如 switchhosts 、vscode ,甚至 sudo 等等;
    2. 需要右击用管理员权限运行;
    84 条回复    2025-03-06 20:54:30 +08:00
    qW7bo2FbzbC0
        1
    qW7bo2FbzbC0  
       2025 年 2 月 25 日
    牛批
    bbao
        2
    bbao  
       2025 年 2 月 25 日   ❤️ 6
    看了这么一大堆文字,觉得,还是直接打开 host 文件修改比较快~~~~
    julyclyde
        3
    julyclyde  
       2025 年 2 月 25 日   ❤️ 65
    在低频需求上瞎优化
    Zhuzhuchenyan
        4
    Zhuzhuchenyan  
       2025 年 2 月 25 日   ❤️ 9
    我用 Power Toys 的 Hosts File Editor utility ,感觉也挺便捷的
    https://learn.microsoft.com/en-us/windows/powertoys/hosts-file-editor
    bzw875
        5
    bzw875  
       2025 年 2 月 25 日
    ShadowPower
        6
    ShadowPower  
       2025 年 2 月 25 日   ❤️ 2
    我用 SwitchHosts……
    layxy
        7
    layxy  
       2025 年 2 月 25 日
    当有很多 host 需要管理的时候还是 SwitchHosts 比较方便,否则手动编辑其实也还好
    Alliot
        8
    Alliot  
       2025 年 2 月 25 日   ❤️ 12
    冷知识: Win+R 打开运行,输入 drivers 回车,就能快速定位到 hosts 文件路径,双击就可以打开啦。
    zictos
        9
    zictos  
       2025 年 2 月 25 日   ❤️ 1
    随便建立一个快捷方式就可以了啊,路径:
    %windir%\system32\notepad.exe %windir%\system32\drivers\etc\hosts
    Belmode
        10
    Belmode  
       2025 年 2 月 25 日   ❤️ 3
    xqzr
        11
    xqzr  
       2025 年 2 月 25 日   ❤️ 1
    Win+R 或 创建快捷方式
    sudo notepad drivers\etc\hosts
    yidev
        12
    yidev  
       2025 年 2 月 25 日   ❤️ 11
    我要是发送一个 hosts 快捷方式到桌面, 阁下又该如何应对?
    Mark24
        13
    Mark24  
       2025 年 2 月 25 日
    sudo vim /etc/hosts
    chendy
        14
    chendy  
       2025 年 2 月 25 日
    我的方法:
    1. 用 vscode 打开,保存的时候会提示要管理员权限,然后确认就行了
    2. 用 Power toy 里的 hosts 工具
    asdasdqqq
        15
    asdasdqqq  
       2025 年 2 月 25 日
    switchhosts
    opengps
        16
    opengps  
       2025 年 2 月 25 日
    我的 notapad++里常年吧 hosts 设置为第一个打开的文件
    xiaolv
        17
    xiaolv  
       2025 年 2 月 25 日
    @xqzr 这个确实方便。不过要 24h2
    henix
        18
    henix  
       2025 年 2 月 25 日
    有意思,但怎么没显示需要管理员权限的提示?
    linuxsir2020
        19
    linuxsir2020  
       2025 年 2 月 25 日
    HankAviator
        20
    HankAviator  
       2025 年 2 月 25 日
    没事
    经常
    手动
    用记事本
    改 hosts 玩
    PrinceofInj
        21
    PrinceofInj  
       2025 年 2 月 26 日
    这个主要是第一次修改需要改文件权限。楼上这么多直接编辑的,想必第一次也得改一下文件权限才行吧。
    wangtian2020
        22
    wangtian2020  
       2025 年 2 月 26 日
    powertoys
    ZxykM
        23
    ZxykM  
       2025 年 2 月 26 日
    只用 SwitchHosts
    shujuliuer
        24
    shujuliuer  
    OP
       2025 年 2 月 26 日
    @zictos 会有编辑权限问题
    shujuliuer
        25
    shujuliuer  
    OP
       2025 年 2 月 26 日
    @henix 关键的点就在这里,无须管理员权限的提示
    body007
        26
    body007  
       2025 年 2 月 26 日
    zictos
        27
    zictos  
       2025 年 2 月 26 日
    @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  
       2025 年 2 月 26 日
    我选择本地跑 AdGuardHome
    momo2278
        29
    momo2278  
       2025 年 2 月 26 日
    Power Toys 了解一哈
    raymonguo
        30
    raymonguo  
       2025 年 2 月 26 日
    code C:\Windows\System32\drivers\etc\hosts
    leee41
        31
    leee41  
       2025 年 2 月 26 日
    C:\Windows\System32\drivers\etc\hosts
    我直接快速访问固定该文件
    lscho
        32
    lscho  
       2025 年 2 月 26 日
    这就是我为什么开发环境不用 windows 的原因。。。。
    FarmerChillax
        33
    FarmerChillax  
       2025 年 2 月 26 日
    不如考虑一下这个: https://github.com/oldj/SwitchHosts 还带了环境管理
    minami
        34
    minami  
       2025 年 2 月 26 日
    @lscho 能发散到这个的也是神人了
    LitterGopher
        35
    LitterGopher  
       2025 年 2 月 26 日
    直接給 HOST 文件創建一個軟鏈接到你常用的目錄或桌面唄.
    LitterGopher
        36
    LitterGopher  
       2025 年 2 月 26 日
    @lscho #32 虽然我自己使用 Linux 开发, 但是就我所遇到的和过的公司和部门几乎也只有我是在纯 Linux 上开发,就算嵌入式不少也都是在 Windows 上开发, Linux 上调试, 即便在 Linux 上开发的也是在 Windows 装虚拟机进行开发, 而不是裸跑 Linux 进行开发.

    你说 macOS? 那你一定不是做开发的.
    lscho
        37
    lscho  
       2025 年 2 月 26 日
    @minami


    @LitterGopher

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

    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  
       2025 年 2 月 26 日
    @lscho #37 能说到应激更是个神人,请问哪个系统不用工具改 hosts 不是进去手动改文件?跟 Windows 有什么关系? hosts 是给普通用户改着玩的吗
    woodfizky
        57
    woodfizky  
       2025 年 2 月 26 日
    如果用火绒,火绒就有这个类似的工具,帮你解决编辑权限问题。

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

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

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

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

    但是以上仅仅代表 [我] 个人感觉。
    zenghx
        64
    zenghx  
       2025 年 2 月 26 日
    gsudo/sudo 就好了
    hefish
        65
    hefish  
       2025 年 2 月 26 日
    全球最快,史上最快,国内首创,天下无敌。。。
    esee
        66
    esee  
       2025 年 2 月 26 日
    @leee41 我也是这样
    mobaijun
        67
    mobaijun  
       2025 年 2 月 26 日
    mobaijun
        68
    mobaijun  
       2025 年 2 月 26 日
    <img alt="tu" src="https://imgur.com/a/9MEefEw"> 没有这种方式嘛
    ShadowPower
        69
    ShadowPower  
       2025 年 2 月 26 日
    @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  
       2025 年 2 月 26 日
    @Alliot 牛啤~ 我以前经常这么输入%systemroot%\system32\drivers\etc.......
    xiaomoxian
        72
    xiaomoxian  
       2025 年 2 月 26 日 via Android
    @yidev 我是让 host 文件的快捷方式散布在每一个文件夹下,随时都能打开
    davin
        73
    davin  
       2025 年 2 月 26 日
    以前流行 SwitchHosts 的时候,为了方便切换开发环境的 host 配置,经常设置 SwitchHosts 开机自动启动,随用随改。
    magicls
        74
    magicls  
       2025 年 2 月 26 日
    蛤?
    mmdsun
        75
    mmdsun  
       2025 年 2 月 26 日   ❤️ 1
    微软新出了个 sudo 安装下就很方便了
    czz404
        76
    czz404  
       2025 年 2 月 26 日
    listary 直接键入 host 也可以
    meteora0tkvo
        77
    meteora0tkvo  
       2025 年 2 月 27 日
    Hopetree
        78
    Hopetree  
       2025 年 2 月 27 日
    @bbao 有没有一种可能 Windows 上面不能直接编辑 hosts 文件,至少不能直接编辑,你可以拷贝一份编辑之后替换,但是不允许直接编辑
    guanzhangzhang
        79
    guanzhangzhang  
       2025 年 2 月 27 日
    大佬,我想写个修改 ip 的,powershell 用 New-NetIPAddress -InterfaceAlias 保存为.ps1 后无法运行,调整 powershell 运行策略后点击要是弹权限
    bbao
        80
    bbao  
       2025 年 2 月 27 日   ❤️ 1
    @Hopetree 没有可能
    RYAN10041
        81
    RYAN10041  
       2025 年 2 月 27 日
    ![右键]( https://imgur.com/a/epy36gl "写在右键菜单里")
    康康我的
    shujuliuer
        82
    shujuliuer  
    OP
       2025 年 3 月 6 日
    @Alliot 双击打开后,保存时候没有权限……
    shujuliuer
        83
    shujuliuer  
    OP
       2025 年 3 月 6 日
    @xqzr notepad drivers\etc\hosts 可以直接打开文件,但是一样没有保存权限
    xqzr
        84
    xqzr  
       2025 年 3 月 6 日
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   4346 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 00:14 · PVG 08:14 · LAX 16:14 · JFK 19:14
    ♥ Do have faith in what you're doing.