部署:端口映射相关问题

编程入门 行业动态 更新时间:2024-10-23 13:26:27

部署:<a href=https://www.elefans.com/category/jswz/34/1671268.html style=端口映射相关问题"/>

部署:端口映射相关问题

图片仅作示意用途

在很多现场部署环境里,网络管理是相对严格的,设备所在的子网如果需要和办公网所在的服务器通讯,需要通过专门的中间节点,一般还有严格的防火墙配置。此时,研发环境里,服务器与设备子网各节点间的点对点连接,需要通过跨内网和办公网的中间节点中转。中间节点处因为跨越两个物理网络,一般会编制端口映射(另一种实现是VPN)。

但是这样做仍然有问题:有些三方设备的端口是写死的。怎么处理呢?看下面的脚本代码:

#!/bin/bash
echo "start update nat mapping"
container_id=$(docker ps --filter "name=my_app_docker" --quiet)
pidofdocker=$(docker inspect --format '{{.State.Pid}}' $container_id)
nsenter -t $pidofdocker -n -i /bin/bash <<EOF
iptables -t nat -A OUTPUT -d 192.168.1.3 -p tcp --dport 8000 -j DNAT --to-destination 10.1.3.173:10010
iptables -t nat -A OUTPUT -d 192.168.1.4 -p tcp --dport 8000 -j DNAT --to-destination 10.1.3.173:10011
iptables -t nat -A OUTPUT -d 192.168.1.3 -p tcp --dport 8100 -j DNAT --to-destination 10.1.3.173:10012
iptables -t nat -A OUTPUT -d 192.168.1.4 -p tcp --dport 8100 -j DNAT --to-destination 10.1.3.173:10013
iptables -t nat -A OUTPUT -d 192.168.1.3 -p tcp --dport 8200 -j DNAT --to-destination 10.1.3.173:10014
iptables -t nat -A OUTPUT -d 192.168.1.4 -p tcp --dport 8200 -j DNAT --to-destination 10.1.3.173:10015
iptables -t nat -A OUTPUT -d 192.168.1.3 -p tcp --dport 8300 -j DNAT --to-destination 10.1.3.173:10016
iptables -t nat -A OUTPUT -d 192.168.1.4 -p tcp --dport 8300 -j DNAT --to-destination 10.1.3.173:10017
EOF
echo "nat mapping updated yet. docker pid=$pidofdocker docker id=$container_id"

注释一下:

1.如果你的程序直接运行在linux环境,那么直接配置iptables的那个映射关系即可。

2.如果程序在docker里面,需要执行额外的进入相应的网络配置空间的指令。

3.注意nsenter后进入的是一个独立的应用线程。

4.上面的指令,把应用程序发起的一个指向一个private network endpoint: 192.168.1.3:8000的tcp连接,直接转向广域网地址:10.1.3.173:10010,以此类推。

更多推荐

部署:端口映射相关问题

本文发布于:2023-12-03 17:04:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1656890.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:端口映射

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!