场景:外网无法直接访问云渲染服务器,但可以通过同一局域网中的特定机器访问。为了实现访问,我们将使用端口映射机制。以下是网络拓扑图:

根据上图,我们采用集群部署方式。请参考集群内网进行部署,在内网部署成功后,需要在连接外网与内网的服务器上配置端口映射。请按照以下步骤操作:
增加8181端口映射
#!/usr/bin/bash
remote_ip=192.168.31.253
remote_port=8181
local_port=80
P=tcp
iptables -t nat -A PREROUTING -p $P --dport ${local_port} -j DNAT --to-destination ${remote_ip}:$remote_port
iptables -A FORWARD -p $P -d $remote_ip --dport $remote_port -j ACCEPT
iptables -t nat -A POSTROUTING -d $remote_ip -j MASQUERADE
增加8182端口映射
#!/usr/bin/bash
remote_ip=192.168.31.253
remote_port=8182
local_port=8182
P=tcp
iptables -t nat -A PREROUTING -p $P --dport ${local_port} -j DNAT --to-destination ${remote_ip}:$remote_port
iptables -A FORWARD -p $P -d $remote_ip --dport $remote_port -j ACCEPT
iptables -t nat -A POSTROUTING -d $remote_ip -j MASQUERADE
增加10011-10050端口映射
通过shell脚本批量映射端口:
#!/usr/bin/bash
#----------------render1------------#
remote_ip=192.168.31.253
for i in {10011..10030}; do
iptables -t nat -A PREROUTING -p udp --dport $i -j DNAT --to-destination ${remote_ip}:$i
iptables -A FORWARD -p udp -d ${remote_ip} --dport $i -j ACCEPT
iptables -t nat -A POSTROUTING -d ${remote_ip} -j MASQUERADE
done
#----------------render2------------#
remote_ip=192.168.31.11
for i in {10031..10050}; do
iptables -t nat -A PREROUTING -p udp --dport $i -j DNAT --to-destination ${remote_ip}:$i
iptables -A FORWARD -p udp -d ${remote_ip} --dport $i -j ACCEPT
iptables -t nat -A POSTROUTING -d ${remote_ip} -j MASQUERADE
done