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

根据上图,我们采用集群部署方式。请参考集群内网进行部署,在内网部署成功后,需要在连接外网与内网的服务器上配置端口映射。请按照以下步骤操作:
Linux端口映射服务器场景:
增加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
Windows端口映射服务器场景:
增加8181端口映射
-
以管理员身份运行cmd窗口
-
增加8181端口映射
netsh interface portproxy add v4tov4 listenport=8181 connectaddress=192.168.31.10 connectport=8181
增加8182端口映射
netsh interface portproxy add v4tov4 listenport=8182 connectaddress=192.168.31.10 connectport=8182
增加UDP端口映射
确保UDP端口号与渲染节点的启动管理器中配置的UDP端口区间一致,并一一对应。例如,若渲染服务管理器配置了10011-10020,则需要配置相应数量的UDP端口映射项:
netsh interface portproxy add v4tov4 listenport=10011-10020 listenaddress=0.0.0.0 connectport=10011-10020 connectaddress=192.168.1.10 protocol=udp