腾讯云有些TDSQL,如pgsql版的不能通过外网访问。此时提供2种方案,一种是nginx转发,一种是iptables。这看起来都需要额外的服务器成本,没办法。这里我们使用iptables,因为最方便。
假设:
服务器10.0.0.100
云数据库10.0.0.200:5432
1 购买和云数据库同子网,且配置安全组和云数据库相同的服务器和eip(按流量计费),最便宜的配置就行了,安全组放行5432端口。
2 在服务器添加iptables规则:
iptables -t nat -A PREROUTING -d 10.0.0.100 -p tcp --dport 5432 -j DNAT --to-destination 10.0.0.200:5432
iptables -t nat -A POSTROUTING -d 10.0.0.200 -p tcp --dport 5432 -j SNAT --to-source 10.0.0.100
3 ip转发打开
sed -i 's#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#g' /etc/sysctl.conf
sysctl -p
4 查看iptables,会发现dnat和snat都加了规则
iptables -t nat -vnL