<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>proxy_protocol相关文章列表 | 皇家元林</title>
	<atom:link href="https://hjyl.org/tags/proxy_protocol/feed/" rel="self" type="application/rss+xml" />
	<link>https://hjyl.org</link>
	<description>刘元林的个人博客</description>
	<lastBuildDate>Wed, 16 Jul 2025 17:00:13 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://img.hjyl.org/uploads/2019/10/cropped-about-me-32x32.png</url>
	<title>proxy_protocol相关文章列表 | 皇家元林</title>
	<link>https://hjyl.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>EdgeOne之后客户端真实IP问题</title>
		<link>https://hjyl.org/edgeone-real-ip/</link>
					<comments>https://hjyl.org/edgeone-real-ip/#comments</comments>
		
		<dc:creator><![CDATA[皇家元林]]></dc:creator>
		<pubDate>Wed, 16 Jul 2025 17:00:09 +0000</pubDate>
				<category><![CDATA[元林手札]]></category>
		<category><![CDATA[EdgeOne]]></category>
		<category><![CDATA[frp]]></category>
		<category><![CDATA[proxy_protocol]]></category>
		<category><![CDATA[内网穿透]]></category>
		<category><![CDATA[真实IP]]></category>
		<guid isPermaLink="false">https://hjyl.org/?p=5819</guid>

					<description><![CDATA[今天试了EdgeOne，规则设置有点菜，导致全站缓存，所以评论和发布的文章不能实时刷新。其实 EdgeOne  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>今天试了EdgeOne，规则设置有点菜，导致全站缓存，所以评论和发布的文章不能实时刷新。其实 EdgeOne 添加域名加速的时候，下面就有规则模版——WordPress 建站，直接选中即可。</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1596" height="1400" src="https://img.hjyl.org/uploads/2025/07/WX20250716-234217@2x.png"  class="wp-image-5818" srcset="https://img.hjyl.org/uploads/2025/07/WX20250716-234217@2x.png 1596w, https://img.hjyl.org/uploads/2025/07/WX20250716-234217@2x-1536x1347.png 1536w" sizes="(max-width: 1596px) 100vw, 1596px" title="WX20250716 234217@2x.png" alt="WX20250716 234217@2x.png" /></figure>



<p>现在好多了。但是另外一个问题来了，就是评论提交时的 IP 地址出现问题了，推测携带的应该是cdn 的 IP 地址。每次刷新还不一样，不过也就那么几个。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1862" height="978" src="https://img.hjyl.org/uploads/2025/07/WX20250717-005550@2x.png"  class="wp-image-5820" srcset="https://img.hjyl.org/uploads/2025/07/WX20250717-005550@2x.png 1862w, https://img.hjyl.org/uploads/2025/07/WX20250717-005550@2x-1536x807.png 1536w" sizes="(max-width: 1862px) 100vw, 1862px" title="WX20250717 005550@2x.png" alt="WX20250717 005550@2x.png" /></figure>



<p>但HTTP_X_FORWARDED_FOR 显示的确实正常的。因为我的博客是通过 frp 穿透出去的，真实 IP 地址是通过 proxy_protocol 协议传递的。所以在 nginx 配置中会设置real_ip_header proxy_protocol。（这个在之前文章提过，具体了解见<a href="https://hjyl.org/proxy-protocol-realip/">此文</a>）</p>



<p>通过 EdgeOne 之后，直接HTTP_X_FORWARDED_FOR 可以正常传递真实 IP，所以咱们将上面 nginx 设置如下：</p>



<pre class="wp-block-code"><code lang="nginx" class="language-nginx line-numbers">real_ip_header X-Forwarded-For;</code></pre>



<p>OK，现在正常了！</p>
<div id="content-copyright"><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;font-size: 13px;">版权声明: </span><span style="font-size: 13px;">本文采用 <a href="https://hjyl.org/go/aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzMuMC8=" rel="nofollow" target="_blank">BY-NC-SA</a> 协议进行授权，如无注明均为原创，转载请注明转自 <a href="https://hjyl.org">皇家元林</a><br>本文链接: <a rel="bookmark" title="EdgeOne之后客户端真实IP问题" href="https://hjyl.org/edgeone-real-ip/">EdgeOne之后客户端真实IP问题</a></span></div>]]></content:encoded>
					
					<wfw:commentRss>https://hjyl.org/edgeone-real-ip/feed/</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
			</item>
		<item>
		<title>通过proxy_protocol协议实现真实IP</title>
		<link>https://hjyl.org/proxy-protocol-realip/</link>
					<comments>https://hjyl.org/proxy-protocol-realip/#comments</comments>
		
		<dc:creator><![CDATA[皇家元林]]></dc:creator>
		<pubDate>Wed, 04 Oct 2023 12:30:29 +0000</pubDate>
				<category><![CDATA[元林手札]]></category>
		<category><![CDATA[frp]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[proxy_protocol]]></category>
		<category><![CDATA[内网穿透]]></category>
		<category><![CDATA[反向代理]]></category>
		<category><![CDATA[真实IP]]></category>
		<guid isPermaLink="false">https://hjyl.org/?p=4658</guid>

					<description><![CDATA[说到实现真实IP，之前我用nginx反向代理实现过（点此了解）。操作略微复杂，而且服务端还要求安装nginx， [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>说到实现真实IP，之前我用nginx反向代理实现过（<a href="https://hjyl.org/wordpress-frp-nginx/">点此了解</a>）。操作略微复杂，而且服务端还要求安装nginx，并配置nginx。</p>



<p>我的环境还是那样——通过FRP内网穿透本地lnmp环境。如果是这种情况的话，这应该是最简单实现真实IP的方法——proxy_protocol协议。最先了解的就是这个，可一直没搞明白，搁置了。今天终于搞明白了。</p>



<p>proxy_protocol协议是什么？网上一大堆了，我折腾这么多年，搜了好几个搜索引擎的资料，看最多的就是proxy_protocol的介绍。具体是什么呢？我也不大清楚，反正他能让后端获取客户端的网络信息，也就是IP地址以及TCP端口。它有两种格式——v1和v2，当然现在用的最多的是v2了。</p>



<p>而FRP用proxy_protocol最简单，在穿透的隧道后面加上“proxy_protocol_version = v2”即可。譬如：</p>



<pre class="wp-block-code"><code lang="toml" class="language-toml line-numbers">[liuyuanlin_https]
# 配置 http 访问
type = https
# 本地 Web 服务的端口（与前面的配置一样，都对应同一个 Web 服务）
local_port = 443
# 需要反向代理的域名（当访客通过此域名访问 A 机器时，才会将请求反向代理到此 Web 服务）
custom_domains = liuyuanlin.com, www.liuyuanlin.com
use_encryption=true
use_compression=true
proxy_protocol_version = v2</code></pre>



<p>注意的是，不要再加https2http、https2https这类插件了，因为这类插件就好比nginx的反向代理，会出现502错误。此时你打开网站会出现“ERR SSL PROTOCOL ERROR”的错误，这说明此站流量在走proxy_protocol协议。是正常的。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="472" height="387" src="https://img.hjyl.org/uploads/2023/10/20231004194037.png"  class="wp-image-4659" title="20231004194037.png" alt="20231004194037.png" /><figcaption class="wp-element-caption">“ERR SSL PROTOCOL ERROR”的错误</figcaption></figure>



<p>然后我们配置后端nginx：</p>



<pre class="wp-block-code"><code lang="nginx" class="language-nginx line-numbers">server{

	......
	#listen 端口后面加上proxy_protocol字段，开启Proxy Protocol协议
	listen 12443 ssl http2 proxy_protocol;
	listen [::]:12443 ssl http2 proxy_protocol;
	......

	#proxy_protocol协议头部真实IP
	real_ip_header proxy_protocol;
	real_ip_recursive on;
	set_real_ip_from 127.0.0.1;
	set_real_ip_from 内网IP，公网IP;
	#需要排除的IP，如果你有CDN，可以再加
	...

	#SSL ON
	此处为SSL证书信息，必须得有;
	#SSL END

}</code></pre>



<p>然后重启nginx和frpc服务，搞定！这样默认的REMOTE_ADDR记录的就是客户端的IP了。也不用在wp-config.php多余的配置了。你可以将下面代码保存为.php文件，来测试客户端IP。</p>



<pre class="wp-block-code"><code lang="php" class="language-php line-numbers">&lt;?php
$REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];             // 客户端与服务器握手IP，如果使用代理则会获取到代理IP
$HTTP_CLIENT_IP = $_SERVER['HTTP_CLIENT_IP'];          // 代理服务器发送的HTTP头（可伪造）
$HTTP_X_FORWARDED_FOR = $_SERVER['HTTP_X_FORWARDED_FOR'];    // 用户是在哪个IP使用的代理（可伪造）
$X_Real_IP = $_SERVER['X-Real-IP'];

echo 'REMOTE_ADDR'.$REMOTE_ADDR.'&lt;br/&gt;';
echo 'HTTP_CLIENT_IP'.$HTTP_CLIENT_IP.'&lt;br/&gt;';
echo 'HTTP_X_FORWARDED_FOR'.$HTTP_X_FORWARDED_FOR.'&lt;br/&gt;';
echo 'X_Real_IP'.$X_Real_IP.'&lt;br/&gt;';
?&gt;</code></pre>



<p>总之呢，现在你不用花昂贵的价钱买阿里云、腾讯云、天翼云、京东云服务器了，只需要花十分之一的价钱买FRP服务或者免费的FRP服务就可以穿透自己本地搭建的网站了。</p>



<p>在此，感谢<a href="https://hjyl.org/go/aHR0cHM6Ly9nb2ZycC5vcmc=" rel="nofollow" target="_blank">FRP</a>、<a href="https://hjyl.org/go/aHR0cHM6Ly9wcm9mYW4uY24=" rel="nofollow" target="_blank">老朱</a>、<a href="https://hjyl.org/go/aHR0cHM6Ly93d3cuYWxhaW5sYW0uY24vP3A9NDAz" rel="nofollow" target="_blank">alain lam</a>、<a href="https://hjyl.org/go/aHR0cHM6Ly9iYnMubG5tcC5jb20vdGhyZWFkLTI2Nzc3LTEtMi5odG1s" rel="nofollow" target="_blank">军哥LNMP</a>以及网络肯分享技术的大佬们！希望此文可以帮助曾经跟我一样糊涂的童鞋们。</p>
<div id="content-copyright"><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;font-size: 13px;">版权声明: </span><span style="font-size: 13px;">本文采用 <a href="https://hjyl.org/go/aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzMuMC8=" rel="nofollow" target="_blank">BY-NC-SA</a> 协议进行授权，如无注明均为原创，转载请注明转自 <a href="https://hjyl.org">皇家元林</a><br>本文链接: <a rel="bookmark" title="通过proxy_protocol协议实现真实IP" href="https://hjyl.org/proxy-protocol-realip/">通过proxy_protocol协议实现真实IP</a></span></div>]]></content:encoded>
					
					<wfw:commentRss>https://hjyl.org/proxy-protocol-realip/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			</item>
	</channel>
</rss>
