阿里云函数计算访问外网接口的时候出口ip详细说明
出口ip不固定
函数访问外网默认出口ip不是固定。随机的一个ip池。
/**
* 测试向外发送数据包
*/
public function test_senddata_to_out (){
$url="http://wziyi.net/test/getdata_from_fc.php";
echo file_get_contents($url);die;
}
外部接口代码:
echo "HTTP_CLIENT_IP:".$_SERVER['HTTP_CLIENT_IP'];
echo "<br/>";
echo "HTTP_X_FORWARDED_FOR:".$_SERVER['HTTP_X_FORWARDED_FOR'];
echo "<br/>";
echo "REMOTE_ADDR:".$_SERVER['REMOTE_ADDR'];
我们在通过浏览器访问test_senddata_to_out 的时候发现,打印出来的ip不固定
这种情况整好有利于调用的接口有ip限制频率的情况。因为ip会自动变化。但是不适应于那个ip白名单鉴权的接口。比如微信公众号获取accesstoken,让你填写白名单。
如何固定函数访问外网的出口ip?
在函数上开启固定ip,然后关闭允许函数访问公网能力,就可以了。
固定ip需要你创建一个弹性公网ip+nat都是收费的,会增加额外的费用。然后还要关闭函数访问公网能力,否则出口ip还是变化的。
这是你会发现这个出口ip就变成了,弹性公网ip了。顺便说一句如果不想固定ip,同时又要调用有ip鉴权的接口,那么就把这样的接口拿到有固定ip的ecs,如果是微信生态的在使用腾讯的云函数或者云托管,在里面获取accesstoken还是免鉴权的,然后在把这个以http形式暴露在公网(自己做好加密以及签名鉴权等)。这样你在阿里云函数计算调用就可以了哇。
版权声明:若无特殊注明,本文皆为《菜鸟站长》原创,转载请保留文章出处。
本文链接:阿里云函数计算访问外网接口的时候出口ip详细说明 - https://wlphp.com/?post=366