http 双向通信之端口映射

新产品开发了近2-3个月,给到客户做试用的时候,发现一个开发这么久从未考虑到的一个通信问题,mark下,下次开发同类产品的时候长点记性了.

产品由客户端与服务端两部分组成,客户端与服务端需要相互通信,协议采用http,两边各开一个端口,用于http请求响应.由于开发的时候都在同一个网段进行测试,所以没有发现任何产品上的问题.到了客户那边才发现客户环境是部署在不同网段的,这就带来了一系列端口映射的问题.

所谓端口映射可以理解为路由地址转换(nat),网段A的机子要访问网段B的机子,中间必须要有个路由装置C(路由器,linux服务器等),C将A机子发给B机子包的源地址和源端口替换成自己的地址和端口,然后由C跟B通信,B响应请求给C,C又将响应内容还给A. 这就达到了不同网段之间A,B之间的通信.

刚接触到这个问题的时候,心想这也不是产品上的问题,就让客户自己添加端口映射呗,因为不同网段避免不了的呀. 客户的反馈是 客户端向服务端的端口影射他们可以自己负责配置,但是服务端向客户端的映射不给配, 一是太麻烦,二是客户端不让开端口通信.  客户就是上帝,既然这么要求了,我们也没用办法只有改通信方式.之前是客户端与服务端双向通信,所以跨网段就需要两边都配置端口映射.  更改之后就变成单向通信,客户端只能向服务端发请求并接受服务端响应,服务端不能向客户端发请求.服务端如果要获取到客户端的信息,只能通过客户端不停轮询的向服务端去提供信息.这样就可以保证只有客户端需要配置端口映射,服务端不需要.

总结一下, http双向通信在同一网段内基本没有什么问题,但是在不同网段端口映射需要配置两遍比较麻烦(前提是客户介意),采用单向轮询端口映射配置会相对轻松点.

时间: 2024-10-31 06:41:56

http 双向通信之端口映射的相关文章

思科防火墙ASA端口映射

ASA 端口映射: 将DMZ区内的主机192.168.169.2映射到防火墙outside接口的interface地址: 设置需要映射的主机 object network server1 host 192.168.169.2 设置需要映射的端口 ciscoasa(config)# object service 3389 ciscoasa(config-service-object)# service tcp source eq 3389 ciscoasa(config)# object serv

思科 GNS3 配置 NAT 端口映射

NAT 端口映射 1. 实验拓扑 使用GNS3模拟器版本 0.8.5 2.实验需求 1实现R2路由器上的C2 能够通过NAT端口映射上公网 2实现R1路由器上的C1能够通过NAT端口映射上公网 3.实验配置: IP规划 C1 C2 R1(config)#int f0/0 R1(config-if)#ip add 12.0.0.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#int f R1(config-if)#int f0/1 R1(conf

微信公众号开发80端口映射之搭建ngrok服务器

说明 了解本文之前,最好先看前篇:<<微信公众号开发80端口映射解决方案>>.最近公司要搞微信公众号开发,需要解决80端口映射的问题,为了稳定可靠,只好自己搭建ngrok服务端.ngrok 是一个使用go语言编写的反向代理软件,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网穿透.ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放. 环境和条件 服务器Centos6.8_x64+windows10_x64 一台有公网ip的服务器 域名解析到服务

linux 外网ssh通过端口映射访问内网linxu

1,外网ssh通过端口映射访问内网linxu服务器

Hyper-V端口映射

有时候我们为了让局域网或外网用户直接远程访问或访问虚拟机里的服务,可以将实机端口直接映射到Hyper-V的虚拟机里面,省去很多麻烦. 下面是hyper-v共享IP端口映射一些常用命令共享IP端口映射一些常用命令一.查询端口映射情况netsh interface portproxy show v4tov4查询这个IP所有的端口映射.netsh interface portproxy show v4tov4|find "192.168.1.1" 二.增加一个端口映射netsh interf

思科路由器做端口映射&动态NAT

一,如图: 思科路由器做端口映射&动态NAT

iptables 实现端口映射的实际用途

[背景] 公司的测试环境只开通了22 80 443 端口,但是我有一台运维开发的机器,需要做一些开发工作,每次查看数据库中的信息,只能登入mysql 的cli命令行去操作mysql,虽然可以提高mysql的查询 更改等sql技能,但是对于开发来说实在是工作效率很低!一定要想一个办法从我的办公司本地连接到mysql 其实有两个方法: 1 更改数据器的端口号把3306 更改为 443,但是这样的代价是对于开发的程序就不是很方便且不规范 2 最后想到的是在我的开发机上做一个iptables端口映射,将

端口映射帮助文档

什么是端口映射? 端口映射又称端口转发,有的又称之为NAT.虚拟服务器.端口映射过程就如同您家在一个小区里B栋2410室,你朋友来找你,找到小区门口,不知道你住哪层哪号?就问守门的保安,保安很客气的告诉了他您家详细门牌号码,这样你朋友很轻松的找到了你家.这个过程就是外网访问内网通过端口映射的形象说法. 为什么要做端口映射? 目前的网络接入主要有2种: 1)ADSL连接猫再直接连接主机,这种情况主机是直接进行ADSL宽带拨号,连接上网通过运行CMD执行ipconfig /all命令可以查看到,PP

20150222 IO端口映射和IO内存映射(详解S3C24XX_GPIO驱动)

20150222 IO端口映射和IO内存映射(详解S3C24XX_GPIO驱动) 2015-02-22 李海沿 刚刚我们实现了linux系统内存的分配,读写,释放功能,下面,我们一鼓作气将IO端口映射及IO内存映射搞定,加油! (一)地址的概念 1)物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义.物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上(如显存.BIOS等).在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址