[{"data":1,"prerenderedAt":607},["ShallowReactive",2],{"navigation_docs":3,"-tutorials-advanced-mixed-v4-v6":288,"-tutorials-advanced-mixed-v4-v6-surround":602},[4,9,36,103,180,262,278,283],{"title":5,"path":6,"stem":7,"icon":8},"首页","\u002Fwhat-is-lolia","1.what-is-lolia","i-lucide-house",{"title":10,"icon":11,"path":12,"stem":13,"children":14,"page":35},"开始之前","i-lucide-list-check","\u002Fbefore-start","2.before-start",[15,20,25,30],{"title":16,"path":17,"stem":18,"icon":19},"入门阅读","\u002Fbefore-start\u002Fintroduction","2.before-start\u002F1.introduction","i-lucide-book",{"title":21,"path":22,"stem":23,"icon":24},"常见问题","\u002Fbefore-start\u002Ffaq","2.before-start\u002F2.faq","i-lucide-badge-question-mark",{"title":26,"path":27,"stem":28,"icon":29},"实名认证","\u002Fbefore-start\u002Fkyc","2.before-start\u002F3.kyc","i-lucide-user-check",{"title":31,"path":32,"stem":33,"icon":34},"安全提示","\u002Fbefore-start\u002Fsecurity","2.before-start\u002F4.security","i-lucide-shield-alert",false,{"title":37,"icon":38,"path":39,"stem":40,"children":41,"page":35},"面板","i-lucide-panels-top-left","\u002Fweb-management","3.web-management",[42,47,61,71,89],{"title":43,"path":44,"stem":45,"icon":46},"仪表盘","\u002Fweb-management\u002Fdashboard","3.web-management\u002F1.dashboard","i-lucide-gauge",{"title":48,"icon":49,"path":50,"stem":51,"children":52,"page":35},"隧道","i-lucide-chevrons-left-right-ellipsis","\u002Fweb-management\u002Ftunnel","3.web-management\u002F2.tunnel",[53,57],{"title":54,"path":55,"stem":56},"隧道管理","\u002Fweb-management\u002Ftunnel\u002Ftunnel-management","3.web-management\u002F2.tunnel\u002F1.tunnel-management",{"title":58,"path":59,"stem":60},"隧道创建","\u002Fweb-management\u002Ftunnel\u002Fcreate-tunnel","3.web-management\u002F2.tunnel\u002F2.create-tunnel",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":35},"域名管理","i-lucide-globe-code","\u002Fweb-management\u002Fdomain-management","3.web-management\u002F3.domain-management",[67],{"title":68,"path":69,"stem":70},"域名白名单","\u002Fweb-management\u002Fdomain-management\u002Fwhitelist","3.web-management\u002F3.domain-management\u002F1.whitelist",{"title":72,"icon":73,"path":74,"stem":75,"children":76,"page":35},"OAuth","i-lucide-key-round","\u002Fweb-management\u002Foauth","3.web-management\u002F4.oauth",[77,81,85],{"title":78,"path":79,"stem":80},"应用管理","\u002Fweb-management\u002Foauth\u002Fapp-management","3.web-management\u002F4.oauth\u002F1.app-management",{"title":82,"path":83,"stem":84},"创建应用","\u002Fweb-management\u002Foauth\u002Fcreate-app","3.web-management\u002F4.oauth\u002F2.create-app",{"title":86,"path":87,"stem":88},"授权管理","\u002Fweb-management\u002Foauth\u002Fauthorizations","3.web-management\u002F4.oauth\u002F3.authorizations",{"title":90,"icon":91,"path":92,"stem":93,"children":94,"page":35},"账户设置","i-lucide-user-cog","\u002Fweb-management\u002Fsettings","3.web-management\u002F5.settings",[95,99],{"title":96,"path":97,"stem":98},"基础设置","\u002Fweb-management\u002Fsettings\u002Fsettings","3.web-management\u002F5.settings\u002F1.settings",{"title":100,"path":101,"stem":102},"安全性","\u002Fweb-management\u002Fsettings\u002Fsecurity","3.web-management\u002F5.settings\u002F2.security",{"title":104,"icon":105,"path":106,"stem":107,"children":108,"page":35},"客户端","i-lucide-laptop","\u002Fclient","4.client",[109,152,166],{"title":110,"icon":111,"path":112,"stem":113,"children":114,"page":35},"图形化客户端","i-lucide-app-window-mac","\u002Fclient\u002Fgui","4.client\u002F1.gui",[115,136,148],{"title":116,"path":117,"stem":118,"children":119,"page":35},"LoliaFrpClient","\u002Fclient\u002Fgui\u002Floliafrpclient","4.client\u002F1.gui\u002F1.loliafrpclient",[120,124,128,132],{"title":121,"path":122,"stem":123},"简介","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Fintroduction","4.client\u002F1.gui\u002F1.loliafrpclient\u002F1.introduction",{"title":125,"path":126,"stem":127},"Windows","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Fwindows","4.client\u002F1.gui\u002F1.loliafrpclient\u002F2.Windows",{"title":129,"path":130,"stem":131},"Linux","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Flinux","4.client\u002F1.gui\u002F1.loliafrpclient\u002F3.Linux",{"title":133,"path":134,"stem":135},"Android","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Fandroid","4.client\u002F1.gui\u002F1.loliafrpclient\u002F4.Android",{"title":137,"path":138,"stem":139,"children":140,"page":35},"LoliaShizuku","\u002Fclient\u002Fgui\u002Floliashizuku","4.client\u002F1.gui\u002F2.loliashizuku",[141,144],{"title":121,"path":142,"stem":143},"\u002Fclient\u002Fgui\u002Floliashizuku\u002Floliashizuku","4.client\u002F1.gui\u002F2.loliashizuku\u002F1.loliashizuku",{"title":145,"path":146,"stem":147},"快速入门","\u002Fclient\u002Fgui\u002Floliashizuku\u002Fusage","4.client\u002F1.gui\u002F2.loliashizuku\u002F2.usage",{"title":149,"path":150,"stem":151},"Kairo","\u002Fclient\u002Fgui\u002Fkairo","4.client\u002F1.gui\u002F3.kairo",{"title":153,"icon":154,"path":155,"stem":156,"children":157,"page":35},"命令行客户端","i-lucide-square-terminal","\u002Fclient\u002Fcli","4.client\u002F2.cli",[158,162],{"title":159,"path":160,"stem":161},"Lolia CLI","\u002Fclient\u002Fcli\u002Fcli","4.client\u002F2.cli\u002F1.cli",{"title":163,"path":164,"stem":165},"参考","\u002Fclient\u002Fcli\u002Freference","4.client\u002F2.cli\u002F2.reference",{"title":167,"icon":168,"path":169,"stem":170,"children":171,"page":35},"面板客户端","i-lucide-app-window","\u002Fclient\u002Fweb","4.client\u002F3.web",[172,176],{"title":173,"path":174,"stem":175},"MCSManager FRP模板","\u002Fclient\u002Fweb\u002Fmcsm","4.client\u002F3.web\u002F1.mcsm",{"title":177,"path":178,"stem":179},"MSLX 面板插件","\u002Fclient\u002Fweb\u002Fmslx","4.client\u002F3.web\u002F2.mslx",{"title":181,"icon":182,"path":183,"stem":184,"children":185,"page":35},"配置指南","i-lucide-sliders-horizontal","\u002Ftutorials","5.tutorials",[186,205,236],{"title":187,"icon":188,"path":189,"stem":190,"children":191,"page":35},"常见应用","i-lucide-toolbox","\u002Ftutorials\u002Fapp","5.tutorials\u002F1.app",[192],{"title":193,"path":194,"stem":195,"children":196,"page":35},"RDP远程桌面","\u002Ftutorials\u002Fapp\u002Frdp","5.tutorials\u002F1.app\u002F1.rdp",[197,201],{"title":198,"path":199,"stem":200},"通用配置","\u002Ftutorials\u002Fapp\u002Frdp\u002Fintroduction","5.tutorials\u002F1.app\u002F1.rdp\u002F1.introduction",{"title":202,"path":203,"stem":204},"以服务模式运行LoliaFRP","\u002Ftutorials\u002Fapp\u002Frdp\u002Fcli-tutorial","5.tutorials\u002F1.app\u002F1.rdp\u002F2.cli-tutorial",{"title":206,"icon":207,"path":208,"stem":209,"children":210,"page":35},"游戏应用","i-lucide-gamepad-2","\u002Ftutorials\u002Fgame","5.tutorials\u002F2.game",[211,232],{"title":212,"path":213,"stem":214,"children":215,"page":35},"Minecraft","\u002Ftutorials\u002Fgame\u002Fminecraft","5.tutorials\u002F2.game\u002F1.minecraft",[216,220,224,228],{"title":217,"path":218,"stem":219},"Java 版局域网联机","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fmcjavalan","5.tutorials\u002F2.game\u002F1.minecraft\u002F1.mcjavalan",{"title":221,"path":222,"stem":223},"Java 版独立服务器","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fmcjavaserver","5.tutorials\u002F2.game\u002F1.minecraft\u002F2.mcjavaserver",{"title":225,"path":226,"stem":227},"Simple Voice Chat","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fsimplevoicechat","5.tutorials\u002F2.game\u002F1.minecraft\u002F3.simplevoicechat",{"title":229,"path":230,"stem":231},"外置登录联机教程","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fauthlib-injector","5.tutorials\u002F2.game\u002F1.minecraft\u002F4.authlib-injector",{"title":233,"path":234,"stem":235},"星露谷物语多人联机","\u002Ftutorials\u002Fgame\u002Fstardew-valley","5.tutorials\u002F2.game\u002F2.stardew-valley",{"title":237,"icon":238,"path":239,"stem":240,"children":241,"page":35},"进阶配置","i-lucide-file-cog","\u002Ftutorials\u002Fadvanced","5.tutorials\u002F4.advanced",[242,246,250,254,258],{"title":243,"path":244,"stem":245},"配置PROXY protocol","\u002Ftutorials\u002Fadvanced\u002Fproxy-protocol","5.tutorials\u002F4.advanced\u002F1.proxy-protocol",{"title":247,"path":248,"stem":249},"双栈网络配置","\u002Ftutorials\u002Fadvanced\u002Fmixed-v4-v6","5.tutorials\u002F4.advanced\u002F2.mixed-v4-v6",{"title":251,"path":252,"stem":253},"AutoTLS","\u002Ftutorials\u002Fadvanced\u002Fautotls","5.tutorials\u002F4.advanced\u002F3.autotls",{"title":255,"path":256,"stem":257},"多个隧道创建和使用","\u002Ftutorials\u002Fadvanced\u002Fmulti-tunnel","5.tutorials\u002F4.advanced\u002F3.multi-tunnel",{"title":259,"path":260,"stem":261},"使用自己的域名","\u002Ftutorials\u002Fadvanced\u002Fcname","5.tutorials\u002F4.advanced\u002F4.cname",{"title":263,"icon":264,"defaultOpen":35,"path":265,"stem":266,"children":267,"page":35},"开发者","i-lucide-folder-code","\u002Fdevelopers","6.developers",[268,273],{"title":269,"path":270,"stem":271,"icon":272},"LoliaFRP Open API","\u002Fdevelopers\u002Fopenapi","6.developers\u002F1.openapi","i-lucide-webhook",{"title":274,"path":275,"stem":276,"icon":277},"OAuth2 鉴权","\u002Fdevelopers\u002Foauth","6.developers\u002F2.oauth","i-lucide-fingerprint-pattern",{"title":279,"path":280,"stem":281,"icon":282},"社区","\u002Fcommunity","8.community","i-lucide-users",{"title":284,"path":285,"stem":286,"icon":287},"参与贡献","\u002Fcontributing","9.contributing","i-lucide-git-pull-request-arrow",{"id":289,"title":247,"body":290,"description":595,"extension":596,"links":597,"meta":598,"navigation":599,"path":248,"seo":600,"stem":249,"__hash__":601},"docs\u002F5.tutorials\u002F4.advanced\u002F2.mixed-v4-v6.md",{"type":291,"value":292,"toc":576},"minimark",[293,297,313,318,344,349,352,355,358,372,376,399,402,406,422,433,447,451,454,457,466,469,480,484,487,490,493,497,504,508,522,525,529,532,536,539,552,556,559,562,565],[294,295,296],"tip",{},"本文为进阶教程并面向专业用户，可能不适合大多数用户。",[294,298,299,303],{},[300,301,302],"p",{},"如果您在文章中看见了某些双语对照内容，它们的设计目的可能是：",[304,305,306,310],"ul",{},[307,308,309],"li",{},"保证标准化的语法和词法。",[307,311,312],{},"减少中文翻译的歧义性。",[314,315,317],"h2",{"id":316},"_1-引言","1. 引言",[300,319,320,321,328,329,334,335,339,340,343],{},"所谓 IPv4 over FRP 和 IPv6 实现的双栈网络，其基本原理即为利用 ",[322,323,327],"a",{"href":324,"rel":325},"https:\u002F\u002Fwww.rfc-editor.org\u002Finfo\u002Frfc6724",[326],"nofollow","RFC 6724"," 和 ",[322,330,333],{"href":331,"rel":332},"https:\u002F\u002Fwww.rfc-editor.org\u002Finfo\u002Frfc8305\u002F",[326],"RFC 8305"," 定义的自动选择规则，通过 DNS 的 ",[336,337,338],"code",{},"A"," 记录和 ",[336,341,342],{},"AAAA"," 记录，分别指向源站的 IPv6 地址 和 FRPS 所在的 IPv4 地址。由于解析的地址通常各不相同，但应用程序连接的端口通常相同，因此我们需要将 IPv6 上监听的端口调整为与 FRPS 暴露的远程端口相同的端口，使域名解析到的每一个 IP 地址都监听了目标服务，此即完成配置。",[345,346,348],"h3",{"id":347},"_11-架构拓扑","1.1 架构拓扑",[300,350,351],{},"由于文档推荐如果应用支持则PROXY protocol总是处于开启状态，故此处分情况讨论。",[294,353,354],{},"本文的前提假定您的应用支持同时监听IPv4和IPv6（如果不支持同时监听的，可能需要从v6栈转发到v4栈并可能引起兼容性问题，篇幅问题不赘述）",[300,356,357],{},"当PROXY protocol支持时：",[304,359,360,363,366,369],{},[307,361,362],{},"FRPC应当总是启用PROXY protocol v2支持",[307,364,365],{},"如果您的应用支持分别配置ipv6监听的地址和是否启用PROXY protocol，则直接监听与frps一致的外部端口即可",[307,367,368],{},"如果您的应用不支持分别配置ipv6监听的地址和端口，通常你需要一个端口映射，例如iptables的端口转发（并保留源ip和端口）",[307,370,371],{},"如果您的应用不支持在各个端口上分别配置是否启用PROXY protocol，则前端需要添加一个PROXY protocol Header，不再使用端口转发",[314,373,375],{"id":374},"_2-基本配置方法","2. 基本配置方法",[300,377,378,379,382,383,382,386,382,389,382,392,382,395,398],{},"本文假设您对网络有基本认识，能够区分",[336,380,381],{},"IPv4",", ",[336,384,385],{},"IPv6",[336,387,388],{},"FRPC",[336,390,391],{},"FRPS",[336,393,394],{},"PROXY protocol",[336,396,397],{},"DNS Record","等相关术语并以了解如何配置。",[300,400,401],{},"此处适用于 Windows 和 Linux, 请发挥举一反三的能力。",[345,403,405],{"id":404},"_21-获取-ipv4-和-ipv6-地址","2.1 获取 IPv4 和 IPv6 地址",[407,408,409,412,419],"ol",{},[307,410,411],{},"首先，创建隧道。",[307,413,414,415,418],{},"创建完成后您会获得一个形如",[336,416,417],{},"cn-frp-1.qwq.fan:14514","FRPS的外部连接地址。",[307,420,421],{},"使用任何你喜欢的方式获取外部连接地址中的域名所对应的IPv4地址，然后记下来。",[294,423,424,425,428,429,432],{},"对于 Windows, 可使用",[336,426,427],{},"nslookup cn-frp-1.qwq.fan -q=A","获取 IP 地址，Linux 使用",[336,430,431],{},"dig cn-frp-1.qwq.fan"," 或者用网页DNS查询，总之任何方式能拿到IP地址都可以。",[407,434,436],{"start":435},4,[307,437,438,439,442,443,446],{},"使用任何你喜欢的方式，获取服务器的IPv6地址，通常 ",[336,440,441],{},"ipconfig","(on Windows) 和 ",[336,444,445],{},"ifconfig","(on Linux)即可，然后记下来。",[345,448,450],{"id":449},"_22-配置-dns-解析","2.2 配置 DNS 解析",[300,452,453],{},"由于篇幅受限（和作者懒得截图），不会使用具体服务商，只是通用说明。",[300,455,456],{},"在 DNS 服务商中，为你的域名添加一个或多个A记录解析到所有已创建隧道的 FRPS 的 IPv4 地址上。",[294,458,459,460,465],{},"如果您的服务器没有静态 IPv6 前缀，那么推荐搭配 ",[322,461,464],{"href":462,"rel":463},"https:\u002F\u002Fgithub.com\u002Fjeessy2\u002Fddns-go",[326],"ddns-go"," 使用。",[300,467,468],{},"在 DNS 服务商中，为你的域名添加一个或多个 AAAA 记录解析到所有服务器的网络接口卡的 IPv6 地址上。",[294,470,471,472,475,476,479],{},"如果您没有一般意义上的多线路接入，那么通常使用 ",[336,473,474],{},"IPv6 地址","（而不是",[336,477,478],{},"临时 IPv6 地址","），创建一个 DNS 解析记录即可。",[345,481,483],{"id":482},"_23-配置端口","2.3 配置端口",[300,485,486],{},"如果您的服务不支持 PROXY protocol, 那么直接将内部端口设置为与外部端口一致，并修改frpc的本地端口也是可以的。",[300,488,489],{},"如果您的服务支持 PROXY protocol v2（由于UDP不支持在PROXY protocol v1上工作，并且v2性能高得多），那么您需要一些额外的配置。",[300,491,492],{},"推荐使用HAProxy监听一个与FRPS相同的远程端口，然后回源添加PROXY protocol Header。",[345,494,496],{"id":495},"_24-访客连接","2.4 访客连接",[300,498,499,500,503],{},"直接使用 ",[336,501,502],{},"域名:端口"," 连接即可。",[314,505,507],{"id":506},"_3-一般性安全建议","3. 一般性安全建议",[300,509,510,511,514,515,514,518,521],{},"如果您的后端服务支持 PROXY protocol 并已在 FRPC 上启用，那么您应当使用防火墙禁止任何外部流量直接访问到后端服务，并且在本地部署支持 PROXY protocol Header 的反向代理监听以完整记录来自 IPv4 和 IPv6 的流量的原始四元组信息，如 ",[336,512,513],{},"HAProxy"," 或 ",[336,516,517],{},"NGINX",[336,519,520],{},"FRPC + FRPS"," 等方法，您可以自行探索。",[300,523,524],{},"推荐支持的应用启用TLS以保护传输层安全。",[314,526,528],{"id":527},"_4-常见问题","4. 常见问题",[300,530,531],{},"此处记录了一些常见问题。",[345,533,535],{"id":534},"frps-的-ip-地址经常变更怎么办可以使用-cname-吗","FRPS 的 IP 地址经常变更怎么办，可以使用 CNAME 吗",[300,537,538],{},"不行，CNAME会覆盖AAAA。",[300,540,541,542,544,545,548,549,551],{},"您可以尝试使用脚本轮询 ",[336,543,391],{}," 的 IPv4 地址，并通过服务商的 ",[336,546,547],{},"DNS 解析 API"," 更新 ",[336,550,338],{}," 记录。",[345,553,555],{"id":554},"配置之后-v6v4-只有一个能连","配置之后 v6\u002Fv4 只有一个能连",[300,557,558],{},"IPv6 上的 timeout 通常是防火墙问题。",[300,560,561],{},"如果不是 timeout, 可能你的IPv6地址没有添加PROXY protocol Header（如果你的应用启用了）。",[300,563,564],{},"对于一般的应用，是不能兼容同时启用和不启用PROXY protocol Header的。",[300,566,567,568,571,572,575],{},"亦有可能你本地服务根本没有监听 IPv6 地址（",[336,569,570],{},"[::]",", 或 ",[336,573,574],{},"[::1]"," （当本机运行HAProxy并为后端添加防火墙时）），或你的应用不支持使用 IPv6 连接。",{"title":577,"searchDepth":578,"depth":578,"links":579},"",2,[580,584,590,591],{"id":316,"depth":578,"text":317,"children":581},[582],{"id":347,"depth":583,"text":348},3,{"id":374,"depth":578,"text":375,"children":585},[586,587,588,589],{"id":404,"depth":583,"text":405},{"id":449,"depth":583,"text":450},{"id":482,"depth":583,"text":483},{"id":495,"depth":583,"text":496},{"id":506,"depth":578,"text":507},{"id":527,"depth":578,"text":528,"children":592},[593,594],{"id":534,"depth":583,"text":535},{"id":554,"depth":583,"text":555},"如何配置双栈(FRP + IPv6)网络","md",null,{},true,{"title":247,"description":595},"NX5tcqkWyfVfopWNeNr1ft8JwSxnC2QOxjjaELT2RxI",[603,605],{"title":243,"path":244,"stem":245,"description":604,"children":-1},"如何通过 PROXY protocol 获取访客真实 IP",{"title":251,"path":252,"stem":253,"description":606,"children":-1},"配置使用 Lolia FRP 的 AutoTLS 以自动签发HTTPS证书",1792487833333]