<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>沉渊覆雪的博客</title><link>https://0o0.codeberg.page/</link><description>Recent content on 沉渊覆雪的博客</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><managingEditor>mailto:0o0.settle618@simplelogin.com (沉渊覆雪)</managingEditor><webMaster>mailto:0o0.settle618@simplelogin.com (沉渊覆雪)</webMaster><copyright>:copyright:&lt;a href="https://0o0.codeberg.page/copyright/" target="_blank"&gt; 2025 沉渊覆雪 &lt;br&gt;&lt;a href="https://icp.gov.moe/?keyword=20255251" target="_blank"&gt;萌ICP备20255251号&lt;/a&gt;</copyright><lastBuildDate>Mon, 06 Oct 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://0o0.codeberg.page/index.xml" rel="self" type="application/rss+xml"/><item><title>备忘：安全的 DNS 查询协议服务列表</title><link>https://0o0.codeberg.page/posts/safedns/</link><pubDate>Mon, 06 Oct 2025 00:00:00 +0000</pubDate><author>mailto:0o0.settle618@simplelogin.com (沉渊覆雪)</author><guid>https://0o0.codeberg.page/posts/safedns/</guid><description>
&lt;h2 class="relative group"&gt;开头
&lt;div id="开头" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%bc%80%e5%a4%b4" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;UDP 明文查询实在是太坏了！！！&lt;br&gt;
无法想象 CMCC 在打开 github.com 的时候会报网站证书不可信，信任后遂跳转到&lt;del&gt;不明小姐姐网站&lt;/del&gt;&lt;br&gt;
即使设置为阿里的 223.5.5.5 (UDP) 亦如此&lt;br&gt;
故在 5202 年，使用安全的协议进行 DNS 查询是非常有必要的&lt;br&gt;
在此搜集一些 DNS 服务商&lt;/p&gt;
&lt;h2 class="relative group"&gt;list
&lt;div id="list" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#list" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;来源：&lt;br&gt;
&lt;a
href="https://github.com/DNSCrypt/dnscrypt-resolvers"
target="_blank"
&gt;https://github.com/DNSCrypt/dnscrypt-resolvers&lt;/a&gt;&lt;br&gt;
&lt;a
href="https://github.com/curl/curl/wiki/DNS-over-HTTPS"
target="_blank"
&gt;https://github.com/curl/curl/wiki/DNS-over-HTTPS&lt;/a&gt;&lt;br&gt;
&lt;del&gt;各种奇奇怪怪的地方&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;2025-11-03修订,移除了&lt;code&gt;https://0ms.dev/&lt;/code&gt;&lt;br&gt;
感谢@galpt的提醒&lt;/p&gt;
&lt;style&gt;
/* 折叠代码块容器样式 */
.fold-code {
position: relative;
border: 1px solid #e1e4e8;
border-radius: 6px;
overflow: hidden;
background: transparent;
}
/* 复制按钮 */
.fold-code .copy-btn {
position: absolute;
top: 8px;
right: 8px;
padding: 4px 8px;
font-size: 12px;
background: rgba(255,255,255,0.08);
color: #fff;
border: 1px solid rgba(255,255,255,0.08);
border-radius: 4px;
cursor: pointer;
backdrop-filter: blur(4px);
}
.fold-code .copy-btn:active { transform: translateY(1px); }
.fold-code pre {
margin: 0;
padding: 36px 12px 12px 12px;
overflow: auto;
background: rgba(var(--color-neutral-700), 1) !important;
color: #d6deeb;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", "Noto Mono", monospace;
font-size: 13px;
line-height: 1.5;
}
details[open] summary::after { content: ""; } /* 防止 summary 样式影响 */
summary {
cursor: pointer;
list-style: none;
padding: 6px 0;
}
&lt;/style&gt;
&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;点击展开(共865行)&lt;/strong&gt;&lt;/summary&gt;
&lt;div class="fold-code"&gt;
&lt;button class="copy-btn" title="复制代码"&gt;复制&lt;/button&gt;
&lt;pre&gt;&lt;code class="text"&gt;
https://052419.xyz/dns-query
https://v.recipes/dns-query
https://1.0.0.1/dns-query
https://1.1.1.1/dns-query
https://123000123.xyz/dns-query
https://162.159.36.1/dns-query
https://162.159.46.1/dns-query
https://185.222.222.222/dns-query
https://[2606:4700:4700::1001]/dns-query
https://[2606:4700:4700::1111]/dns-query
https://2.dns.noridev.moe/dns-query
https://3dcosas.xyz/dns-query
https://3dns.eu/dns-query
https://45.11.45.11/dns-query
https://8888.google/dns-query
https://94.140.14.140/dns-query
https://94.140.14.141/dns-query
https://abel.waringer-atg.de/dns-query
https://abn01.dnscry.pt/dns-query
https://ad.anym0re.ru/dns-query
https://ada.openbld.net/dns-query
https://adblock.dns.mullvad.net/dns-query
https://adblock.krctech.dev/dns-query
https://adblock.mydns.network/dns-query
https://adb.timnichollsphotography.com/dns-query
https://addns1.m-it.ro/dns-query
https://adfreedns.top/dns-query
https://adfree.usableprivacy.net/dns-query
https://adg.geili.me/dns-query
https://adg.khon.dev/dns-query
https://adguard.alu.dog/dns-query
https://adguard.bonis.de/dns-query
https://adguard.dantynes.cyou/dns-query
https://adguard.easez.net/dns-query
https://adguard.frutuozo.com.br/dns-query
https://adguard.gambini.org/dns-query
https://adguard.johanliebert.top/dns-query
https://adguard-kartoffel.zernico.de/dns-query
https://adguard.kasbot.net/dns-query
https://adguard.konikoni428.com/dns-query
https://adguard.meddy94.de/dns-query
https://adguard.neon0404.space/dns-query
https://adguard.senthil.us/dns-query
https://adguard.shoupperuser.com/dns-query
https://ad.justincounts.com/dns-query
https://adl.adfilter.net/dns-query
https://ae-fuj-w-p-1.nashkan.net/dns-query
https://ae-fuj-w-p-2.nashkan.net/dns-query
https://ae-fuj-w-p-3.nashkan.net/dns-query
https://affcdn.net/dns-query
https://affsoft.cc/dns-query
https://africadns1.liquidtelecom.net/dns-query
https://africadns2.liquidtelecom.net/dns-query
https://ag.apollohct.com/dns-query
https://agh.dshubham.xyz/dns-query
https://ahoj.email/dns-query
https://all.dns.mullvad.net/dns-query
https://ams01.dnscry.pt/dns-query
https://ant.dns.qwer.pw/dns-query
https://antivirus.bebasid.com/dns-query
https://antstars.win/dns-query
https://anycast.dns.nextdns.io
https://anycast.dns.nextdns.io/dns-query
https://anycast.uncensoreddns.org/dns-query
https://aqua.is.my.waifu.cz/dns-query
https://arashi.net.eu.org/dns-query
https://asia.tri-dns.net/dns-query
https://ath01.dnscry.pt/dns-query
https://atl01.dnscry.pt/dns-query
https://atris.cyou/dns-query
https://at-wie-w-p-1.nashkan.net/dns-query
https://au01.dns4me.net
https://au02.dns4me.net
https://au-syd-w-f-1.nashkan.net/dns-query
https://awan.ftp.sh/dns-query
https://awan.ftp.sh/noporn-cl
https://awan.ftp.sh/no-vice
https://awan.ftp.sh/unblocked
https://bahopir188.dnshome.de/dns-query
https://base.dns.mullvad.net/dns-query
https://basic.rethinkdns.com/
https://bazooki-infra.dev/dns-query
https://bestwon203.com/dns-query
https://blank.dnsforge.de/dns-query
https://blitz.ahadns.com
https://blitz.ahadns.com/1:1
https://blocker.thethorsens.org/dns-query
https://bne01.dnscry.pt/dns-query
https://bog01.dnscry.pt/dns-query
https://bom01.dnscry.pt/dns-query
https://bru01.dnscry.pt/dns-query
https://bts01.dnscry.pt/dns-query
https://ca01.dns4me.net
https://ca02.dns4me.net
https://catchen121299.top/dns-query
https://child.joindns4.eu/dns-query
https://child-noads.joindns4.eu/dns-query
https://chr.kepegawaiandju.id/dns-query
https://chuncheon.dnsovertor.cc/dns-query
https://clean.dnsforge.de/dns-query
https://cloudflare-dns.com/dns-query
https://common.dot.dns.yandex.net/dns-query
https://cph01.dnscry.pt/dns-query
https://cvt01.dnscry.pt/dns-query
https://darkness.is.my.waifu.cz/dns-query
https://dart.kpsn.org/dns-query
https://d.bod.lol/dns-query
https://de01.dns4me.net
https://deep-henchman-excuse.cfd/dns-query
https://de-fra-w-p-1.nashkan.net/dns-query
https://de-fsn-w-p-1.nashkan.net/dns-query
https://d.niaox.com/dns-query
https://dns0.eu
https://dns.0ooo.icu/dns-query
https://dns.0rz.ing/dns-query
https://dns.0x55.net/dns-query
https://dns10.quad9.net:443/dns-query
https://dns10.quad9.net/dns-query
https://dns11.quad9.net/dns-query
https://dns12.quad9.net:443/dns-query
https://dns12.quad9.net/dns-query
https://dns1.dnscrypt.ca/dns-query
https://dns1.dns-ga.de/dns-query
https://dns1.in-berlin.de/dns-query
https://dns1.nordvpn.com/dns-query
https://dns1.pietjacobs.be/dns-query
https://dns1.serdcebolit.ru/dns-query
https://dns-1.wil.cloud/dns-query
https://dns2.dns-ga.de/dns-query
https://dns2.in-berlin.de/dns-query
https://dns2.nordvpn.com/dns-query
https://dns-2.wil.cloud/dns-query
https://dns3.dns-ga.de/dns-query
https://dns.52306.org/dns-query
https://dns64.cloudflare-dns.com/dns-query
https://dns64.dns.google/dns-query
https://dns.688447.xyz/dns-query
https://dns.9999.sg/dns-query
https://dns9.quad9.net/dns-query
https://dns.a47.me/dns-query
https://dns.aa.net.uk/dns-query
https://dns.adguard-dns.com/dns-query
https://dns.akbxr.com/dns-query
https://dns.alidns.com/dns-query
https://dns.anon.no/dns-query
https://dns.applewebkit.dev/dns-query
https://dns.arapurayil.com/dns-query
https://dns.arkbotech.com/dns-query
https://dns.artikel10.org/dns-query
https://dns.asterimoon.com/dns-query
https://dns.auapi.fun/dns-query
https://dns.b612.me/dns-query
https://dns.b72.com/dns-query
https://dns.bebasid.com/dns-hagezi
https://dns.bebasid.com/dns-oisd
https://dns.bebasid.com/dns-query
https://dns.bebasid.com/unfiltered
https://dns.belnet.be/dns-query
https://dns.bermeitinger.eu/dns-query
https://dns.bitdefender.net/dns-query
https://dns.bitservices.io/dns-query
https://dns.blaumer.dev/dns-query
https://dns.blokada.org/dns-query
https://dns.bmwhocking.com/dns-query
https://dns.braene.com/dns-query
https://dns.brahma.world/dns-query
https://dns.bravoc.one/dns-query
https://dns.brembeck.cloud/dns-query
https://dns.burgas.pro/dns-query
https://dns.busold.ws/dns-query
https://dns.cabbage.zone/dns-query
https://dns.cahlen.com/dns-query
https://dns.carter.me/dns-query
https://dns.caspervk.net/dns-query
https://dns.cctld.kg/dns-query
https://dns.cert.ee/dns-query
https://dns.cfiec.net/dns-query
https://dns.chenu.ch/dns-query
https://dns.christerwaren.fi
https://dns.chriswservers.com/dns-query
https://dns.chunghwamc.com/dns-query
https://dns.circl.lu/dns-query
https://dns.cloudflare.com/dns-query
https://dns.comff.net/dns-query
https://dns.comss.one/dns-query
https://dns.controld.com/comss
https://dns.criena.net/dns-query
https://dns.crystalyx.net/dns-query
https://dns.csaonline.de/dns-query
https://dns.csa-rz.de/dns-query
https://dns.csswg.org/dns-query
https://dns.cybertonic.tech/dns-query
https://dns.cynthialabs.net/dns-query
https://dns.d94.xyz/dns-query
https://dns.d96.info/dns-query
https://dns.daarrk.tech/dns-query
https://dns.datenquark.de/dns-query
https://dns.deadsec.net/dns-query
https://dns.decky.eu/dns-query
https://dns.decloudus.com/dns-query
https://dns.dev-umbrellagov.com/dns-query
https://dns.diarbagus.id/dns-query
https://dns.digitale-gesellschaft.ch/dns-query
https://dns.digitalsize.net/dns-query
https://dns.dns-53.com/dns-query
https://dns.dns-53.uk/dns-query
https://dns.dns-53.us/dns-query
https://dns.dnshome.de/dns-query
https://dns.dnswarden.com/uncensored
https://dns-doh.dnsforfamily.com/dns-query
https://dns.dremaxx.de/dns-query
https://dns.dynx.pro/dns-query
https://dns.dynx.pro/dns-query/family
https://dns.edgeburnmedia.com/dns-query
https://dns.edison42.dev/dns-query
https://dns.editechstudio.com/dns-query
https://dns.efficientdocuments.com/dns-query
https://dns.elemental.software/dns-query
https://dns.eliv.kr/dns-query
https://dns.emiliyan.com/dns-query
https://dns.engineer.web.id/dns-query
https://dns.faked.org/dns-query
https://dns.fancyorg.at/dns-query
https://dns.farshidhakimy.de/dns-query
https://dns.fehlsprache.de/dns-query
https://dns.ffnw.de/dns-query
https://dns.flightspace.net/dns-query
https://dns.floriantinney.de/dns-query
https://dns.flymc.cc/dns-query
https://dnsforge.de/dns-query
https://dns.froth.zone/dns-query
https://dns.gamban.com/dns-query
https://dns.girino.org/dns-query
https://dns.glf.wtf/dns-query
https://dns.google/dns-query
https://dns.guard.io/dns-query
https://dns.guardmydns.com/dns-query
https://dns.gutwe.in/dns-query
https://dns.haka.se/dns-query
https://dns.henek.ovh/dns-query
https://dns.hoody.com/dns-query
https://dns.hoservers.com/dns-query
https://dns.hostux.net/ads
https://dns.hostux.net/dns-query
https://dns.huas.me/dns-query
https://dns.hypercute.eu/dns-query
https://dns.inclusioproject.com/dns-query
https://dns.indybanipal.com/dns-query
https://dns.inforlogia.com/dns-query
https://dns.is0mino.com/dns-query
https://dns.ishan.pw/dns-query
https://dns.jhangy.us/dns-query
https://dns.jupitrdns.com/dns-query
https://dns.k3nny.fr/dns-query
https://dns.kapite.in/dns-query
https://dns.karadag.me/dns-query
https://dns.kastner-online.de/dns-query
https://dns.kawa.tf/dns-query
https://dns.kebree.fr/dns-query
https://dns.kerekes.xyz/dns-query
https://dns.kernel-error.de/dns-query
https://dns.kescher.at/dns-query
https://dns.keviland.com/dns-query
https://dns.koala.us.to/dns-query
https://dns.kosan.moe/dns-query
https://dns.kukal.cz/dns-query
https://dns.kumoumi.net/dns-query
https://dns.kuuhaku.moe/dns-query
https://dns.l337.site/dns-query
https://dns.lars-lehmann.net/dns-query
https://dns.learningman.top/dns-query
https://dns.lepilleur.com/dns-query
https://dns.lermer.nl/dns-query
https://dns.levonet.sk/dns-query
https://dns.liberador.net
https://dns.lihj.me/dns-query
https://dns.lobbygod.com/dns-query
https://dnslow.me/dns-query
https://dns.luma-medien.com/dns-query
https://dns.marasov.id/dns-query
https://dns.marbledfennec.net/dns-query
https://dns.mateo.ovh/dns-query
https://dns.mayx.eu.org/dns-query
https://dns.melvin2204.nl/dns-query
https://dns.mh4ckt3mh4ckt1c4s.xyz/dns-query
https://dns.mnet-online.de/dns-query
https://dns.momou.ch/dns-query
https://dns.momou.ch/dns-query/kids
https://dns.momou.ch/dns-query/unfiltered
https://dns.mullvad.net/dns-query
https://dns.mzjtechnology.com/dns-query
https://dns.nako.kr/dns-query
https://dns.neeb.it/dns-query
https://dns.netraptor.com.au/dns-query
https://dns.netvpn.net/dns-query
https://dns.nextdns.io
https://dns.nextdns.io/dns-query
https://dns.nextdns.io/dnscrypt-proxy
https://dns.nhtsky.com/dns-query
https://dns.nick-slowinski.de/dns-query
https://dns.ningkelle.id/dns-query
https://dns.njal.la/dns-query
https://dns.nodoa.me/dns-query
https://dns.novali.date/dns-query
https://dns.novg.net/dns-query
https://dns.numerus.com/dns-query
https://dns.odinpl.com/dns-query
https://dns.ofdoom.net/dns-query
https://dns.oliviertv.co.za/dns-query
https://dns.oszx.co/dns-query
https://dns.ourvau.lt/dns-query
https://dns.paesa.es/dns-query
https://dns.pari.network/dns-query
https://dns.paulo.nom.za/dns-query
https://dns.petqa.ru/dns-query
https://dns.phillipjberry.net/dns-query
https://dns.pragmasec.nl/dns-query
https://dns.propheci.xyz/dns-query
https://dns.pub/dns-query
https://dnspub.restena.lu/dns-query
https://dns.pumplex.com/dns-query
https://dns.quad9.net/dns-query
https://dns.quiet.rocks/dns-query
https://dns.rabbitdns.org/dns-query
https://dns.rbn.gr/dns-query
https://dns.reckoningslug.name/dns-query
https://dns.redhosting.com.ar/dns-query
https://dns.redvau.lt/dns-query
https://dns.reitmeier.me/dns-query
https://dns.repressoh.it/dns-query
https://dns.retakecs.com/dns-query
https://dns.roedel.cloud/dns-query
https://dns.rslvr.eu/dns-query
https://dns.sarilouis.com/dns-query
https://dns.sec511.com/dns-query
https://dns.seia.io/dns-query
https://dns.seiffert.me/dns-query
https://dns.sev.monster/dns-query
https://dns.shareworx.net/dns-query
https://dns.sheggi.ch/dns-query
https://dns.shimul.me/dns-query
https://dns.silen.org/dns-query
https://dns.silentlybren.com/dns-query
https://dns.sindominio.net/dns-query
https://dns.skrep.eu/dns-query
https://dns.slinkyman.net/dns-query
https://dns.smartguard.io/dns-query
https://dns.startupstack.tech/dns-query
https://dns.stevenz.net/dns-query
https://dns.stirringphoto.com/dns-query
https://dns.stormycloud.org/dns-query
https://dns.suhaila.dev/dns-query
https://dns.superstefan.win/dns-query
https://dns.surfsharkdns.com/dns-query
https://dns.svoi.dev/dns-query
https://dns.sv-zauner.at/dns-query
https://dns.switch.ch/dns-query
https://dns.sy.st/dns-query
https://dns.szpadel.ovh/dns-query
https://dns.t53.de/dns-query
https://dns.technologycage.com/dns-query
https://dns.telekom.de/dns-query
https://dns.thebuckners.org/dns-query
https://dns.tierradeayala.com/dns-query
https://dns.tipsy.coffee/dns-query
https://dns.tls-data.de/dns-query
https://dnstls.mobik.com/dns-query
https://dns.twnic.tw/dns-query
https://dns.unx.io/dns-query
https://dns.vaioswolke.xyz/dns-query
https://dns.vault81.de/dns-query
https://dns.vojtat.cz/dns-query
https://dnsvps.familiamv.net/dns-query
https://dns.w3ctag.org/dns-query
https://dns.wang.art/dns-query
https://dns.xlion.tw/dns-query
https://dns.xuming.studio/dns-query
https://dns.yague.me/dns-query
https://dns.yuu-g.net/dns-query
https://do-39574-tr.xyz/dns-query
https://dog.dns.qwer.pw/dns-query
https://doh-01.spectrum.com/dns-query
https://doh-02.spectrum.com/dns-query
https://doh1.b-cdn.net/dns-query
https://doh-2.seby.io/dns-query
https://doh.360.cn/dns-query
https://doh.aaaab3n.moe/dns-query-114514
https://doh.angry.im/dns-query
https://doh.apad.pro/dns-query
https://doh.applied-privacy.net/query
https://doh.appliedprivacy.net/query
https://doh.archuser.org/dns-query
https://doh.asagiri.moe/dns-query
https://doh.beauty
https://doh.bortzmeyer.fr/
https://doh.buzz/dns-query
https://doh.cippapp.com/dns-query
https://doh.cleanbrowsing.org/doh/adult-filter/
https://doh.cleanbrowsing.org/doh/family-filter/
https://doh.cleanbrowsing.org/doh/security-filter/
https://doh.cornes.me/dns-query
https://doh.crypto.sx/dns-query
https://doh-de.blahdns.com/dns-query
https://doh.denypradana.com/dns-query
https://doh.disconnect.app/dns-query
https://doh.dns4all.eu/dns-query
https://doh.dns.sb/dns-query
https://doh.domreg.lt/dns-query
https://doh.eddi.net/dns-query
https://doh.ersei.net/dns-query
https://doh.excdn.eu.org
https://doh.familyshield.opendns.com/dns-query
https://doh.ffmuc.net/dns-query
https://doh.futa.gg/dns-query
https://doh.immerda.ch/dns-query
https://doh-ipv6.crypto.sx/dns-query
https://doh.iucc.ac.il/dns-query
https://doh.kel.pe
https://doh.kidzonet.io/dns-query
https://doh.la.ahadns.net/dns-query
https://doh.lacontrevoie.fr/dns-query
https://doh.libredns.gr/ads
https://doh.libredns.gr/dns-query
https://doh.libredns.gr/noads
https://doh.li/dns-query
https://doh.lv/dns-query
https://doh.maskab.com/dns-query
https://doh.mmmalia.com/dns-query
https://doh.nic.lv/dns-query
https://doh.niyawe.de/dns-query
https://doh.nl.ahadns.net/dns-query
https://doh.opendns.com/dns-query
https://doh-own-recursion.nicolas-dorriere.fr/dns-query
https://doh.qis.io/dns-query
https://doh-random-upstream.nicolas-dorriere.fr/dns-query
https://doh.sandbox.opendns.com/dns-query
https://doh.sb/dns-query
https://doh.serverhost.no/dns-query
https://doh.sunoaki.net/dns-query
https://doh.sz-dns.com/dns-query
https://doh.thio.me/dns-query
https://doh.tiarap.org/dns-query
https://doh.tiar.app/dns-query
https://doh.umbrella.com/dns-query
https://doh.viatech.com.tw/dns-query
https://doh.webnmail.de/dns-query
https://doh.zknt.org/dns-query
https://doth.huque.com/dns-query
https://droyd.top/dns-query
https://dub01.dnscry.pt/dns-query
https://dukun.de/dns-query
https://dus01.dnscry.pt/dns-query
https://dvgarm.com/dns-query
https://eliatofani.ovh/dns-query
https://eu1.dns.lavate.ch/dns-query
https://eu.tri-dns.net/dns-query
https://evn01.dnscry.pt/dns-query
https://extended.dns.mullvad.net/dns-query
https://eyg01.dnscry.pt/dns-query
https://family.5ososea.com/dns-query
https://family.adguard-dns.com/dns-query
https://family.canadianshield.cira.ca/dns-query
https://family.cloudflare-dns.com/dns-query
https://family.dns.mullvad.net/dns-query
https://family.dns.ningkelle.id/dns-query
https://family.dot.dns.yandex.net/dns-query
https://family.mydns.network/dns-query
https://family.rabbitdns.org/dns-query
https://farewellkou.click/dns-query
https://fidelius.top/dns-query
https://fi-hel-w-f-2.nashkan.net/dns-query
https://fjr01.dnscry.pt/dns-query
https://fra01.dnscry.pt/dns-query
https://fra02.dnscry.pt/dns-query
https://freedns.controld.com/family
https://freedns.controld.com/p0
https://freedns.controld.com/p1
https://freedns.controld.com/p2
https://freedns.controld.com/p3
https://freedns.controld.com/uncensored
https://freedns.controld.com/x-1hosts-lite
https://freedns.controld.com/x-1hosts-mini
https://freedns.controld.com/x-1hosts-pro
https://freedns.controld.com/x-adguard
https://freedns.controld.com/x-devdan
https://freedns.controld.com/x-goodbyeads
https://freedns.controld.com/x-hagezi-light
https://freedns.controld.com/x-hagezi-normal
https://freedns.controld.com/x-hagezi-pro
https://freedns.controld.com/x-hagezi-proplus
https://freedns.controld.com/x-hagezi-tif
https://freedns.controld.com/x-hagezi-ultimate
https://freedns.controld.com/x-oisd
https://freedns.controld.com/x-oisd-basic
https://freedns.controld.com/x-stevenblack
https://freedom.mydns.network/dns-query
https://fr-gra-w-f-1.nashkan.net/dns-query
https://fr-gra-w-p-1.nashkan.net/dns-query
https://frog.dns.qwer.pw/dns-query
https://gb-lon-w-f-1.nashkan.net/dns-query
https://gb-lon-w-p-1.nashkan.net/dns-query
https://gb-lon-w-p-2.nashkan.net/dns-query
https://geg01.dnscry.pt/dns-query
https://gibblets.top/dns-query
https://glacius.top/dns-query
https://goose.buckyfan.net/dns-query
https://gru01.dnscry.pt/dns-query
https://gva01.dnscry.pt/dns-query
https://haf01.dnscry.pt/dns-query
https://han01.dnscry.pt/dns-query
https://hard.dnsforge.de/dns-query
https://hel01.dnscry.pt/dns-query
https://helios.plan9-dns.com/dns-query
https://hfgx.shop/dns-query
https://home-server.store/dns-query
https://home.wriedts.de/dns-query
https://hrk01.dnscry.pt/dns-query
https://hungary.privacy-dns.pw/dns-query
https://ibksturm.synology.me/dns-query
https://ibuki.cgnat.net/dns-query
https://ie01.dns4me.net
https://ikarosalpha.xyz/dns-query
https://imperio.top/dns-query
https://india.privacy-dns.pw/dns-query
https://internetsehat.bebasid.com/adblock
https://internetsehat.bebasid.com/dns-query
https://iozoi.cn/dns-query
https://ist01.dnscry.pt/dns-query
https://japan.dnsovertor.cc/dns-query
https://jkdns.me/dns-query
https://jkt01.dnscry.pt/dns-query
https://johneldenring.lol/dns-query
https://jp01.dns4me.net
https://jp.tiarap.org/dns-query
https://jp.tiar.app/dns-query
https://kaitain.restena.lu/dns-query
https://kids.5ososea.com/dns-query
https://kids.dns0.eu
https://kiv01.dnscry.pt/dns-query
https://ko-18948-tr.xyz/dns-query
https://kronos.plan9-dns.com/dns-query
https://kx-97795-tr.xyz/dns-query
https://kz-pav-w-p-1.nashkan.net/dns-query
https://las01.dnscry.pt/dns-query
https://las-vegas.privacy-dns.pw/dns-query
https://lesuo.top/dns-query
https://lifeisa.live/dns-query
https://lim01.dnscry.pt/dns-query
https://lindung.pp.ua/dns-query
https://lindung.pp.ua/family
https://lion.dns.qwer.pw/dns-query
https://loadlow.me/dns-query
https://lon01.dnscry.pt/dns-query
https://lukscasino-479-tr.xyz/dns-query
https://lukscasino-542-tr.xyz/dns-query
https://lukscasino-929-tr.xyz/dns-query
https://luna-is.so-gorgeo.us.kg/dns-query
https://luxembourg.privacy-dns.pw/dns-query
https://mabuktogel.directory/dns-query
https://mad01.dnscry.pt/dns-query
https://maqgie.xyz/dns-query
https://masters-of-cloud.de/dns-query
https://max.rethinkdns.com/dns-query
https://mc-sft.cn/dns-query
https://megumin.is.my.waifu.cz/dns-query
https://mendozasdelivery.com/dns-query
https://michelo.line.pm/dns-query
https://mikezhang.xyz/dns-query
https://mil01.dnscry.pt/dns-query
https://miniapp.global/dns-query
https://mita-is.so-gorgeo.us.kg/dns-query
https://mnrv.trade/dns-query
https://mozilla.cloudflare-dns.com/dns-query
https://multi.dns.marbledfennec.net/dns-query
https://myatris.sbs/dns-query
https://n0.eu/dns-query
https://nana-is.so-gorgeo.us.kg/dns-query
https://netcup.mismat.ch/dns-query
https://newd.rezyro.com/dns-query
https://nicsezcheckfbi.gov
https://nightlymoon.us.kg/dns-query
https://nightlymoon.us.kg/family
https://nindy-is.so-gorgeo.us.kg/dns-query
https://nl.dns.privex.io
https://nl-dro-w-f-1.nashkan.net/dns-query
https://noads.joindns4.eu/dns-query
https://nova-is.so-gorgeo.us.kg/dns-query
https://ns.00dani.me/dns-query
https://ns0.fdn.fr/dns-query
https://ns1.fdn.fr/dns-query
https://ns1.opennameserver.org/dns-query
https://ns2.4netguides.org/dns-query
https://ns2.wuyouss.com/dns-query
https://ns3.com/dns-query
https://ns3.cx/dns-query
https://ns3.link/dns-query
https://ns3.wuyouss.com/dns-query
https://ns4.opennameserver.org/dns-query
https://ns.data.haus/dns-query
https://nsec.arnor.org/dns-query
https://ns.nerdytechgeeks.co.za/dns-query
https://ns.net.kg/dns-query
https://ns.nwps.fi/dns-query/family
https://ns.nwps.fi/dns-query/public
https://ns.ral9005.org/dns-query
https://ns.trcnet.fi/dns-query
https://ntwrkh.pro/dns-query
https://nue01.dnscry.pt/dns-query
https://nue2.moderateinfra.net/dns-query
https://nyc01.dnscry.pt/dns-query
https://nz01.dns4me.net
https://obscuro.top/dns-query
https://odvr.nic.cz/dns-query
https://odvr.nic.cz/doh
https://omr01.dnscry.pt/dns-query
https://open.dns0.eu
https://open.dns0.eu/dns-query
https://ord01.dnscry.pt/dns-query
https://ordns.he.net
https://ordns.he.net/dns-query
https://par01.dnscry.pt/dns-query
https://paranoia.mydns.network/dns-query
https://paulo.nom.za/dns-query
https://pdx01.dnscry.pt/dns-query
https://pepetio.xyz/dns-query
https://per.adfilter.net/dns-query
https://phl01.dnscry.pt/dns-query
https://phx01.dnscry.pt/dns-query
https://pihole.aws.ketan.dev/dns-query
https://pluton.plan9-dns.com/dns-query
https://pm1239-bd.xyz/dns-query
https://pm7051-br.xyz/dns-query
https://pm9352-bd.xyz/dns-query
https://pooblet.co.za/dns-query
https://princez.uk/dns-query
https://privacy.plumedns.com/dns-query
https://private.canadianshield.cira.ca/dns-query
https://protected.canadianshield.cira.ca/dns-query
https://protective.joindns4.eu/dns-query
https://public.dns.iij.jp/dns-query
https://qdns02.nymterm.com/dns-query
https://qlf-doh.inria.fr/dns-query
https://rdd01.dnscry.pt/dns-query
https://regiopolis.cloud/dns-query
https://renardbleu.dev/dns-query
https://resolv1.trash.net/trash-dns
https://resolv2.trash.net/trash-dns
https://resolv3.trash.net/trash-dns
https://resolver1.absolight.net/dns-query
https://resolver2.absolight.net/dns-query
https://resolver3.absolight.net/dns-query
https://resolver.dnsprivacy.org.uk/dns-query
https://resolver-eu.lelux.fi/dns-query
https://resolver.sunet.se/dns-query
https://resolv.flokinet.net/dns-query
https://revelio.top/dns-query
https://rfree1.blue-shield.at/dns-query
https://rfree2.blue-shield.at/dns-query
https://ric.openbld.net/dns-query
https://ro-buc-w-f-1.nashkan.net/dns-query
https://ro-buc-w-p-1.nashkan.net/dns-query
https://romania.privacy-dns.pw/dns-query
https://router.comss.one/dns-query
https://rx.techomespace.com/dns-query
https://sa01.dns4me.net
https://safe.dot.dns.yandex.net/dns-query
https://safeservedns.com/dns-query
https://sea01.dnscry.pt/dns-query
https://secondary.dns.seia.io/dns-query
https://secure.anudeep.me/dns-query
https://secure.avastdns.com/dns-query
https://security.cloudflare-dns.com/dns-query
https://security.rabbitdns.org/dns-query
https://seoul.dnsovertor.cc/dns-query
https://sg01.dns4me.net
https://sgn01.dnscry.pt/dns-query
https://sg-w-f-1.nashkan.net/dns-query
https://sg-w-p-1.nashkan.net/dns-query
https://sin02.dnscry.pt/dns-query
https://sin03.dnscry.pt/dns-query
https://sjc01.dnscry.pt/dns-query
https://sky.rethinkdns.com/1
https://sky.rethinkdns.com/1:IAAgAA==
https://sky.rethinkdns.com/dns-query
https://slc01.dnscry.pt/dns-query
https://sof01.dnscry.pt/dns-query
https://solaxy.live/dns-query
https://squidmall.vip/dns-query
https://sto01.dnscry.pt/dns-query
https://stratus.bugz.fr/dns-query
https://sundalandia.pp.ua/dns-query
https://sundalandia.pp.ua/family
https://sunnygyl.com/dns-query
https://sweden.privacy-dns.pw/dns-query
https://switzerland.privacy-dns.pw/dns-query
https://syd01.dnscry.pt/dns-query
https://syd02.dnscry.pt/dns-query
https://syd.adfilter.net/dns-query
https://tbs01.dnscry.pt/dns-query
https://tecdrive.site/dns-query
https://testaghome.meshkov.info/dns-query
https://tetty-is.so-gorgeo.us.kg/dns-query
https://tiger.dns.qwer.pw/dns-query
https://tll01.dnscry.pt/dns-query
https://tlv01.dnscry.pt/dns-query
https://tor.vasi.li/dns-query
https://tpa01.dnscry.pt/dns-query
https://trf01.dnscry.pt/dns-query
https://tributh.net/dns-query
https://tri-dns.net/dns-query
https://tsm01.dnscry.pt/dns-query
https://tujenasnaszato.xyz/dns-query
https://tuskythehusky.tech/dns-query
https://tyo02.dnscry.pt/dns-query
https://uk01.dns4me.net
https://unfiltered.adguard-dns.com/dns-query
https://unfiltered.joindns4.eu/dns-query
https://unicast.uncensoreddns.org/dns-query
https://united-arab-emirates.privacy-dns.pw/dns-query
https://us01.dns4me.net
https://us02.dns4me.net
https://us1.blissdns.net/dns-query
https://us-chi-w-f-1.nashkan.net/dns-query
https://us-chi-w-p-1.nashkan.net/dns-query
https://us-hil-w-f-1.nashkan.net/dns-query
https://us-hil-w-p-1.nashkan.net/dns-query
https://us-jac-w-f-1.nashkan.net/dns-query
https://us-jac-w-p-1.nashkan.net/dns-query
https://us-kan-w-f-1.nashkan.net/dns-query
https://us-kan-w-p-1.nashkan.net/dns-query
https://us-nyc-w-f-1.nashkan.net/dns-query
https://us-nyc-w-p-1.nashkan.net/dns-query
https://us-saj-w-f-1.nashkan.net/dns-query
https://us-saj-w-p-1.nashkan.net/dns-query
https://vie01.dnscry.pt/dns-query
https://virga.pp.ua/dns-query
https://virga.pp.ua/porn
https://vno01.dnscry.pt/dns-query
https://vorlif.org/dns-query
https://vps.robotboard.de/dns-query
https://v.recipes/dns-adblock
https://v.recipes/dns-ecs
https://v.recipes/dns-query
https://waw02.dnscry.pt/dns-query
https://wikimedia-dns.org/dns-query
https://xn--durhre-yxa.de/dns-query
https://yarp.lefolgoc.net/dns-query
https://yhz01.dnscry.pt/dns-query
https://your-dns.run/dns-query
https://yunyun.is.my.waifu.cz/dns-query
https://yussy-is.so-gorgeo.us.kg/dns-query
https://yvr01.dnscry.pt/dns-query
https://yyc01.dnscry.pt/dns-query
https://yyz01.dnscry.pt/dns-query
https://zakaria.website/dns-query
https://zdn.ro/dns-query
https://zero.dns0.eu
https://zero.dns0.eu/
quic://comss.dns.controld.com
quic://dns.adguard-dns.com
quic://dns.jupitrdns.com
quic://doh.tiar.app
quic://family.adguard-dns.com
quic://ibksturm.synology.me
quic://unfiltered.adguard-dns.com
quic://zero.dns0.eu
quic://dns.nextdns.io
tls://101.101.101.101
tls://ada.openbld.net
tls://adblock.dns.mullvad.net
tls://adult-filter-dns.cleanbrowsing.org
tls://all.dns.mullvad.net
tls://antivirus.bebasid.com:853
tls://anycast.censurfridns.dk
tls://anycast.dns.nextdns.io
tls://base.dns.mullvad.net
tls://common.dot.dns.yandex.net
tls://comss.dns.controld.com
tls://dns10.quad9.net
tls://dns11.quad9.net
tls://dns.adguard-dns.com
tls://dns.alidns.com
tls://dns.bebasid.com:853
tls://dns.bitgeek.in
tls://dns.cfiec.net
tls://dns.cmrg.net
tls://dns.decloudus.com
tls://dns.digitale-gesellschaft.ch
tls://dns-dot.dnsforfamily.com
tls://dnsforge.de
tls://dns.google
tls://dns.jupitrdns.com
tls://dns.larsdebruin.net
tls://dns.marbledfennec.net
tls://dns.momou.ch
tls://dns.mullvad.net
tls://dns.neutopia.org
tls://dns.nextdns.io
tls://dns.opendns.com
tls://dns.oszx.co
tls://dnsotls.lab.nic.cl
tls://dnsovertls1.sinodun.com
tls://dnsovertls.sinodun.com
tls://dns.pumplex.com
tls://dns.quad9.net
tls://dns.seia.io
tls://dns.switch.ch
tls://dns-tls.bitwiseshift.net
tls://dns-tls.qis.io
tls://dot1.applied-privacy.net
tls://dot.360.cn
tls://dot.ffmuc.net
tls://dot.la.ahadns.net
tls://dot.libredns.gr
tls://dot.nl.ahadns.net
tls://dot.pub
tls://dot.sb
tls://dot.seby.io
tls://dot.securedns.eu
tls://dot.tiar.app
tls://extended.dns.mullvad.net
tls://family-adblock.bebasid.com:853
tls://family.adguard-dns.com
tls://family.canadianshield.cira.ca
tls://family.cloudflare-dns.com
tls://family.dns.mullvad.net
tls://family.dot.dns.yandex.net
tls://family-filter-dns.cleanbrowsing.org
tls://familyshield.opendns.com
tls://getdnsapi.net
tls://hagezi.dns.bebasid.com:853
tls://ibksturm.synology.me
tls://internetsehat.bebasid.com:853
tls://jp.tiar.app
tls://kaitain.restena.lu
tls://kids.dns.momou.ch
tls://max.rethinkdns.com
tls://ns1.dnsprivacy.at
tls://ns2.dnsprivacy.at
tls://odvr.nic.cz
tls://oisd.dns.bebasid.com:853
tls://one.one.one.one
tls://ordns.he.net
tls://p1.freedns.controld.com
tls://p2.freedns.controld.com
tls://p3.freedns.controld.com
tls://privacydns.go6lab.si
tls://private.canadianshield.cira.ca
tls://protected.canadianshield.cira.ca
tls://public.dns.iij.jp
tls://resolver-eu.lelux.fi
tls://ric.openbld.net
tls://safe.dot.dns.yandex.net
tls://sandbox.opendns.com
tls://secondary.dns.seia.io
tls://security.cloudflare-dns.com
tls://security-filter-dns.cleanbrowsing.org
tls://tls-dns-u.odvr.dns-oarc.net
tls://uncensored.dns.dnswarden.com
tls://unfiltered.adguard-dns.com
tls://unfiltered.dns.bebasid.com:853
tls://unfiltered.dns.momou.ch
tls://unicast.censurfridns.dk
tls://wikimedia-dns.org
tls://zero.dns0.eu
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;script&gt;
document.addEventListener('click', function (e) {
if (!e.target.matches('.copy-btn')) return;
const btn = e.target;
const container = btn.closest('.fold-code');
if (!container) return;
const codeEl = container.querySelector('pre code');
if (!codeEl) return;
const text = codeEl.innerText;
if (navigator.clipboard &amp;&amp; navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(() =&gt; {
const old = btn.innerText;
btn.innerText = '已复制';
setTimeout(() =&gt; btn.innerText = old, 1500);
}, () =&gt; flashFail(btn));
} else {
const ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try {
document.execCommand('copy');
const old = btn.innerText;
btn.innerText = '已复制';
setTimeout(() =&gt; btn.innerText = old, 1500);
} catch (err) {
flashFail(btn);
}
document.body.removeChild(ta);
}
function flashFail(button) {
const old = button.innerText;
button.innerText = '复制失败';
setTimeout(() =&gt; button.innerText = old, 1500);
}
});
&lt;/script&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://0o0.codeberg.page/posts/safedns/feature.webp"/></item><item><title>我的 Firefox 自定义手记 - policies.json&amp;AutoConfig篇[2]</title><link>https://0o0.codeberg.page/posts/firefox/autojs/</link><pubDate>Sun, 05 Oct 2025 23:00:00 +0000</pubDate><author>mailto:0o0.settle618@simplelogin.com (沉渊覆雪)</author><guid>https://0o0.codeberg.page/posts/firefox/autojs/</guid><description>
&lt;h2 class="relative group"&gt;前言
&lt;div id="前言" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%89%8d%e8%a8%80" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;书接上文，我们已经使用了 user.js 对我们的 Firefox 进行了许多配置&lt;br&gt;
不过，对其自定义的方式远不止于此&lt;br&gt;
本文就让我们来研究一下“企业策略”和可以锁定 &lt;a
href="about:config"&gt;about:config&lt;/a&gt; 配置项的 AutoConfig&lt;/p&gt;
&lt;p&gt;参考：&lt;a
href="https://mozilla.github.io/policy-templates/"
target="_blank"
&gt;https://mozilla.github.io/policy-templates/&lt;/a&gt;&lt;/p&gt;
&lt;h2 class="relative group"&gt;企业策略 - policies.json
&lt;div id="企业策略---policiesjson" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bc%81%e4%b8%9a%e7%ad%96%e7%95%a5---policiesjson" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;h3 class="relative group"&gt;如何配置
&lt;div id="如何配置" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%a6%82%e4%bd%95%e9%85%8d%e7%bd%ae" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;这是另一个跨平台配置 Firefox 的方式，不过相对而言，其灵活性较低，且其本身面向的就是企业场景&lt;br&gt;
&lt;br&gt;
我们需要在 Firefox 的&lt;strong&gt;安装目录&lt;/strong&gt;新建一个 distribution 目录放置&lt;code&gt;policies.json&lt;/code&gt;&lt;br&gt;
Linux 视发行版而异，亦可放置在&lt;code&gt;/etc/firefox/policies&lt;/code&gt;&lt;br&gt;
MacOS 应该为&lt;code&gt;Firefox.app/Contents/Resources/distribution&lt;/code&gt;、
Windows 不必多说&lt;/p&gt;
&lt;h3 class="relative group"&gt;防止 Firefox 更新超过指定版本
&lt;div id="防止-firefox-更新超过指定版本" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%98%b2%e6%ad%a2-firefox-%e6%9b%b4%e6%96%b0%e8%b6%85%e8%bf%87%e6%8c%87%e5%ae%9a%e7%89%88%e6%9c%ac" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;您可以将任何版本指定为 xx. Firefox 将更新所有次要版本，但不会更新超过主要版本.
您也可以将版本指定为 xx.xx Firefox 将更新所有补丁版本，但不会更新超过次要版本.
应指定存在或保证存在的版本。如果您指定的版本最终不存在，Firefox 将更新超过该版本.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;policies&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;AppUpdatePin&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;128.10.0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 class="relative group"&gt;添加自定义搜索引擎
&lt;div id="添加自定义搜索引擎" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%b7%bb%e5%8a%a0%e8%87%aa%e5%ae%9a%e4%b9%89%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;以 StartPage 为例
（IconURL 亦可为 Base64 编码的图片数据）&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;policies&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;SearchEngines&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;Add&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;Name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;StartPage&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;URLTemplate&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://www.startpage.com/search?q={searchTerms}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;Method&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;IconURL&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://www.startpage.com/favicon.ico&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;Alias&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;@sp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;Description&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;StartPage&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;PostData&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;SuggestURLTemplate&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 class="relative group"&gt;自动安装浏览器扩展
&lt;div id="自动安装浏览器扩展" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e6%b5%8f%e8%a7%88%e5%99%a8%e6%89%a9%e5%b1%95" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;通过 policies.json ，我们可以使 Firefox 自动安装扩展，且使之无法卸载&lt;br&gt;
这在一些场景相对来说很有用&lt;br&gt;
首先，我们需要获取扩展在 AMO、addons.mozilla.org) 的“GUID”
我们可以使用&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl https://addons.mozilla.org/api/v5/addons/addon/ublock-origin/ &lt;span class="p"&gt;|&lt;/span&gt; jq -r .guid
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;获取到&lt;code&gt;uBlock0@raymondhill.net&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;policies.json：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;policies&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;ExtensionSettings&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;uBlock0@raymondhill.net&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;installation_mode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;force_installed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;install_url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这将自动下载 uBlock Origin 的 xpi 并且安装，由于设置了 &amp;ldquo;force_installed&amp;rdquo;，用户将无法卸载&amp;amp;禁用之
&amp;ldquo;installation_mode&amp;quot;可选有&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; allowed 允许用户安装扩展。这是默认行为。不需要install_url;将根据 ID 自动允许
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; blocked 阻止扩展的安装，并将其从设备中删除（如果已安装）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; force_installed 扩展程序会自动安装，用户无法删除。此选项对默认配置无效，需要install_url
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; normal_installed 扩展会自动安装，但用户可以禁用。此选项对默认配置无效，需要install_url
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;结合&lt;code&gt;updates_disabled&lt;/code&gt;，我们可以达到锁定扩展版本的效果&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;policies&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;ExtensionSettings&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;uBlock0@raymondhill.net&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;installation_mode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;force_installed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;install_url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://addons.mozilla.org/firefox/downloads/file/4573289/ublock_origin-1.66.0.xpi&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;updates_disabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;（URL 应该为特定版本的链接，可在 AMO 找到
&lt;a
href="https://addons.mozilla.org/firefox/addon/ublock-origin/versions/"
target="_blank"
&gt;https://addons.mozilla.org/firefox/addon/ublock-origin/versions/&lt;/a&gt;
扩展页面底部的“Version History
See all versions”可以跳转过去&lt;/p&gt;
&lt;p&gt;对于本地 xpi 文件，我们应使用&lt;code&gt;file://&lt;/code&gt;引用&lt;/p&gt;
&lt;h2 class="relative group"&gt;AutoConfig
&lt;div id="autoconfig" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#autoconfig" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;AutoConfig 的配置语法和 user.js 完全相同&lt;br&gt;
我们用它主要做的是锁定配置项目和恢复配置项为默认值&lt;br&gt;
文档于此处：&lt;a
href="https://support.mozilla.org/zh-CN/kb/autoconfigfirefox"
target="_blank"
&gt;https://support.mozilla.org/zh-CN/kb/autoconfigfirefox&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
首先我们要在 Firefox 安装目录创建defaults/pref/autoconfig.js&lt;br&gt;
特别的，在 Linux ，一般在&lt;code&gt;/usr/lib/firefox/defaults/pref/autoconfig.js&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;general.config.filename&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;firefox.cfg&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;general.config.obscure_value&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;第一行指定 AutoConfig 文件的名称。您可以指定您喜欢的任何名称, 但不能更改文件的位置。
第二行表示 AutoConfig 不应该被混淆。默认情况下, Firefox 希望该文件被字节移动13字节, 以便对其进行混淆。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;然后在安装目录新建&lt;code&gt;firefox.cfg&lt;/code&gt;&lt;br&gt;
Linux 一般为&lt;code&gt;/usr/lib/firefox/firefox.cfg&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// IMPORTANT: Start your code on the 2nd line
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;之后只需编辑&lt;code&gt;/usr/lib/firefox/firefox.cfg&lt;/code&gt;&lt;br&gt;
可用操作有：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;pref(prefName, value)——设置首选项的用户值。此函数将首选项显式设置为用户首选项。这意味着, 如果用户更改了该值, 则每次启动浏览器时都会重置它。
defaultPref(prefName, value)——设置首选项的默认值。这是用户未设置任何值时首选项的值。
lockPref(prefName, value) ——设置首选项的默认值并锁定它。这是人们最熟悉的功能, 当涉及到 AutoConfig 文件。锁定首选项可防止用户更改它, 在大多数情况下, 在首选项中禁用 UI, 这样用户就可以明显地禁用了首选项。
unlockPref(prefName)——解锁首选项。例如, 在某些情况下, 可能会锁定每个人的首选项, 然后为特定用户解除锁定。
getPref(prefName)——检索首选项的值。如果首选项不存在, 则显示错误。您应该只在您知道存在的首选项上使用此选项。
clearPref(prefName)——移除首选项的用户值, 将其重置为其默认值。
displayError(funcname, message)——以特定格式显示错误以便调试，例如：Netscape.cfg/AutoConfig failed. Please contact your system administrator. Error: [funcname] failed: [message]
getenv(name)——允许您查询环境变量。这可以让你做一些事情, 比如获取用户名和其他系统信息。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;例如锁定 RFP 为启用&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;lockPref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;privacy.resistFingerprinting&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----BEGIN PGP SIGNED MESSAGE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Hash: SHA512
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;我的 Firefox 自定义手记 - policies.json&amp;amp;AutoConfig篇[2] · 沉渊覆雪的博客
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://0o0.codeberg.page/posts/firefox/autojs/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;作者: 沉渊覆雪
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;发布于: 2025年10月05日
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;更新于: 暂无更新
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;许可协议: CC BY-NC-SA 4.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;协议链接: https://creativecommons.org/licenses/by-nc-sa/4.0/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----BEGIN PGP SIGNATURE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iHUEARYKAB0WIQSDlQpW540GLmVjTLm5X7MepujEFgUCaOLJxAAKCRC5X7MepujE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;FirNAQCxpwkybrL4ZVyS4uDzwfvKK2KrfK71au+qvF0oUWu1TwD/VNWgkn1gkFk1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;F40oHf8ZXvOIMRSYQfMc44ZJd08zVwU=
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;=71Sp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----END PGP SIGNATURE-----
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://0o0.codeberg.page/posts/firefox/autojs/feature.webp"/></item><item><title>基于 Rime 的猫娘实现(大雾)</title><link>https://0o0.codeberg.page/posts/rime/miao/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><author>mailto:0o0.settle618@simplelogin.com (沉渊覆雪)</author><guid>https://0o0.codeberg.page/posts/rime/miao/</guid><description>&lt;p&gt;&lt;del&gt;一切的开始是因为群u的表白&lt;/del&gt;&amp;hellip;.(做梦做的)&lt;br&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt="1.webp"
width="194"
height="54"
src="https://0o0.codeberg.page/img/post/rime/miao/1.webp"
srcset="https://0o0.codeberg.page/img/post/rime/miao/1.webp 800w, https://0o0.codeberg.page/img/post/rime/miao/1.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://0o0.codeberg.page/img/post/rime/miao/1.webp"&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;当然这是Q*模块之类的实现了,博主觉得应该可以在输入法端做文章达到类似效果&lt;br&gt;
结果搜索发现了&lt;br&gt;
&lt;a
href="https://github.com/rime/home/wiki/RimeWithSchemata#%E7%90%86%E8%A7%A3-filters"
target="_blank"
&gt;https://github.com/rime/home/wiki/RimeWithSchemata#%E7%90%86%E8%A7%A3-filters&lt;/a&gt;&lt;br&gt;
(&lt;del&gt;咱是 Rime 重度用户的说&lt;/del&gt;)&lt;br&gt;
大体上就靠它了!!! &amp;ndash; &lt;a
href="https://github.com/hchunhui/librime-lua/wiki"
target="_blank"
&gt;https://github.com/hchunhui/librime-lua/wiki&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
话不多说,让我们看看应该怎么做吧 ~~&lt;/p&gt;
&lt;p&gt;1:&lt;br&gt;
在 Rime 配置目录的 lua 目录新建一个&lt;br&gt;
&lt;code&gt;miao_miao_filter.lua&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="kr"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;miao_miao_filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;for&lt;/span&gt; &lt;span class="n"&gt;cand&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="kr"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cand.text&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="n"&gt;text_length&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;utf8.len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="n"&gt;miao_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;string.rep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;喵&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text_length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;..&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;(&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;..&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;..&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cand&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cand&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;to_shadow_candidate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cand.type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;miao_text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cand.comment&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;yield&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cand&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;return&lt;/span&gt; &lt;span class="n"&gt;miao_miao_filter&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;2:&lt;br&gt;
在 Rime 配置目录的 &lt;code&gt;rime.lua&lt;/code&gt; (没有则新建)
写一行&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;-- 喵喵&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;miao_miao_filter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;miao_miao_filter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;3:&lt;br&gt;
在方案配置文件(就是&lt;code&gt;?.schema.yaml&lt;/code&gt;)的engine:filters:部分使用刚刚新建的filter:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;engine:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; processors:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; segmentors:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; translators:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; filters:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - lua_filter@miao_miao_filter # 关键在于添加这一行
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这下就都大功告成啦~~&lt;/p&gt;
&lt;p&gt;Fcitx5 with Rime的效果图:
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt="2.webp"
width="371"
height="449"
src="https://0o0.codeberg.page/img/post/rime/miao/2.webp"
srcset="https://0o0.codeberg.page/img/post/rime/miao/2.webp 800w, https://0o0.codeberg.page/img/post/rime/miao/2.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://0o0.codeberg.page/img/post/rime/miao/2.webp"&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;显然,你也可以通过此方式实现为候选词添加前缀/后缀&lt;br&gt;
&lt;del&gt;真好玩啊&lt;/del&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----BEGIN PGP SIGNED MESSAGE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Hash: SHA256
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;基于 Rime 的猫娘实现(大雾) · 沉渊覆雪的博客
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://0o0.codeberg.page/posts/rime/miao/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;作者: 沉渊覆雪
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;发布于: 2025年7月4日
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;更新于: 暂未更新
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;许可协议: CC BY-NC-SA 4.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;协议链接: https://creativecommons.org/licenses/by-nc-sa/4.0/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----BEGIN PGP SIGNATURE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iHUEARYIAB0WIQSDlQpW540GLmVjTLm5X7MepujEFgUCaGdqoAAKCRC5X7MepujE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Fl0eAP9hafBC2N2AM5+0gFmF9RBTZBPISq1i5jLTGIonlakbjQD8CiK86hN1B4CD
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+uK8r5TvBjlr9m45VQF3raXo8e4IkAk=
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;=g9pW
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----END PGP SIGNATURE-----
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://0o0.codeberg.page/posts/rime/miao/feature.webp"/></item><item><title>我的 Firefox 自定义手记 - User.js 篇[1]</title><link>https://0o0.codeberg.page/posts/firefox/fingerprinting_userjs/</link><pubDate>Fri, 13 Jun 2025 00:00:00 +0000</pubDate><author>mailto:0o0.settle618@simplelogin.com (沉渊覆雪)</author><guid>https://0o0.codeberg.page/posts/firefox/fingerprinting_userjs/</guid><description>
&lt;h2 class="relative group"&gt;提示
&lt;div id="提示" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%8f%90%e7%a4%ba" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;本文提及的大部分配置都可能会牺牲性能&lt;br&gt;
arkenfox 不同于其他模板, 它侧重的是安全和隐私加固,而非性能优化&lt;/p&gt;
&lt;h2 class="relative group"&gt;前言
&lt;div id="前言" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%89%8d%e8%a8%80" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;作为一个可能是&lt;del&gt;隐私偏执狂&lt;/del&gt;的人, 我觉得要经常打交道的浏览器必须要可靠, 不能&lt;strong&gt;偷偷&lt;/strong&gt;泄露我的隐私,同时也希望它可以抵御互联网上的各种追踪&lt;br&gt;
&lt;br&gt;
显然, Google Chrome 并不是个好选择(&lt;del&gt;Google:决不作恶&lt;/del&gt;), Microsoft Edge, &lt;del&gt;大有继承 IE 大统的可能&lt;/del&gt;&lt;br&gt;
&lt;del&gt;而且没有 uBlock Origin 我活不下去&lt;/del&gt;&lt;br&gt;
&lt;br&gt;
那么剩余的有 Brave 和 Mozilla Firefox, Brave 的默认抗追踪很不错(但其虽然它在 EFF 的&lt;del&gt;娱乐&lt;/del&gt;测试中取得了较高的分数, 对比开启了 RFP 的 Firefox , 它会泄露更多的硬件信息, 这实际上是非常突出的), 笔者也会用它来放视频, 把它作为不得不用Chromium系浏览器时候的选择之一&lt;br&gt;
&lt;br&gt;
值得一提的是 ungoogled-chromium , 相对于 Brave ，它更加&lt;strong&gt;干净&lt;/strong&gt;&lt;br&gt;
没有乱七八糟的加密货币组件，不过在抗追踪上并不有额外的优势，胜在干净，也是个好选择&lt;br&gt;
&lt;br&gt;
个人亦不大适应 Chromium 系浏览器，它们的可玩性相对于 Firefox 系较差&lt;br&gt;
&lt;br&gt;
因此, 就开始对 Mozilla Firefox &lt;del&gt;动手动脚&lt;/del&gt;一下吧~~&lt;br&gt;
Firefox 默认情况下的保护并不会比 Brave 好, 甚至更差, Mozilla 现在似乎很是&lt;strong&gt;拮据&lt;/strong&gt;, 要进军广告业务的样子, 修改用户条款, 声称是隐私友好的广告服务, 不侵害隐私的归因（Privacy-Preserving Attribution:PPA）功能&amp;hellip;&lt;del&gt;我们改天分析下Mozilla的财报吧(挖坑ing&amp;hellip;)&lt;/del&gt;&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Mozilla 在远离它自己的保护隐私的宣传&lt;/strong&gt;&lt;br&gt;
&lt;del&gt;&lt;strong&gt;Firefox 正统在社区衍生版！！！&lt;/strong&gt;&lt;/del&gt;&lt;br&gt;
&lt;br&gt;
所以, 闲话少说, 我们自己动手&lt;del&gt;把Firefox变成我们的形状吧&lt;/del&gt;&lt;br&gt;
(我选择 Firefox ESR 作为日用版本, 因为它的更新周期更长, 没有功能更新, 更加稳定, &lt;del&gt;Mozilla 要是做恶了也可以有更长时间反应&lt;/del&gt;)&lt;br&gt;
&lt;br&gt;
&lt;del&gt;可能是我太保守, 不需要功能更新&lt;/del&gt;&lt;br&gt;
&lt;br&gt;
此时 Firefox ESR 为 128 版本&lt;/p&gt;
&lt;h2 class="relative group"&gt;user.js
&lt;div id="userjs" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#userjs" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;h3 class="relative group"&gt;简介
&lt;div id="简介" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%ae%80%e4%bb%8b" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;Firefox 的 &lt;a
href="%E2%80%B8about:config"&gt;about:config&lt;/a&gt; 是个&lt;del&gt;神奇&lt;/del&gt;的地方, 你可以在这里修改许多高级设置项目, 包括那些可以防备网页追踪, Mozilla 遥测的部分
配置项保存在 Firefox 用户文件目录(可以打开&lt;a
href="about:profiles"&gt;about:profiles&lt;/a&gt;查看路径)下的 prefs.js 内&lt;br&gt;
不过你会发现可配置项目太多了, 而且只是在浏览器里面配置似乎不太方便的样子&lt;br&gt;
那么, 是时候为你介绍 &lt;a
href="https://kb.mozillazine.org/User.js_file"
target="_blank"
&gt;user.js&lt;/a&gt; 了&lt;/p&gt;
&lt;h3 class="relative group"&gt;为什么是 user.js 模板而不是 prefs.js 模板?
&lt;div id="为什么是-userjs-模板而不是-prefsjs-模板" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e6%98%af-userjs-%e6%a8%a1%e6%9d%bf%e8%80%8c%e4%b8%8d%e6%98%af-prefsjs-%e6%a8%a1%e6%9d%bf" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;需要说明的是, 默认情况下配置是没有这个文件的, 记得手动创建此文本文件&lt;/strong&gt;&lt;br&gt;
一般来说, 建议通过 user.js 配置而不是用 prefs.js ,当我们在 &lt;a
href="about:config"&gt;about:config&lt;/a&gt; 修改了配置项时, Firefox 会变更 prefs.js 的内容,而不会去变动 user.js ,重启后 Firefox 依然会以 user.js 的值为准&lt;br&gt;
(user.js 的优先级高过 prefs.js)&lt;br&gt;
一来 ,user.js 的使用类似&amp;quot;打 patch&amp;quot; ,不会去改变浏览器原本的配置文件&lt;br&gt;
二来 ,浏览器更新后 ,可能会改变 prefs.js 内容 ,改变我们的修改 , user.js 则无此疑虑&lt;/p&gt;
&lt;h3 class="relative group"&gt;示例
&lt;div id="示例" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%a4%ba%e4%be%8b" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;browser.tabs.closeWindowWithLastTab&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 这是一个配置项, 设置 Firefox 关闭最后一个标签页后是否退出, false 即不退出
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;user.js 中, 我们可以用 &lt;code&gt;// 注释内容行&lt;/code&gt; 或 &lt;code&gt;/* 注释块内容 */&lt;/code&gt; 来注释, 以上为示例&lt;/p&gt;
&lt;h3 class="relative group"&gt;arkenfox/user.js 的使用
&lt;div id="arkenfoxuserjs-的使用" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#arkenfoxuserjs-%e7%9a%84%e4%bd%bf%e7%94%a8" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;如前文所述, arkenfox (原名 ghacks-user.js)&lt;br&gt;
是一个专注于 隐私&amp;amp;安全 加固的 user.js 模板&lt;br&gt;
详情参考 &lt;a
href="https://github.com/arkenfox/user.js/wiki"
target="_blank"
&gt;https://github.com/arkenfox/user.js/wiki&lt;/a&gt;&lt;br&gt;
当你从项目下载后&lt;br&gt;
(我是Firefox ESR 128, 下载的是&lt;a
href="https://github.com/arkenfox/user.js/archive/refs/tags/128.0.zip"
target="_blank"
&gt;https://github.com/arkenfox/user.js/archive/refs/tags/128.0.zip&lt;/a&gt;)&lt;br&gt;
&lt;strong&gt;注意, 对于 ESR 用户, 项目的 update.bat/update.sh 最好不要使用, 参见&lt;a
href="https://github.com/arkenfox/user.js/wiki/3.4-Apply-&amp;amp;-Update-&amp;amp;-Maintain#-esr-users"
target="_blank"
&gt;https://github.com/arkenfox/user.js/wiki/3.4-Apply-&amp;amp;-Update-&amp;amp;-Maintain#-esr-users&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;br&gt;
解压后&lt;br&gt;
&lt;br&gt;
我们应该先运行 prefsCleaner.sh/ prefsCleaner.bat 脚本, 这会备份原来的 prefs.js ,然后新建一个都是默认项的 prefs.js&lt;br&gt;
假如你不需要记录浏览器历史和更多跟踪保护, 这一步后就可以启动 Firefox 了&lt;br&gt;
&lt;br&gt;
那接下来, 我们需要新建一个 user-overrides.js 文件, 它的格式和 user.js 相同, 对于 release 通道(稳定版)的 Firefox 用户, 运行 arkenfox/user.js 的 update.sh/update.bat 来更新 user.js 时, 脚本会合并 user-overrides.js 内你的配置(追加到 user.js 末尾), 你不需要修改 user.js , 应该修改 user-overrides.js 来覆盖 user.js 的配置&lt;br&gt;
⚠️对于 ESR 用户, 运行脚本时添加 -esr 参数也会这么做, 但是可能有未知兼容性问题, 不建议这样做&lt;br&gt;
&lt;strong&gt;建议 ESR 用户手动下载对应版本, 然后附加想要的配置项到 user.js 的末尾&lt;br&gt;
(在 user.js 内部, 如果一个配置项配置两次, 会使用第二次的赋值, 即下一行的优先级高于上一行(重复行))&lt;/strong&gt;&lt;/p&gt;
&lt;h3 class="relative group"&gt;我的 user-overrides.js 配置
&lt;div id="我的-user-overridesjs-配置" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%88%91%e7%9a%84-user-overridesjs-%e9%85%8d%e7%bd%ae" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;未给出的加固配置项一般已经包含在 arkenfox/user.js 内&lt;/p&gt;
&lt;h4 class="relative group"&gt;一些日常使用你应该需要的
&lt;div id="一些日常使用你应该需要的" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%80%e4%ba%9b%e6%97%a5%e5%b8%b8%e4%bd%bf%e7%94%a8%e4%bd%a0%e5%ba%94%e8%af%a5%e9%9c%80%e8%a6%81%e7%9a%84" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用退出时自动删除浏览历史记录
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;privacy.clearOnShutdown_v2.historyFormDataAndDownloads&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用退出时自动删除浏览器 Cookies (删除了网站登录状态会清空, 不过我选择删除)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;privacy.clearOnShutdown_v2.cookiesAndStorage&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class="relative group"&gt;可能破坏网页, 但是抗追踪, 安全性加固
&lt;div id="可能破坏网页-但是抗追踪-安全性加固" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8f%af%e8%83%bd%e7%a0%b4%e5%9d%8f%e7%bd%91%e9%a1%b5-%e4%bd%86%e6%98%af%e6%8a%97%e8%bf%bd%e8%b8%aa-%e5%ae%89%e5%85%a8%e6%80%a7%e5%8a%a0%e5%9b%ba" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h4&gt;
&lt;p&gt;酌情设置&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 控制何时发送跨域请求
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; * 0=始终(默认),1=仅当基本域名匹配时,2=仅当网站主机匹配时
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; * [注意]将导致网站损坏:较旧某些网站,例如银行 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;network.http.referer.XOriginPolicy&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用 WebRTC(可选,现在WebRTC通信已经受保护了)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// user_pref(&amp;#34;media.peerconnection.enabled&amp;#34;, false);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 保护 WebRTC 通信时候你的私人IP, 但是通常会导致视频会议平台上的破坏
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// user_pref(&amp;#34;media.peerconnection.ice.no_host&amp;#34;, true);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用&amp;#34;超链接审核&amp;#34;(单击跟踪)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;browser.send_pings&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 是否启用 CSS 来区分已访问和未访问的链接(可能被网站用于获取你的浏览历史, 不过缓解措施已经实施, 可选)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// user_pref(&amp;#34;layout.css.visited_links_enabled&amp;#34;, false);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用Google提供的Widevine Content Decryption模块
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;media.gmp-widevinecdm.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用所有DRM内容(EME:加密媒体扩展)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;media.eme.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用 Wasm (含有漏洞 - 被攻击的可能性)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;javascript.options.wasm&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 防止网站所有者可以跟踪设备的电池状态
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dom.battery.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 避免在网页复制, 选择, 粘贴或剪切某些内容时，网站可以知晓
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dom.event.clipboardevents.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用关键词搜索,避免意外向搜索引擎泄露信息
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;keyword.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 用于默认搜索引擎的位置信息
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;browser.search.geoip.url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// OpenH264 编解码器
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;media.gmp-gmpopenh264.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁止网站控制浏览器右键菜单 ( Shift + 右键可解 )
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// user_pref(&amp;#34;dom.event.contextmenu.enabled&amp;#34;, false);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 总是请求英文版网页,减少语言指纹
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;privacy.spoof_english&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 设置语言偏好为英文(冗余)(测试发现,不使用privacy.spoof_english,只设置偏好还是会泄露浏览器UI语言)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;intl.accept_languages&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;en-US, en&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// RFP(网页损坏高手,但是指纹保护能力很强)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;privacy.resistFingerprinting&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;privacy.resistFingerprinting.pbmode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 使窗口比例常见
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;privacy.resistFingerprinting.letterboxing&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用webgl(抗浏览器指纹能力变强了,网页可能也要坏掉了)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;webgl.disabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用地理位置功能
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// user_pref(&amp;#34;geo.enabled&amp;#34;, false);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 控制是否启用全屏API(Fullscreen API)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 这个API允许网页将浏览器窗口切换到全屏模式
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// user_pref(&amp;#34;full-screen-api.enabled&amp;#34;, false);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// (这些事实上可能容易增加指纹熵)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 第一方隔离(FPI),默认的dFPI(动态分区)更灵活,酌情开启
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// user_pref(&amp;#34;privacy.firstparty.isolate, true);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁止信任系统安装的第三方证书(Linux无需,因为Linux系统的证书链就是Mozilla提供的说)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;security.enterprise_roots.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class="relative group"&gt;对浏览器内部遥测的禁止
&lt;div id="对浏览器内部遥测的禁止" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%af%b9%e6%b5%8f%e8%a7%88%e5%99%a8%e5%86%85%e9%83%a8%e9%81%a5%e6%b5%8b%e7%9a%84%e7%a6%81%e6%ad%a2" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 网站“push”需要订阅, 并且CRLITE需要API
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 删除所有订阅, 请重置&amp;#34;dom.push.useragentid&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// user_pref(&amp;#34;dom.push.enabled&amp;#34;, false);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dom.push.useragentid&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// “安全浏览”提供网络钓鱼保护和恶意软件检查功能, 但可能会将用户信息（例如 URL、文件哈希等）发送给 Google 等第三方。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用下载检查功能
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;browser.safebrowsing.malware.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;browser.safebrowsing.phishing.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;browser.safebrowsing.downloads.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 禁用新的实验
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;messaging-system.rsexperimentloader.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* user.js 已有
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;// 禁用新的实验
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;user_pref(&amp;#34;app.shield.optoutstudies.enabled&amp;#34;, false);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;// 禁用研究以及和 Normandy 相关的紧急修复及新功能推出
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;user_pref(&amp;#34;app.normandy.enabled&amp;#34;, false);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 更新附加组件元数据
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;extensions.getAddons.cache.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class="relative group"&gt;功能上的小技巧?(疑)
&lt;div id="功能上的小技巧疑" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8a%9f%e8%83%bd%e4%b8%8a%e7%9a%84%e5%b0%8f%e6%8a%80%e5%b7%a7%e7%96%91" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 开启 CSS 定制 UI
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;toolkit.legacyUserProfileCustomizations.stylesheets&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 使扩展可在 Mozilla 的网站运行
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 解除对某些 Mozilla 域(您还需要4503)的Webextension限制[FF60+]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;extensions.webextensions.restrictedDomains&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 禁用MozaddonManager Web API [FF57+]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;[注意]要允许扩展在 AMO (Mozilla 扩展中心)上工作，您也需要2662 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;user_pref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;privacy.resistFingerprinting.block_mozAddonManager&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class="relative group"&gt;字体指纹
&lt;div id="字体指纹" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%ad%97%e4%bd%93%e6%8c%87%e7%ba%b9" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h4&gt;
&lt;p&gt;目前似乎没有什么较好的办法去随机化字体(部分扩展看起来可以,&lt;del&gt;但是可能实际上是自欺欺人&lt;/del&gt;)&lt;/p&gt;
&lt;p&gt;(&lt;strong&gt;&lt;code&gt;browser.display.use_document_fonts&lt;/code&gt; 设为 &lt;code&gt;0&lt;/code&gt; 只会让 Firefox 拒绝载入／渲染页面里通过 @font-face 之类方式声明的 Web 字体. 强制用本地默认字体来回退, 并不能对抗字体指纹识别&lt;/strong&gt;)&lt;br&gt;
&lt;br&gt;
我选择神秘偏方之&amp;hellip;从TorBrowser那提取字体, 把字体都安装进系统,然后&amp;hellip;设置以下(&lt;del&gt;这样的行为实际上使我非常突出,好孩子不要学&lt;/del&gt;,但是如果这样做的人很多或许是个好办法&lt;del&gt;不过显然我是少数&lt;/del&gt;和TorBrowser用户的字体指纹坐一桌, &lt;del&gt;但是我其他方面很突出&lt;/del&gt;)&lt;br&gt;
(或许我们可以在每次Firefox启动前随机化这个值)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;user_pref(&amp;#34;font.system.whitelist&amp;#34;, &amp;#34;Arimo, Cousine, Noto Naskh Arabic, Noto Sans Adlam, Noto Sans Armenian, Noto Sans Balinese, Noto Sans Bamum, Noto Sans Bassa Vah, Noto Sans Batak, Noto Sans Bengali, Noto Sans Buginese, Noto Sans Buhid, Noto Sans Canadian Aboriginal, Noto Sans Chakma, Noto Sans Cham, Noto Sans Cherokee, Noto Sans Coptic, Noto Sans Deseret, Noto Sans Devanagari, Noto Sans Elbasan, Noto Sans Ethiopic, Noto Sans Georgian, Noto Sans Grantha, Noto Sans Gujarati, Noto Sans Gunjala Gondi, Noto Sans Gurmukhi, Noto Sans Hanifi Rohingya, Noto Sans Hanunoo, Noto Sans Hebrew, Noto Sans JP, Noto Sans Javanese, Noto Sans KR, Noto Sans Kannada, Noto Sans Kayah Li, Noto Sans Khmer, Noto Sans Khojki, Noto Sans Khudawadi, Noto Sans Lao, Noto Sans Lepcha, Noto Sans Limbu, Noto Sans Lisu, Noto Sans Mahajani, Noto Sans Malayalam, Noto Sans Mandaic, Noto Sans Masaram Gondi, Noto Sans Medefaidrin, Noto Sans Meetei Mayek, Noto Sans Mende Kikakui, Noto Sans Miao, Noto Sans Modi, Noto Sans Mongolian, Noto Sans Mro, Noto Sans Multani, Noto Sans NKo, Noto Sans New Tai Lue, Noto Sans Newa, Noto Sans Ol Chiki, Noto Sans Oriya, Noto Sans Osage, Noto Sans Osmanya, Noto Sans Pahawh Hmong, Noto Sans Pau Cin Hau, Noto Sans Rejang, Noto Sans Runic, Noto Sans SC, Noto Sans Samaritan, Noto Sans Saurashtra, Noto Sans Sharada, Noto Sans Shavian, Noto Sans Sinhala, Noto Sans Sora Sompeng, Noto Sans Soyombo, Noto Sans Sundanese, Noto Sans Syloti Nagri, Noto Sans Symbols, Noto Sans Symbols 2, Noto Sans Syriac, Noto Sans TC, Noto Sans Tagalog, Noto Sans Tagbanwa, Noto Sans Tai Le, Noto Sans Tai Tham, Noto Sans Tai Viet, Noto Sans Takri, Noto Sans Tamil, Noto Sans Telugu, Noto Sans Thaana, Noto Sans Thai, Noto Sans Tifinagh, Noto Sans Tifinagh APT, Noto Sans Tifinagh Adrar, Noto Sans Tifinagh Agraw Imazighen, Noto Sans Tifinagh Ahaggar, Noto Sans Tifinagh Air, Noto Sans Tifinagh Azawagh, Noto Sans Tifinagh Ghat, Noto Sans Tifinagh Hawad, Noto Sans Tifinagh Rhissa Ixa, Noto Sans Tifinagh SIL, Noto Sans Tifinagh Tawellemmet, Noto Sans Tirhuta, Noto Sans Vai, Noto Sans Wancho, Noto Sans Warang Citi, Noto Sans Yi, Noto Sans Zanabazar Square, Noto Serif Armenian, Noto Serif Balinese, Noto Serif Bengali, Noto Serif Devanagari, Noto Serif Dogra, Noto Serif Ethiopic, Noto Serif Georgian, Noto Serif Grantha, Noto Serif Gujarati, Noto Serif Gurmukhi, Noto Serif Hebrew, Noto Serif Kannada, Noto Serif Khmer, Noto Serif Khojki, Noto Serif Lao, Noto Serif Malayalam, Noto Serif Myanmar, Noto Serif NP Hmong, Noto Serif Sinhala, Noto Serif Tamil, Noto Serif Telugu, Noto Serif Thai, Noto Serif Tibetan, Noto Serif Yezidi, Pyidaungsu, STIX Two Math, Tinos, Twemoji Mozilla&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上参考了&lt;br&gt;
&lt;a
href="https://arkenfox.github.io/gui/"
target="_blank"
&gt;https://arkenfox.github.io/gui/&lt;/a&gt;
&lt;a
href="https://wiki.mozilla.org/Privacy/Privacy_Task_Force/firefox_about_config_privacy_tweeks"
target="_blank"
&gt;https://wiki.mozilla.org/Privacy/Privacy_Task_Force/firefox_about_config_privacy_tweeks&lt;/a&gt;(可能过时)&lt;br&gt;
非常建议去看看&lt;/p&gt;
&lt;h2 class="relative group"&gt;一些误区
&lt;div id="一些误区" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%80%e4%ba%9b%e8%af%af%e5%8c%ba" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;h3 class="relative group"&gt;LibreWolf 和 arkenfox/user.js 的关系(?)
&lt;div id="librewolf-和-arkenfoxuserjs-的关系" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#librewolf-%e5%92%8c-arkenfoxuserjs-%e7%9a%84%e5%85%b3%e7%b3%bb" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;LibreWolf 是一个 Firefox 的社区衍生版, 预配置了 arkenfox/user.js ,删除了 Firefox 内的专有代码, 不过它是基于稳定版而不是ESR(延长支持版), 同时, 100%去除了遥测, ( Firefox 锁死了服务器URL, 仅仅修改 user.js 无法禁止它连接&lt;code&gt;firefox.settings.services.mozilla.com&lt;/code&gt;,参考&lt;a
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1598562"
target="_blank"
&gt;https://bugzilla.mozilla.org/show_bug.cgi?id=1598562&lt;/a&gt;)&lt;br&gt;
(如何在 Firefox 内禁止它我们下次再说(&lt;del&gt;先🕊了&lt;/del&gt;))&lt;/p&gt;
&lt;h3 class="relative group"&gt;随机化指纹?
&lt;div id="随机化指纹" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%9a%8f%e6%9c%ba%e5%8c%96%e6%8c%87%e7%ba%b9" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;客观上说, arkenfox-user.js/LibreWolf 都不能做到真正的 &amp;ldquo;随机化指纹&amp;rdquo;&lt;br&gt;
常有人以随机化指纹宣传它们是&amp;quot;片面的&amp;quot;, arkenfox-user.js/LibreWolf 确实做了 &amp;ldquo;随机化&amp;rdquo;, 比如 Canvas 的随机, 但是并不意味者指纹是随机的, 随机化的值实际上也可以被检测到
比如 EFF 的测试知道你在随机化, 即使你们的Canvas指纹不同,但是因为其随机化特征明显,仍然会有人的指纹会和你相同&lt;br&gt;
&lt;br&gt;
Amiunique 则相信你的随机化的那部分数据, 所以你在 Amiunique 的测试中总是独一无二的(但是你的指纹实际上不是随机的, 这是测试的问题) Canvas 随机化 ≠ 指纹随机化&amp;hellip;(&lt;del&gt;某种意义上讲确实对&amp;quot;初级&amp;quot;脚本(见下文)随机了&amp;hellip;&amp;hellip;&lt;/del&gt;)&lt;br&gt;
建议阅读:&lt;br&gt;
&lt;a
href="https://github.com/arkenfox/user.js/wiki/4.1-Extensions/eced37ccc26d07417ae87578a6df214dfd508766#small_orange_diamond-%EF%B8%8F-anti-fingerprinting-extensions-fk-no"
target="_blank"
&gt;If you don&amp;rsquo;t use RFP, then you&amp;rsquo;re on your own. And don&amp;rsquo;t rely on entropy figures from test sites.&lt;/a&gt;&lt;br&gt;
&lt;a
href="https://github.com/arkenfox/user.js/issues/1228"
target="_blank"
&gt;https://github.com/arkenfox/user.js/issues/1228&lt;/a&gt;&lt;br&gt;
&lt;a
href="https://github.com/arkenfox/user.js/issues/1821"
target="_blank"
&gt;https://github.com/arkenfox/user.js/issues/1821&lt;/a&gt;&lt;br&gt;
&lt;a
href="https://github.com/arkenfox/user.js/wiki/3.3-Overrides-%5BTo-RFP-or-Not%5D"
target="_blank"
&gt;3.3 Overrides [To RFP or Not]&lt;/a&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;指纹保护的两个准则:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;1:保护每个度量指标的真实值——具体如何实现并不重要。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2:保护足够多的度量
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;实际上 Arkenfox 并没有保护足够多的&amp;quot;度量&amp;quot;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;#34;初级&amp;#34;脚本（NAIVE）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;如果脚本只能&amp;#34;吞掉&amp;#34;随机化后的值，就称为&amp;#34;初级&amp;#34;脚本。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;随机化度量越多，脚本变成初级的可能性越大。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;欺骗初级脚本不需要“人群”。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;#34;高级&amp;#34;脚本（ADVANCED）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;所有随机化都可以被检测到——这是事实。能检测到这一点的脚本就是“高级”脚本。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;高级脚本也有不同层次的复杂度。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;要对抗高级脚本，需要“人群”，人群越大越有效。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;可选地对部分度量进行随机化，以应对初级脚本
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Arkenfox 的主要目标一直是: 安全, 隐私, 以及减轻诸如&amp;#34;状态追踪&amp;#34;和&amp;#34;导航追踪&amp;#34;这类真实且大规模的跟踪威胁
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;但是也会对“无状态追踪”有所抵御
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Arkenfox 从未声称能够对抗高级指纹识别
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;RFP 多数指标硬编码的固定化, 亦不能说是指纹随机化&lt;br&gt;
来看看指纹是否真的随机了&lt;br&gt;
所以, 我想说的是, &lt;del&gt;片面的认为这样的配置可以随机化指纹会是一种虚假的安全感&lt;/del&gt;&lt;br&gt;
据说可以应对99%的情况(&lt;del&gt;arkenfox/user.js 项目开发者的玩笑&lt;/del&gt;)&lt;br&gt;
(总之是面向日常基本的保护)&lt;br&gt;
但是对于creepjs这类&amp;quot;高级&amp;quot;检测, 我们应该选择去隐匿于人群中&amp;ndash;&amp;gt;指纹统一化(是的我指TorBrowser)&lt;br&gt;
对于大部分人来说, 日常使用这样配置已经绰绰有余啦~~&lt;br&gt;
不过假如你的威胁模型需要非常完备的保护(斯诺登那种级别的(疑?)), 这不是个很好的, 值得满意的方案&lt;br&gt;
浏览器指纹测试(仅供参考)(也可以拿其他浏览器测测对比下)&lt;/p&gt;
&lt;p&gt;&lt;a
href="https://arkenfox.github.io/TZP/tzp.html"
target="_blank"
&gt;https://arkenfox.github.io/TZP/tzp.html&lt;/a&gt;&lt;br&gt;
&lt;a
href="https://abrahamjuliot.github.io/creepjs"
target="_blank"
&gt;https://abrahamjuliot.github.io/creepjs&lt;/a&gt;&lt;/p&gt;
&lt;h3 class="relative group"&gt;UTC 还是 Atlantic/Reykjavik?
&lt;div id="utc-还是-atlanticreykjavik" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#utc-%e8%bf%98%e6%98%af-atlanticreykjavik" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;一些文章曾说开启 RFP 后, Firefox 的时区将是 UTC&lt;br&gt;
&lt;br&gt;
曾经时区确实设置为 &amp;ldquo;UTC&amp;rdquo;, 不过现在并不是了&lt;br&gt;
RFP设置的时区不再是 UTC, 而是 Atlantic/Reykjavik(冰岛,时区偏移量也为0), 因为 UTC 不是一个国家/地区, 时区设置为这个过于奇怪了&lt;br&gt;
参见&lt;br&gt;
&lt;a
href="https://github.com/arkenfox/user.js/issues/1846#issuecomment-2183064738"
target="_blank"
&gt;https://github.com/arkenfox/user.js/issues/1846#issuecomment-2183064738&lt;/a&gt;&lt;/p&gt;
&lt;h2 class="relative group"&gt;扩展推荐
&lt;div id="扩展推荐" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%89%a9%e5%b1%95%e6%8e%a8%e8%8d%90" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;提供更加强大的canvas指纹保护(不过可能损坏网页)(有FPP在,你其实不大需要)&lt;br&gt;
&lt;a
href="https://addons.mozilla.org/firefox/addon/canvasblocker/"
target="_blank"
&gt;https://addons.mozilla.org/firefox/addon/canvasblocker/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
临时容器扩展(可选)(不建议) 效果约等于FPI(第一方隔离),更加灵活,但是不会再有维护了(开发者不幸离世了),&lt;br&gt;
&lt;a
href="https://github.com/stoically/temporary-containers/issues/618"
target="_blank"
&gt;https://github.com/stoically/temporary-containers/issues/618&lt;/a&gt;&lt;br&gt;
非常感谢你, &lt;a
href="https://github.com/stoically"
target="_blank"
&gt;@stoically&lt;/a&gt;&lt;br&gt;
不大活跃的社区fork:&lt;a
href="https://addons.mozilla.org/firefox/addon/temporary-containers-plus/"
target="_blank"
&gt;https://addons.mozilla.org/firefox/addon/temporary-containers-plus/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a
href="https://addons.mozilla.org/firefox/addon/ublock-origin/"
target="_blank"
&gt;uBlock Origin&lt;/a&gt;&lt;br&gt;
无需多言, 最好的广告拦截器(实际上应该叫网页请求过滤器)&lt;br&gt;
&lt;br&gt;
&lt;a
href="https://raw.githubusercontent.com/DandelionSprout/adfilt/master/LegitimateURLShortener.txt"
target="_blank"
&gt;https://raw.githubusercontent.com/DandelionSprout/adfilt/master/LegitimateURLShortener.txt&lt;/a&gt;&lt;br&gt;
(ClearURL的上位替代规则)&lt;br&gt;
参考:&lt;a
href="https://github.com/arkenfox/user.js/wiki/4.1-Extensions"
target="_blank"
&gt;https://github.com/arkenfox/user.js/wiki/4.1-Extensions&lt;/a&gt;&lt;br&gt;
(不过我其实也在用 NoScript 的说)&lt;/p&gt;
&lt;h2 class="relative group"&gt;推荐文章
&lt;div id="推荐文章" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%8e%a8%e8%8d%90%e6%96%87%e7%ab%a0" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;https://gitlab.torproject.org/tpo/applications/wiki/-/wikis/Design-Documents/Tor-Browser-Design-Doc&lt;/code&gt;&lt;br&gt;
If you do nothing on desktop, you are already uniquely identifiable - screen, window and font metrics alone are probably enough - add timezone name, preferred languages, and several dozen other metrics and it is game over. Here is a link to the results of a study done in 2016 showing a 99.24% unique hit rate (and that is excluding IP addresses).&lt;br&gt;
如果您在桌面上什么都不做，那么您已经可以唯一地识别了 - 屏幕，窗口和字体指标可能就足够了 - 添加时区名称，首选语言以及其他数十个指标，并且已经结束了。 这是与2016年进行的研究结果的链接，显示了99.24％的唯一识别率（不包括IP地址）。&lt;br&gt;
&lt;code&gt;https://www.ndss-symposium.org/ndss2017/ndss-2017-programme/cross-browser-fingerprinting-os-and-hardware-level-features/&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----BEGIN PGP SIGNED MESSAGE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Hash: SHA512
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;我的 Firefox 自定义手记 - 隐私加固篇[1] · 沉渊覆雪的博客
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://0o0.codeberg.page/posts/firefox/fingerprinting_userjs/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;作者: 沉渊覆雪
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;发布于: 2025年6月13日
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;更新于: 2025年10月05日
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;许可协议: CC BY-NC-SA 4.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;协议链接: https://creativecommons.org/licenses/by-nc-sa/4.0/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----BEGIN PGP SIGNATURE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iHUEARYKAB0WIQSDlQpW540GLmVjTLm5X7MepujEFgUCaOLKHAAKCRC5X7MepujE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;FpfTAQCXmQw5LV9CrsgdfLQzNlJ1cacDlHljXy7AFnsE/ZFUKgEA7H5xrcua06EO
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;WzgkkZPbceh2OmPmkjCPjEGjWG2tnAs=
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;=88tX
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----END PGP SIGNATURE-----
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://0o0.codeberg.page/posts/firefox/fingerprinting_userjs/feature.webp"/></item><item><title>AUR 中 GitHub 资源拉取缓慢,无法拉取使用镜像的方法</title><link>https://0o0.codeberg.page/posts/linux/aurspeed/</link><pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate><author>mailto:0o0.settle618@simplelogin.com (沉渊覆雪)</author><guid>https://0o0.codeberg.page/posts/linux/aurspeed/</guid><description>
&lt;h3 class="relative group"&gt;aurspeed脚本
&lt;div id="aurspeed脚本" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#aurspeed%e8%84%9a%e6%9c%ac" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;保存以下代码到/usr/bin/aurspeed
记得chmod +x /usr/bin/aurspeed
（脚本调用aria2）&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;&lt;/span&gt;&lt;span class="nv"&gt;output_file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 镜像站点列表, 每个镜像一行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;MIRRORS&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;https://gh-proxy.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;https://ghfast.top&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;https://ghproxy.net&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;https://ghproxy.cc&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;https://hub.gitmirror.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;https://cf.ghproxy.cc&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;MIRRORS2&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://originfastly.jsdelivr.net&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://testingcf.jsdelivr.net&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://gcore.jsdelivr.net&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://fastly.jsdelivr.net&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Aria2 UA&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;USER_AGENT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;curl/8.11.1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 重新下载的最大重试次数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;MAX_RETRIES&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;RETRY_COUNT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;download_file&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 替换 github.com 链接&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;modified_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$url&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sed -e &lt;span class="s2"&gt;&amp;#34;s|https://github.com|&lt;/span&gt;&lt;span class="nv"&gt;$RANDOM_MIRROR&lt;/span&gt;&lt;span class="s2"&gt;/https://github.com|&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 处理 raw.githubusercontent.com 的链接，替换为 jsdelivr 镜像&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;modified_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$modified_url&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sed -E &lt;span class="s2"&gt;&amp;#34;s|https://raw.githubusercontent.com/([^/]+)/([^/]+)/([^/]+)/|&lt;/span&gt;&lt;span class="nv"&gt;$RANDOM_MIRROR2&lt;/span&gt;&lt;span class="s2"&gt;/gh/\1/\2@\3/|&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;正在下载: &lt;/span&gt;&lt;span class="nv"&gt;$modified_url&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; aria2c -c -j &lt;span class="m"&gt;8&lt;/span&gt; -x &lt;span class="m"&gt;8&lt;/span&gt; -s &lt;span class="m"&gt;8&lt;/span&gt; --user-agent&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$USER_AGENT&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; --out&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$output_file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$modified_url&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 检查下载是否成功&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nv"&gt;$?&lt;/span&gt; -ne &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;下载失败, 重试...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;# 下载失败，返回1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;下载成功&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="c1"&gt;# 下载成功，返回0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 重试下载过程&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nv"&gt;$RETRY_COUNT&lt;/span&gt; -lt &lt;span class="nv"&gt;$MAX_RETRIES&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 在每次重试之前重新随机选择镜像&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;RANDOM_MIRROR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;MIRRORS&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$RANDOM&lt;/span&gt;&lt;span class="p"&gt; % &lt;/span&gt;&lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;MIRRORS&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;RANDOM_MIRROR2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;MIRRORS2&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$RANDOM&lt;/span&gt;&lt;span class="p"&gt; % &lt;/span&gt;&lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;MIRRORS2&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; download_file&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;break&lt;/span&gt; &lt;span class="c1"&gt;# 如果下载成功，退出循环&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 如果下载失败，增加重试次数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;RETRY_COUNT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;RETRY_COUNT &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;第 &lt;/span&gt;&lt;span class="nv"&gt;$RETRY_COUNT&lt;/span&gt;&lt;span class="s2"&gt; 次重试...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 如果下载依然失败，提示&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nv"&gt;$RETRY_COUNT&lt;/span&gt; -eq &lt;span class="nv"&gt;$MAX_RETRIES&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;下载失败，已尝试 &lt;/span&gt;&lt;span class="nv"&gt;$MAX_RETRIES&lt;/span&gt;&lt;span class="s2"&gt; 次，请检查链接或网络状况。&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 class="relative group"&gt;配置makepkg
&lt;div id="配置makepkg" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%85%8d%e7%bd%aemakepkg" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;备份/etc/makepkg.conf
&lt;code&gt;sudo cp /etc/makepkg.conf /etc/makepkg.conf.bak&lt;/code&gt;
然后编辑/etc/makepkg.conf
&lt;code&gt;sudo nano /etc/makepkg.conf&lt;/code&gt;
修改以下部分:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;DLAGENTS=(&amp;#39;file::/usr/bin/curl -qgC - -o %o %u&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;http::/usr/bin/curl -qgb &amp;#34;&amp;#34; -fLC - --retry 3 --retry-delay 3 -o %o %u&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;https::/usr/bin/curl -qgb &amp;#34;&amp;#34; -fLC - --retry 3 --retry-delay 3 -o %o %u&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;rsync::/usr/bin/rsync --no-motd -z %u %o&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;scp::/usr/bin/scp -C %u %o&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;修改为这样:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;DLAGENTS=(&amp;#39;file::/usr/bin/aurspeed %o %u&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;ftp::/usr/bin/aurspeed %o %u&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;http::/usr/bin/aurspeed %o %u&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;https::/usr/bin/aurspeed %o %u&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;rsync::/usr/bin/rsync --no-motd -z %u %o&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;scp::/usr/bin/scp -C %u %o&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;大功告成!&lt;/p&gt;
&lt;h3 class="relative group"&gt;git clone配置镜像
&lt;div id="git-clone配置镜像" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#git-clone%e9%85%8d%e7%bd%ae%e9%95%9c%e5%83%8f" aria-label="锚点"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;tips:你还可以使用
&lt;code&gt;git config --global url.&amp;quot;https://ghfast.top/https://github.com/&amp;quot;.insteadOf &amp;quot;https://github.com/&amp;quot;&lt;/code&gt;
来设置git clone使用镜像&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----BEGIN PGP SIGNED MESSAGE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Hash: SHA256
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;AUR 中 GitHub 资源拉取缓慢,无法拉取使用镜像的方法 · 沉渊覆雪的博客
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://0o0.codeberg.page/posts/linux/aurspeed/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;作者: 沉渊覆雪
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;发布于: 2025年5月14日
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;更新于: 暂未更新
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;许可协议: CC BY-NC-SA 4.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;协议链接: https://creativecommons.org/licenses/by-nc-sa/4.0/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----BEGIN PGP SIGNATURE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iHUEARYIAB0WIQSDlQpW540GLmVjTLm5X7MepujEFgUCaFHAOAAKCRC5X7MepujE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;FmFkAP4kz7M80vAtayzjdIEYFrysWw4HPCJ+ebHMatSJlVOP0AD/doDF7nT8cwKk
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+/vp94BKcOvthW1nq3kHY6oxbU6F+Q4=
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;=sKZQ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----END PGP SIGNATURE-----
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://0o0.codeberg.page/posts/linux/aurspeed/feature.webp"/></item><item><title>博客开张啦</title><link>https://0o0.codeberg.page/posts/start/</link><pubDate>Tue, 13 May 2025 00:00:00 +0000</pubDate><author>mailto:0o0.settle618@simplelogin.com (沉渊覆雪)</author><guid>https://0o0.codeberg.page/posts/start/</guid><description>&lt;p&gt;一直想开一个博客，现在各种框架也非常方便，干脆说干就干，一开始本想托管在GitHub Pages，只是
如今&lt;a
href="https://github.io"
target="_blank"
&gt;GitHub Pages&lt;/a&gt;在大陆的连通性有如&lt;a
href="https://cdn.jsdelivr.net"
target="_blank"
&gt;Jsdeliv&lt;/a&gt;，实是一言难尽，刚好有在迁移到&lt;a
href="https://codeberg.org"
target="_blank"
&gt;Codeberg&lt;/a&gt;，就刚好换到&lt;a
href="https://codeberg.page"
target="_blank"
&gt;Codeberg Pages&lt;/a&gt;了&lt;br&gt;
希望写一些关于各种&lt;del&gt;踩坑&lt;/del&gt;的&lt;del&gt;艰苦记录&lt;/del&gt;&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://0o0.codeberg.page/posts/start/feature.webp"/></item></channel></rss>