Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Redis从外部连接_Amazon Web Services_Redis_Amazon Elasticache - Fatal编程技术网

Amazon web services AWS Redis从外部连接

Amazon web services AWS Redis从外部连接,amazon-web-services,redis,amazon-elasticache,Amazon Web Services,Redis,Amazon Elasticache,有没有办法从AWS网络外部连接托管在AWS上的Redis实例?我有一个基于Windows的EC2实例在AWS上运行,另一个是Redis缓存节点 我知道有人问过这个问题,但答案是在基于Linux的系统中,但我的是基于AWS的Windows服务器。我没有足够的分数对现有问题发表评论。以下是有关堆栈溢出的现有问题的链接: 从AWS外部访问Elasticache Redis的步骤 1) 在与elasticache redis相同的VPC中创建一个EC2实例,但不在公共子网中。确保已启用IP转发: cat

有没有办法从AWS网络外部连接托管在AWS上的Redis实例?我有一个基于Windows的EC2实例在AWS上运行,另一个是Redis缓存节点

我知道有人问过这个问题,但答案是在基于Linux的系统中,但我的是基于AWS的Windows服务器。我没有足够的分数对现有问题发表评论。以下是有关堆栈溢出的现有问题的链接:


从AWS外部访问Elasticache Redis的步骤

1) 在与elasticache redis相同的VPC中创建一个EC2实例,但不在公共子网中。确保已启用IP转发:

cat/proc/sys/net/ipv4/ip_转发

值ip_forward=1表示已启用转发

确保已启用伪装: iptables-tnat-A后路由-o eth0-j伪装

2) 在您想要转发的端口上创建具有入站连接的安全组(在本例中为6379)。为传入连接指定源CIDR块。确保出站规则允许在所需端口上连接到redis群集(默认redis端口为6379)

3) 添加IP表规则以允许将规则从EC2实例转发到elasticache iptables-tnat-A预路由-i eth0-ptcp-dport 11211-jdnat-to:6379


好的,我想出来了。您可以使用netsh命令在Windows服务器上设置TCP代理。以下是我获得帮助的链接:默认情况下,REDIS在6379端口上运行。因此,在AWS安全组上的入站端口中,我定义了另一个端口(6377),并在下面启动命令
netsh interface portproxy add v4tov4 listenadress=LOCAL\u IP\u ADDRESS listenport=6377 connectaddress=IP\u ADDRESS\u OF_AWS\u REDIS\u INSTANCE connectport=6379
,希望它能对其他人有所帮助。如果有帮助的话,请别忘了投票。无法将其作为答案发布,我的帐户中的分数很差。如果您认为这可以解决您自己的问题,您可以回答并将其标记为接受。我的帐户中没有足够的数字来回答我的问题并将其标记为接受。由堆栈溢出设计的溢出:(为什么需要重定向/代理端口?您是否也在运行本地redis节点?AWS上的redis仅可从EC2实例访问,这就是我需要从EC2到redis实例的端口重定向的原因。仅链接的答案不合适,因为它们往往没有持久值。这些是您要遵循的确切步骤。不希望您执行cop。)如果这是你的意思,请粘贴源代码。仅链接的答案是错误的答案——请阅读。现在,我将描述答案以避免负面帖子。你说什么?这听起来像个想法……你可以单击
编辑
来描述和增强你的帖子。