
如何在内网搭建TCP服务器并能被外网直接访问?TCP数据接口实现在不同局域网下的两台电脑网络通信?大家都知道一般我们编写的关于网络的代码是在局域网下测试。最近我尝试了下将自己写的聊天室在网络上(外地公网跨网环境上)进行通信测试,好比如qq。
1、内网 : 也就是内部私有的网络。也就是我们常说的局域网。而内网IP又分为3种:第一种10.0.0.0~10.255.255.255,第二种172.16.0.0~172.31.255.255,第三种192.168.0.0~192.168.255.255 其它的IP你就认为是外网IP好了。
我们的计算机自身就是一个局域网。我们编写的程序一般是在局域网下测试。
2、外网 :也是互联网,公网。如我常常通过输入网址,进入网站,这些使用的域名或公网Ip地址,都是外网。
那么可以直接通过外网IP连接,不需要任何网络映射和设置。这就是公网Ip服务器的好处,方便,直接可访问。

以聊天室为例。我们编写了服务器和客户机。当服务器已经在外网情况下。我们的客户机直接可以普通TCP数据连接通信。
都需要Server方的监听端口有被外网访问的权限,可以通过公网IP路由器端口映射或外网IP主机中转的方式实现,如果没有公网IP又没有自己的外网服务器做端口映射转发的话,可以直接使用nat123软件(能够自定义内外网地址关联绑定便捷外网访问内网方案)。
公网IP中转方案:通过一台有公网IP的服务器作为中转站。将局域网下的电脑转给这个中转的服务器,然后这个中转的服务器将收到的数据转给另外的一台电脑就好了。此方案需要有公网IP主机,和部署端口转发应用,还需要有一定的折腾技术能力,不适合普通大众用户。
内外网地址转换方案:借助nat123网络端口映射工具或类似内外网地址绑定软件,可以直接将本地内网Ip端口直接转换成自定义外网域名端口地址。这样在局域网外的访问端,就可以直接通过对应外网地址连接访问对应另一端内网的TCP或其他协议应用数据了。

当我们的服务器和客户机都是初始情况,seriver还在内网(局域网)client在另一个内网(或者外网)下我们需要先把服务地址转换成外网格式的地址。让外界可以通过外网ip地址(或域名地址网址)可以访问状态。比如外界访问了113.46.129.43(一个公网的网址ip地址)时,这时我们通过公网IP或域名方式让它直接连接到我们的内网服务器。
外网访问内网TCP通信的简单操作,使用nat123实现步骤参考:
TCP接口程序 应用服务端部署后,确保在局域网内可以正常连接访问。
在TCP服务端本机,或所在内网另台互通主机上,使用nat123客户端,添加映射设置,选择非网站类型(一般普通 TCP协议场景选择),填写好对应内网地址(本地TCP服务端的内网IP端口)和外网地址(外网域名端口),确认保存即生效。

在外地跨网的网络(不在TCP服务端内网时)下TCP访问端连接时,使用nat123映射设置好的外网域名地址和外网端口即可。
注意如果是使用自己域名通信访问的,同时需要在添加设置nat123映射时填写自己域名和在自己域名注册解析网上添加对应的域名解析指向让自己域名生效。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。