[{"data":1,"prerenderedAt":747},["ShallowReactive",2],{"navigation_docs":3,"-tutorials-web-get-realip":335,"-tutorials-web-get-realip-surround":742},[4,9,41,108,185,289,305,325,330],{"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":40},"开始之前","i-lucide-list-check","\u002Fbefore-start","2.before-start",[15,20,25,30,35],{"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",{"title":36,"path":37,"stem":38,"icon":39},"大流量内容","\u002Fbefore-start\u002Fbig-traffic-contents","2.before-start\u002F5.big-traffic-contents","i-lucide-zap",false,{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":40},"面板","i-lucide-panels-top-left","\u002Fweb-management","3.web-management",[47,52,66,76,94],{"title":48,"path":49,"stem":50,"icon":51},"仪表盘","\u002Fweb-management\u002Fdashboard","3.web-management\u002F1.dashboard","i-lucide-gauge",{"title":53,"icon":54,"path":55,"stem":56,"children":57,"page":40},"隧道","i-lucide-chevrons-left-right-ellipsis","\u002Fweb-management\u002Ftunnel","3.web-management\u002F2.tunnel",[58,62],{"title":59,"path":60,"stem":61},"隧道管理","\u002Fweb-management\u002Ftunnel\u002Ftunnel-management","3.web-management\u002F2.tunnel\u002F1.tunnel-management",{"title":63,"path":64,"stem":65},"隧道创建","\u002Fweb-management\u002Ftunnel\u002Fcreate-tunnel","3.web-management\u002F2.tunnel\u002F2.create-tunnel",{"title":67,"icon":68,"path":69,"stem":70,"children":71,"page":40},"域名管理","i-lucide-globe-code","\u002Fweb-management\u002Fdomain-management","3.web-management\u002F3.domain-management",[72],{"title":73,"path":74,"stem":75},"域名白名单","\u002Fweb-management\u002Fdomain-management\u002Fwhitelist","3.web-management\u002F3.domain-management\u002F1.whitelist",{"title":77,"icon":78,"path":79,"stem":80,"children":81,"page":40},"OAuth","i-lucide-key-round","\u002Fweb-management\u002Foauth","3.web-management\u002F4.oauth",[82,86,90],{"title":83,"path":84,"stem":85},"应用管理","\u002Fweb-management\u002Foauth\u002Fapp-management","3.web-management\u002F4.oauth\u002F1.app-management",{"title":87,"path":88,"stem":89},"创建应用","\u002Fweb-management\u002Foauth\u002Fcreate-app","3.web-management\u002F4.oauth\u002F2.create-app",{"title":91,"path":92,"stem":93},"授权管理","\u002Fweb-management\u002Foauth\u002Fauthorizations","3.web-management\u002F4.oauth\u002F3.authorizations",{"title":95,"icon":96,"path":97,"stem":98,"children":99,"page":40},"账户设置","i-lucide-user-cog","\u002Fweb-management\u002Fsettings","3.web-management\u002F5.settings",[100,104],{"title":101,"path":102,"stem":103},"基础设置","\u002Fweb-management\u002Fsettings\u002Fsettings","3.web-management\u002F5.settings\u002F1.settings",{"title":105,"path":106,"stem":107},"安全性","\u002Fweb-management\u002Fsettings\u002Fsecurity","3.web-management\u002F5.settings\u002F2.security",{"title":109,"icon":110,"path":111,"stem":112,"children":113,"page":40},"客户端","i-lucide-laptop","\u002Fclient","4.client",[114,157,171],{"title":115,"icon":116,"path":117,"stem":118,"children":119,"page":40},"图形化客户端","i-lucide-app-window-mac","\u002Fclient\u002Fgui","4.client\u002F1.gui",[120,141,153],{"title":121,"path":122,"stem":123,"children":124,"page":40},"LoliaFrpClient","\u002Fclient\u002Fgui\u002Floliafrpclient","4.client\u002F1.gui\u002F1.loliafrpclient",[125,129,133,137],{"title":126,"path":127,"stem":128},"简介","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Fintroduction","4.client\u002F1.gui\u002F1.loliafrpclient\u002F1.introduction",{"title":130,"path":131,"stem":132},"Windows","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Fwindows","4.client\u002F1.gui\u002F1.loliafrpclient\u002F2.Windows",{"title":134,"path":135,"stem":136},"Linux","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Flinux","4.client\u002F1.gui\u002F1.loliafrpclient\u002F3.Linux",{"title":138,"path":139,"stem":140},"Android","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Fandroid","4.client\u002F1.gui\u002F1.loliafrpclient\u002F4.Android",{"title":142,"path":143,"stem":144,"children":145,"page":40},"LoliaShizuku","\u002Fclient\u002Fgui\u002Floliashizuku","4.client\u002F1.gui\u002F2.loliashizuku",[146,149],{"title":126,"path":147,"stem":148},"\u002Fclient\u002Fgui\u002Floliashizuku\u002Floliashizuku","4.client\u002F1.gui\u002F2.loliashizuku\u002F1.loliashizuku",{"title":150,"path":151,"stem":152},"快速入门","\u002Fclient\u002Fgui\u002Floliashizuku\u002Fusage","4.client\u002F1.gui\u002F2.loliashizuku\u002F2.usage",{"title":154,"path":155,"stem":156},"Kairo","\u002Fclient\u002Fgui\u002Fkairo","4.client\u002F1.gui\u002F3.kairo",{"title":158,"icon":159,"path":160,"stem":161,"children":162,"page":40},"命令行客户端","i-lucide-square-terminal","\u002Fclient\u002Fcli","4.client\u002F2.cli",[163,167],{"title":164,"path":165,"stem":166},"Lolia CLI","\u002Fclient\u002Fcli\u002Fcli","4.client\u002F2.cli\u002F1.cli",{"title":168,"path":169,"stem":170},"参考","\u002Fclient\u002Fcli\u002Freference","4.client\u002F2.cli\u002F2.reference",{"title":172,"icon":173,"path":174,"stem":175,"children":176,"page":40},"面板客户端","i-lucide-app-window","\u002Fclient\u002Fweb","4.client\u002F3.web",[177,181],{"title":178,"path":179,"stem":180},"MCSManager FRP模板","\u002Fclient\u002Fweb\u002Fmcsm","4.client\u002F3.web\u002F1.mcsm",{"title":182,"path":183,"stem":184},"MSLX 面板插件","\u002Fclient\u002Fweb\u002Fmslx","4.client\u002F3.web\u002F2.mslx",{"title":186,"icon":187,"path":188,"stem":189,"children":190,"page":40},"配置指南","i-lucide-sliders-horizontal","\u002Ftutorials","5.tutorials",[191,210,245,263],{"title":192,"icon":193,"path":194,"stem":195,"children":196,"page":40},"常见应用","i-lucide-toolbox","\u002Ftutorials\u002Fapp","5.tutorials\u002F1.app",[197],{"title":198,"path":199,"stem":200,"children":201,"page":40},"RDP远程桌面","\u002Ftutorials\u002Fapp\u002Frdp","5.tutorials\u002F1.app\u002F1.rdp",[202,206],{"title":203,"path":204,"stem":205},"通用配置","\u002Ftutorials\u002Fapp\u002Frdp\u002Fintroduction","5.tutorials\u002F1.app\u002F1.rdp\u002F1.introduction",{"title":207,"path":208,"stem":209},"以服务模式运行LoliaFRP","\u002Ftutorials\u002Fapp\u002Frdp\u002Fcli-tutorial","5.tutorials\u002F1.app\u002F1.rdp\u002F2.cli-tutorial",{"title":211,"icon":212,"path":213,"stem":214,"children":215,"page":40},"游戏应用","i-lucide-gamepad-2","\u002Ftutorials\u002Fgame","5.tutorials\u002F2.game",[216,241],{"title":217,"path":218,"stem":219,"children":220,"page":40},"Minecraft","\u002Ftutorials\u002Fgame\u002Fminecraft","5.tutorials\u002F2.game\u002F1.minecraft",[221,225,229,233,237],{"title":222,"path":223,"stem":224},"Java 版局域网联机","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fmcjavalan","5.tutorials\u002F2.game\u002F1.minecraft\u002F1.mcjavalan",{"title":226,"path":227,"stem":228},"Java 版独立服务器","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fmcjavaserver","5.tutorials\u002F2.game\u002F1.minecraft\u002F2.mcjavaserver",{"title":230,"path":231,"stem":232},"Simple Voice Chat","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fsimplevoicechat","5.tutorials\u002F2.game\u002F1.minecraft\u002F3.simplevoicechat",{"title":234,"path":235,"stem":236},"外置登录联机教程","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fauthlib-injector","5.tutorials\u002F2.game\u002F1.minecraft\u002F4.authlib-injector",{"title":238,"path":239,"stem":240},"SRV 解析","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fsrv-record","5.tutorials\u002F2.game\u002F1.minecraft\u002F6.srv-record",{"title":242,"path":243,"stem":244},"星露谷物语多人联机","\u002Ftutorials\u002Fgame\u002Fstardew-valley","5.tutorials\u002F2.game\u002F2.stardew-valley",{"title":246,"icon":247,"path":248,"stem":249,"children":250,"page":40},"网页应用","i-lucide-link-2","\u002Ftutorials\u002Fweb","5.tutorials\u002F3.web",[251,255,259],{"title":252,"path":253,"stem":254},"DNS 配置","\u002Ftutorials\u002Fweb\u002Fdns-config","5.tutorials\u002F3.web\u002F2.dns-config",{"title":256,"path":257,"stem":258},"NGINX","\u002Ftutorials\u002Fweb\u002Fnginx","5.tutorials\u002F3.web\u002F4.nginx",{"title":260,"path":261,"stem":262},"获取访客真实IP","\u002Ftutorials\u002Fweb\u002Fget-realip","5.tutorials\u002F3.web\u002F5.get-realip",{"title":264,"icon":265,"path":266,"stem":267,"children":268,"page":40},"进阶配置","i-lucide-file-cog","\u002Ftutorials\u002Fadvanced","5.tutorials\u002F4.advanced",[269,273,277,281,285],{"title":270,"path":271,"stem":272},"配置PROXY protocol","\u002Ftutorials\u002Fadvanced\u002Fproxy-protocol","5.tutorials\u002F4.advanced\u002F1.proxy-protocol",{"title":274,"path":275,"stem":276},"双栈网络配置","\u002Ftutorials\u002Fadvanced\u002Fmixed-v4-v6","5.tutorials\u002F4.advanced\u002F2.mixed-v4-v6",{"title":278,"path":279,"stem":280},"AutoTLS","\u002Ftutorials\u002Fadvanced\u002Fautotls","5.tutorials\u002F4.advanced\u002F3.autotls",{"title":282,"path":283,"stem":284},"多个隧道创建和使用","\u002Ftutorials\u002Fadvanced\u002Fmulti-tunnel","5.tutorials\u002F4.advanced\u002F4.multi-tunnel",{"title":286,"path":287,"stem":288},"使用自己的域名","\u002Ftutorials\u002Fadvanced\u002Fcname","5.tutorials\u002F4.advanced\u002F5.cname",{"title":290,"icon":291,"defaultOpen":40,"path":292,"stem":293,"children":294,"page":40},"开发者","i-lucide-folder-code","\u002Fdevelopers","6.developers",[295,300],{"title":296,"path":297,"stem":298,"icon":299},"LoliaFRP Open API","\u002Fdevelopers\u002Fopenapi","6.developers\u002F1.openapi","i-lucide-webhook",{"title":301,"path":302,"stem":303,"icon":304},"OAuth2 鉴权","\u002Fdevelopers\u002Foauth","6.developers\u002F2.oauth","i-lucide-fingerprint-pattern",{"title":306,"icon":307,"defaultOpen":40,"path":308,"stem":309,"children":310,"page":40},"扩展阅读","i-lucide-book-open-text","\u002Fextension","7.extension",[311,315],{"title":126,"path":312,"stem":313,"icon":314},"\u002Fextension\u002Fabout","7.extension\u002F1.about","i-lucide-text-initial",{"title":316,"icon":317,"defaultOpen":40,"path":318,"stem":319,"children":320,"page":40},"原理","i-lucide-monitor-cloud","\u002Fextension\u002Fbasics","7.extension\u002F2.basics",[321],{"title":322,"path":323,"stem":324},"frp 的工作基础","\u002Fextension\u002Fbasics\u002Ffrp-base","7.extension\u002F2.basics\u002F1.frp-base",{"title":326,"path":327,"stem":328,"icon":329},"社区","\u002Fcommunity","8.community","i-lucide-users",{"title":331,"path":332,"stem":333,"icon":334},"参与贡献","\u002Fcontributing","9.contributing","i-lucide-git-pull-request-arrow",{"id":336,"title":260,"body":337,"description":736,"extension":737,"links":738,"meta":739,"navigation":405,"path":261,"seo":740,"stem":262,"__hash__":741},"docs\u002F5.tutorials\u002F3.web\u002F5.get-realip.md",{"type":338,"value":339,"toc":731},"minimark",[340,353,357,369,378,442,454,470,510,526,530,545,552,587,597,668,677,684,688,727],[341,342,343,344,348,349,352],"warning",{},"承载 HTTPS 的站点只能用 ",[345,346,347],"code",{},"PROXY protocol","：TLS 由 frps 直接透传、不做解析，",[345,350,351],{},"X-Forwarded-For"," 不会被追加。",[354,355,256],"h2",{"id":356},"nginx",[358,359,360,361,364,365,368],"p",{},"Nginx 用 realip 模块把访客 IP 覆盖到 ",[345,362,363],{},"$remote_addr","，两种方案的区别只在于 ",[345,366,367],{},"real_ip_header","。",[358,370,371,374,375,377],{},[345,372,373],{},"HTTP"," 隧道可读取 ",[345,376,351],{},"，面板不需要任何配置，frpc 会自动把访客 IP 追加到该请求头末尾：",[379,380,384],"pre",{"className":381,"code":382,"language":356,"meta":383,"style":383},"language-nginx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","server {\n    listen 80;\n\n    # frpc 在本地运行写 127.0.0.0\u002F8，不同机时写 frpc 的内网地址或CIDR段\n    set_real_ip_from 127.0.0.0\u002F8;\n    real_ip_header X-Forwarded-For;\n\n    # 原有内容不变，此时 $remote_addr 已是访客 IP\n}\n","",[345,385,386,394,400,407,413,419,425,430,436],{"__ignoreMap":383},[387,388,391],"span",{"class":389,"line":390},"line",1,[387,392,393],{},"server {\n",[387,395,397],{"class":389,"line":396},2,[387,398,399],{},"    listen 80;\n",[387,401,403],{"class":389,"line":402},3,[387,404,406],{"emptyLinePlaceholder":405},true,"\n",[387,408,410],{"class":389,"line":409},4,[387,411,412],{},"    # frpc 在本地运行写 127.0.0.0\u002F8，不同机时写 frpc 的内网地址或CIDR段\n",[387,414,416],{"class":389,"line":415},5,[387,417,418],{},"    set_real_ip_from 127.0.0.0\u002F8;\n",[387,420,422],{"class":389,"line":421},6,[387,423,424],{},"    real_ip_header X-Forwarded-For;\n",[387,426,428],{"class":389,"line":427},7,[387,429,406],{"emptyLinePlaceholder":405},[387,431,433],{"class":389,"line":432},8,[387,434,435],{},"    # 原有内容不变，此时 $remote_addr 已是访客 IP\n",[387,437,439],{"class":389,"line":438},9,[387,440,441],{},"}\n",[341,443,444,446,447,450,451,453],{},[345,445,351],{}," 的前半部分完全由访客控制。realip 会从右往左取第一个不在 ",[345,448,449],{},"set_real_ip_from"," 里的地址，所以必须把 ",[345,452,449],{}," 限定为 frpc 的地址，否则访客可以直接伪造来源 IP。",[358,455,456,459,460,459,463,466,467,469],{},[345,457,458],{},"HTTPS","、",[345,461,462],{},"TCP",[345,464,465],{},"UDP"," 隧道开启 ",[345,468,347],{},"：",[379,471,473],{"className":381,"code":472,"language":356,"meta":383,"style":383},"server {\n    listen 80 proxy_protocol;\n\n    set_real_ip_from 127.0.0.0\u002F8;\n    real_ip_header proxy_protocol;\n\n    # 原有内容不变\n}\n",[345,474,475,479,484,488,492,497,501,506],{"__ignoreMap":383},[387,476,477],{"class":389,"line":390},[387,478,393],{},[387,480,481],{"class":389,"line":396},[387,482,483],{},"    listen 80 proxy_protocol;\n",[387,485,486],{"class":389,"line":402},[387,487,406],{"emptyLinePlaceholder":405},[387,489,490],{"class":389,"line":409},[387,491,418],{},[387,493,494],{"class":389,"line":415},[387,495,496],{},"    real_ip_header proxy_protocol;\n",[387,498,499],{"class":389,"line":421},[387,500,406],{"emptyLinePlaceholder":405},[387,502,503],{"class":389,"line":427},[387,504,505],{},"    # 原有内容不变\n",[387,507,508],{"class":389,"line":432},[387,509,441],{},[511,512,513,516,517,520,521,525],"caution",{},[345,514,515],{},"listen"," 上开启 ",[345,518,519],{},"proxy_protocol"," 后，该端口（包括其它配置文件里的同一端口）的",[522,523,524],"strong",{},"所有","连接都会按 PROXY protocol 解析，浏览器无法直接访问该端口。",[354,527,529],{"id":528},"apache","Apache",[358,531,532,533,536,537,540,541,544],{},"要求 Apache ",[345,534,535],{},">= 2.4.30"," 并启用 ",[345,538,539],{},"mod_remoteip","（Debian\u002FUbuntu 可执行 ",[345,542,543],{},"a2enmod remoteip","）。",[358,546,547,549,550,469],{},[345,548,373],{}," 隧道读取 ",[345,551,351],{},[379,553,556],{"className":554,"code":555,"language":528,"meta":383,"style":383},"language-apache shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003CVirtualHost *:80>\n    ServerName example.com\n\n    RemoteIPHeader X-Forwarded-For\n    RemoteIPInternalProxy 127.0.0.0\u002F8\n\u003C\u002FVirtualHost>\n",[345,557,558,563,568,572,577,582],{"__ignoreMap":383},[387,559,560],{"class":389,"line":390},[387,561,562],{},"\u003CVirtualHost *:80>\n",[387,564,565],{"class":389,"line":396},[387,566,567],{},"    ServerName example.com\n",[387,569,570],{"class":389,"line":402},[387,571,406],{"emptyLinePlaceholder":405},[387,573,574],{"class":389,"line":409},[387,575,576],{},"    RemoteIPHeader X-Forwarded-For\n",[387,578,579],{"class":389,"line":415},[387,580,581],{},"    RemoteIPInternalProxy 127.0.0.0\u002F8\n",[387,583,584],{"class":389,"line":421},[387,585,586],{},"\u003C\u002FVirtualHost>\n",[358,588,589,459,591,459,593,466,595,469],{},[345,590,458],{},[345,592,462],{},[345,594,465],{},[345,596,347],{},[379,598,600],{"className":554,"code":599,"language":528,"meta":383,"style":383},"\u003CVirtualHost *:80>\n    ServerName example.com\n\n    RemoteIPProxyProtocol On\n\u003C\u002FVirtualHost>\n\n\u003CVirtualHost *:443>\n    ServerName example.com\n    SSLEngine on\n    SSLCertificateFile      \u002Fpath\u002Fto\u002Ffullchain.pem\n    SSLCertificateKeyFile   \u002Fpath\u002Fto\u002Fprivkey.pem\n\n    RemoteIPProxyProtocol On\n\u003C\u002FVirtualHost>\n",[345,601,602,606,610,614,619,623,627,632,636,641,647,653,658,663],{"__ignoreMap":383},[387,603,604],{"class":389,"line":390},[387,605,562],{},[387,607,608],{"class":389,"line":396},[387,609,567],{},[387,611,612],{"class":389,"line":402},[387,613,406],{"emptyLinePlaceholder":405},[387,615,616],{"class":389,"line":409},[387,617,618],{},"    RemoteIPProxyProtocol On\n",[387,620,621],{"class":389,"line":415},[387,622,586],{},[387,624,625],{"class":389,"line":421},[387,626,406],{"emptyLinePlaceholder":405},[387,628,629],{"class":389,"line":427},[387,630,631],{},"\u003CVirtualHost *:443>\n",[387,633,634],{"class":389,"line":432},[387,635,567],{},[387,637,638],{"class":389,"line":438},[387,639,640],{},"    SSLEngine on\n",[387,642,644],{"class":389,"line":643},10,[387,645,646],{},"    SSLCertificateFile      \u002Fpath\u002Fto\u002Ffullchain.pem\n",[387,648,650],{"class":389,"line":649},11,[387,651,652],{},"    SSLCertificateKeyFile   \u002Fpath\u002Fto\u002Fprivkey.pem\n",[387,654,656],{"class":389,"line":655},12,[387,657,406],{"emptyLinePlaceholder":405},[387,659,661],{"class":389,"line":660},13,[387,662,618],{},[387,664,666],{"class":389,"line":665},14,[387,667,586],{},[341,669,670,673,674,368],{},[345,671,672],{},"RemoteIPProxyProtocol"," 按 VirtualHost 生效，80 和 443 要各写一遍，漏写的那个端口仍会把访客地址记成 ",[345,675,676],{},"127.0.0.1",[358,678,679,680,683],{},"配置完成后 ",[345,681,682],{},"%a"," 即为访客 IP。",[354,685,687],{"id":686},"用-x-forwarded-for-拿到的还是-127001","用 X-Forwarded-For 拿到的还是 127.0.0.1",[689,690,691,708,718],"ol",{},[692,693,694,695,697,698,700,701,459,703,459,705,707],"li",{},"确认隧道类型是 ",[345,696,373],{},"，",[345,699,351],{}," 对 ",[345,702,462],{},[345,704,465],{},[345,706,458],{},"隧道无效",[692,709,710,711,713,714,717],{},"确认 ",[345,712,449],{},"（Nginx）或 ",[345,715,716],{},"RemoteIPInternalProxy","（Apache）写的是 frpc 的地址",[692,719,720,721,723,724,726],{},"确认读的是 ",[345,722,363],{}," \u002F ",[345,725,682],{},"，而不是自己另外拼的变量",[728,729,730],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":383,"searchDepth":396,"depth":396,"links":732},[733,734,735],{"id":356,"depth":396,"text":256},{"id":528,"depth":396,"text":529},{"id":686,"depth":396,"text":687},"在 NGINX 与 Apache 中获取访客真实 IP","md",null,{},{"title":260,"description":736},"-7GDQyd3_JFA3kgZo7lN_YLcITGt6akkKNed46o4c2w",[743,745],{"title":256,"path":257,"stem":258,"description":744,"children":-1},"搭配 Lolia FRP 和 NGINX 配置网页服务",{"title":270,"path":271,"stem":272,"description":746,"children":-1},"如何通过 PROXY protocol 获取访客真实 IP",1793287659993]