linux系统
1.准备环境
云服务器 193.112.1.43(公)172.16.0.23(内)
云数据库pgsql 内网 172.16.32.98:5432 同一私有网络,默认内网互通
2.云服务器上做如下转发
iptables -t nat -A PREROUTING -d 172.16.0.23 -p tcp --dport 5432(服务器端口) -j DNAT --to-destination 172.16.32.98:5432 #目的地址转换
iptables -t nat -A POSTROUTING -d 172.16.32.98 -p tcp --dport 5432(数据库端口) -j SNAT --to-source 172.16.0.23 #源地址转换
echo 1 > /proc/sys/net/ipv4/ip_forward #开启转发(临时生效)
需修改sysctl.conf:net.ipv4.ip_forward = 1 执行sysctl -p马上生效 (永久生效)
3.测试通过云服务器的外网IP加端口可以正常访问。
windwos系统
1.准备环境
云服务器 193.112.224.83(公)172.16.32.87(内)
云数据库pgsql 内网 172.16.32.98:5432 同一私有网络,默认内网互通
2.云服务器上做如下转发
netsh interface portproxy add v4tov4 listenport=5432(服务器端口)connectaddress=172.16.32.98 connectport=5432(数据库端口)
相关参数说明:
- listenport 必需。指定要监听的端口
- listenaddress 需要监听的计算机ip,未指定则默认值为本机
- connectport 需要转发的端口,未指定则默认值为本地计算机上的listenport
- connectaddress 需要转发的计算机ip,未指定则默认值为本机
- protocol 指定的协议,暂仅支持TCP
查看规则是否存在
netsh interface portproxy show all
删除规则
netsh interface portproxy delete v4tov4 listenport=5432
3.测试通过云服务器的外网IP加端口可以正常访问。