如何使用iptables实现外网访问VPC内的Kafka

问题描述

客户想通过外网地址访问 VPC 内的 Kafka 地址进行程序调试,本文展示如果使用iptables转发请求实现外网访问。

解决方案

1.创建一台与 Kafka 同 VPC 的 ECS 服务器,放开安全组 9093 端口同时绑定公网 IP,具体操作参考 [ECS使用说明]

2.在部署 Kafka 的机器添加本地解析和修改配置文件如下:

  • 添加域名解析
# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.254 opendts
  • 修改server.properties的配置文件
listener.security.protocol.map=INTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
listeners=INTERNAL://192.168.1.254:9093

# 配置刚才的域名opendts
advertised.listeners=INTERNAL://opendts:9093
inter.broker.listener.name=INTERNAL

3.在 ECS 配置 iptables 转发规则,持久化需要将 iptables 规则写入到 /etc/rc.local 中。

(base) [root@rudonx ~] iptables -t nat -A PREROUTING -p tcp -m tcp --dport 9093 -j DNAT --to-destination 192.168.1.254:9093

(base) [root@rudonx ~] iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 9093 -j SNAT --to-source 192.168.1.13

(base) [root@rudonx ~] echo 1 > /proc/sys/net/ipv4/ip_forward

地址参数说明:
--192.168.1.254     --- 指定的是 Kafka 服务所在 ECS 的机器地址
--192.168.1.13      --- 指定的是配置 iptables 的 ECS 的本机的地址    

3.本地测试访问,使用ECS的公网IP地址

  • 本地/etc/hosts文件配置域名解析
180.184.70.* opendts

参数地址说明:
--180.184.70.*    --- 指定的是配置 iptables 的 ECS 的外网 EIP 地址。
  • 使用脚本生产数据示例如下: alt

此方案只能作为测试和调试方案,因为IP地址在一些特殊情况下会改变,所以不建议作生产使用

如果您有其他问题,欢迎您联系火山引擎技术支持服务

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

所属团队号:
相关资源
大模型解决方案白皮书:社交陪伴场景全流程落地指南
随着大模型技术持续突破,AI正加速重塑社交娱乐的形态与体验。其中,陪伴式聊天因用户黏性强、互动频次高,成为大模型商业化落地的关键赛道。随着模型能力跃升至万亿参数级,AI从工具属性正迈向情感交互生态,现象级产品的诞生条件逐渐成熟。 本白皮书聚焦AI陪伴聊天应用开发,面向“从何起步、如何落地”的新手困惑,系统拆解从需求定义到产品上线的关键流程。我们结合工程化实践路径,打造模块化知识体系与渐进式开发框架,帮助开发者在30天内完成从技术认知到产品原型的跃升,快速构建具备基础交互能力的Web或App应用,迈出大模型
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论