部署:端口映射相关问题

图片仅作示意用途

在很多现场部署环境里,网络管理是相对严格的,设备所在的子网如果需要和办公网所在的服务器通讯,需要通过专门的中间节点,一般还有严格的防火墙配置。此时,研发环境里,服务器与设备子网各节点间的点对点连接,需要通过跨内网和办公网的中间节点中转。中间节点处因为跨越两个物理网络,一般会编制端口映射(另一种实现是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)
# all modified is processing in a different zone
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
# omit some duplicated setting...
# below is reverse port mapping.
iptables -t nat -A PREROUTING -p tcp --dport 10010 -j DNAT --to-destination :8000
iptables -t nat -A PREROUTING -p tcp --dport 10011 -j DNAT --to-destination :8000
iptables -t nat -A PREROUTING -p tcp --dport 10012 -j DNAT --to-destination :8100
iptables -t nat -A PREROUTING -p tcp --dport 10013 -j DNAT --to-destination :8100
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,以此类推。

5.注意,出站规则是ip:port => ip2:port2. 入站规则只对端口进行转换:port2 =>port.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/150929.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法-二叉树的遍历

&#x1f31e; “少年没有乌托邦&#xff0c;心向远方自明朗&#xff01;” 二叉树 &#x1f388;1.二叉树的遍历&#x1f52d;1.1先序遍历&#x1f52d;1.2中序遍历&#x1f52d;1.3后序遍历&#x1f52d;1.4层次遍历&#x1f52d;1.5二叉树遍历的递归算法&#x1f4dd;1.5.1先…

测开(自动化测试selenium(WebDriver API))

一个简单的 Web自动化 演示 百度一下 迪丽热巴。这样的一个用户行为 &#xff0c;会涉及的那些操作呢&#xff1f;1、打开浏览器 2、在输入框里面输入关键词【迪丽热巴】PS&#xff1a;当然这里可能还涉及到一个操作&#xff0c;回车执行操作。或者说&#xff1a;点击 “百度一…

檢測項目簡體字

某些項目可能要求代碼中不允許使用簡體字 安裝stcheck檢查 yarn add stcheck --dev在項目根目錄創建 st.config.json 文件 {"patterns": ["./**/*.(ts|js|tsx|jsx|vue|html)","!**/node_modules/**","!.git/**"],"gitignore&q…

前端的简单介绍

前端核心的分析 CSS语法不够强大&#xff0c;比如无法嵌套书写&#xff0c;倒是模块化开发中需要书写很多重复的选择器 没有变量和合理的样式复用机制&#xff0c;使逻辑上相关的属性值必须字面量的心事重复的输出&#xff0c;导致难以维护 CSS预处理器,减少代码的笨重&#…

作用域的概念及作用?作用域的分类?.js 属于哪种作用域?

目录 前言 作用域的概念及作用 作用域的分类 1. 全局作用域 2. 局部作用域 JavaScript的作用域 作用域链 闭包 总结 前言 作用域是编程语言中的一个基本概念&#xff0c;它定义了变量和函数的可访问性。了解作用域对于编写可靠和高效的代码至关重要。在JavaScript中&a…

【uniapp】富文本

1、富文本显示&#xff0c;只显示文字&#xff0c;其余html不显示 功能&#xff1a;红框处其实是一个富文本&#xff0c;有图片之类的。但是现在不想根据html显示&#xff0c;只显示文字。 直接上代码 //内容显示 <view>{{item.fhArticleVo.content}}</view> // …

centos ubantu IP一直变化,远程连接不上问题

文章目录 一、为什么IP地址会变1.主机DHCP导致 二、解决IP地址变化1.centos2.ubantu 总结 虚拟机能连接为互联网,但下一次启动IP地址再发生变化,无法使用ssh远程连接 一、为什么IP地址会变 1.主机DHCP导致 虚拟机系统(ubantu,centos…)启动后会向本地申请IP地址租约,租聘的I…

Three.js 基础纹理贴图

本文简介 带尬猴&#xff0c;我嗨德育处主任 尽管 Three.js 文档已经比较详细了&#xff0c;但对于刚接触 Three.js 的工友来说&#xff0c;最麻烦的还是不懂如何组合。Three.js 的功能实在太多了&#xff0c;初学者很容易被大量的新概念冲晕。 本文主要讲解入门 Three.js 必…

mysql主从搭建(gtid)

搭建mysql主从使用三台主机&#xff0c;主机信息如下 ip端口主机名角色10.1.60.803306rabbitmq04salve10.1.60.1143306rabbitmq01slave10.1.60.1153306rabbitmq02master 为每台主机修改主机名并配置hosts hostnamectl set-hostname rabbitmq04 vi /etc/hosts 10.1.60.114 …

Leetcode—66.加一【简单】

2023每日刷题&#xff08;十一&#xff09; Leetcode—66.加一 实现代码1 /*** Note: The returned array must be malloced, assume caller calls free().*/ int* plusOne(int* digits, int digitsSize, int* returnSize){int num 0;int i 0;int arr[110] {0};// 进位标识…

业务架构、应用架构、技术架构、数据架构

架构规划的重要性 如果没有进行合理的架构规划&#xff0c;将会引发一系列的问题。为了避免这些问题的发生&#xff0c;企业需要进行业务架构、应用架构、技术架构和数据架构的全面规划和设计&#xff0c;以构建一个清晰、可持续发展的企业架构。 https://www.zhihu.com/que…

LVS集群-NAT模式

集群的概念&#xff1a; 集群&#xff1a;nginx四层和七层动静分离 集群标准意义上的概念&#xff1a;为解决特定问题将多个计算机组合起来形成一个单系统 集群的目的就是为了解决系统的性能瓶颈。 垂直扩展&#xff1a;向上扩展&#xff0c;增加单个机器的性能&#xff0c;…