本文将介绍通过转发服务器访问VPC内私网资源。
火山引擎中很多资源为了保证其访问安全并没有提供外网访问,出于开发和调试的需要,特定情况下需要从本地通过互联网访问到相关资源并进行代码调试,本次实验主要用以解决此类问题。在开始实验前需要先进行如下准备工作:
预计部署时间:60分钟
级别:初级
相关产品:云服务器
受众:通用
添加VPC子网网段为白名单IP
在RDS 实例详情页面,点击连接管理,查看并复制RDS实例的内网地址
关于如何创建ECS实例,请参考此文档
登录刚刚创建完成的ECS实例后,通过ping命令对RDS MySQL的内网域名进行解析
ping mysqla1e17****.rds.ivolces.com PING mysqla1e17a89490b.rds.ivolces.com (192.168.0.127) 56(84) bytes of data. 64 bytes from 192.168.0.127 (192.168.0.127): icmp_seq=1 ttl=64 time=0.106 ms 64 bytes from 192.168.0.127 (192.168.0.127): icmp_seq=2 ttl=64 time=0.123 ms 64 bytes from 192.168.0.127 (192.168.0.127): icmp_seq=3 ttl=64 time=0.097 ms ^C --- mysqla1e17a89490b.rds.ivolces.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.097/0.108/0.123/0.016 ms [root@iv-ybo6ueptm58rx7ugcuxp ~]# ip a 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:4c:f5:e9 brd ff:ff:ff:ff:ff:ff inet 192.168.0.128/24 brd 192.168.0.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe4c:f5e9/64 scope link valid_lft forever preferred_lft forever
PREROUTING链中的--to-destination应为RDS MySQL解析到的IP地址
POSTROUTING中的--to-source应为转发机本身的私网IP地址
sysctl -w net.ipv4.ip_forward=1 iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination 192.168.0.127:3306 iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.127 --dport 3306 -j SNAT --to-source 192.168.0.128
注意需要设置转发机实例绑定的安全组,允许3306端口访问,并且源IP设置为0.0.0.0/0
$ telnet 180.184.48.156 3306 Trying 180.184.48.156... Connected to 180.184.48.156. Escape character is '^]'. J 8.0.26�(2g<cx9D*�! ]g\Mlf!\q.:zmysql_native_password^CConnection closed by foreign host.
如果您有其他问题,欢迎您联系火山引擎技术支持服务。