我有一个带有IP AAA.AAA的用户A,这个用户需要在同一个服务器(Directadmin/CentOS/IP )上使用卷曲访问另一个用户B的目录(使用IP BBB.BBB)。此用户的这个目录被HTAccess锁定。通常,对于外部用户,我会通过将其IP地址添加到HTAccess文件中来打开HTAccess中的目录:
<Limit GET POST PUT PATCH DELETE>
order deny,allow
deny from all
allow from AAA.AAA.AAA.AAA
</Limit>
用户A的请求不通过(403)。我在用户B上做了一个test.php:
<?
echo json_encode($_SERVER, JSON_PRETTY_PRINT);
当cURLing从用户A发送到此文件时:
curl -XPOST https://example.com/test.php --dns-ipv4-addr AAA.AAA.AAA.AAA
我得到以下结果:
"SERVER_ADDR": “BBB.BBB.BBB.BBB”,
"REMOTE_ADDR": “BBB.BBB.BBB.BBB”,
因此,问题是:当来自同一服务器的cURLing时,用户B将自己的IP地址作为外部方报告(SERVER_ADDR和REMOTE_ADDR是相同的)。显然,我希望结果是:
"SERVER_ADDR": “BBB.BBB.BBB.BBB”,
"REMOTE_ADDR": “AAA.AAA.AAA.AAA”,
因此,我的IP限制将如预期的那样起作用。我还想补充一点,如果我将BBB.BBB添加到htaccess中,请求就会出现。另外,从我的计算机发出请求时,ip地址也是正确报告的。
发布于 2019-12-10 00:54:40
-dns-ipv4-addr
只是用于DNS请求的地址。它不是用于实际的请求。试一试--interface
:
curl -XPOST https://example.com/test.php --interface aa.aa.aa.aa
https://serverfault.com/questions/994999
复制