草庐IT

c# - 将文件发送给 NAT 路由器后面的用户

我需要向路由器后面的用户发送文件。我知道如果他在他的路由器上启用端口转发,我可以通过tcp连接来做到这一点。我想避免这种情况,以使我的应用程序更易于用户使用。所以我一直在尝试做tcp穿孔,这几乎是不可能的。我设法做了udppuchholing。如果你已经知道udppunchholing是什么,那么你可以跳过这部分:所以我所做的是为了在恰好位于路由器后面的两个用户之间建立连接。用户1通过udp协议(protocol)与具有WANip地址的服务器对话。用户2也做同样的事情。好的,现在服务器知道每个用户的远程端点。服务器现在向用户2发送用户1的信息。服务器通知用户1用户2已收到该信息。用户2

tcp - 为 NAT 后面的客户端创建 Tcp 连接

针对Linux、Windows操作系统的此类任务存在哪些软件库?RFC中是否存在人们应该如何做的一些信息?我很感兴趣如何为我的C++项目创建功能,如在该软件中所示:https://secure.logmein.com/ru/products/hamachi/download.aspx 最佳答案 如果您想通过TURN中继服务器建立连接,则没有太大区别。唯一的区别是TCP和UDP创建连接的方式不同。如果要进行P2P连接,有一些很大的不同。如果您在同一个网络中(在同一个NAT后面):在UDP中,您向您的对等候选人发送一个stun绑定(bi

sockets - 64k 连接神话和 NAT 转换

我有很多(数以万计)已连接的移动设备,它们与服务器保持打开的连接。如果我对64k连接限制的理解是正确的,那么每个客户端IP到服务器单个端口的连接不能超过64k(由于TCP/IP协议(protocol))(因为客户端的临时端口范围).但大多数时候,您所处的环境中,这些设备通过使用NAT转换地址的网络提供商进行连接。(例如,智能手机不会有静态IP地址)。因此在这种情况下,我的服务器将看到相同的IP地址,并且无法保证源端口在2个不同的客户端中不会相同。我的问题可能很愚蠢,但确实存在:如果我们将连接视为这种情况下的5元组(协议(protocol)、服务器端口、服务器ip、客户端ip、客户端端口

c# - NAT 在其表中保留 TCP 转换字段多长时间?

我想知道我是否可以在机器A上创建一个TCP客户端并将其连接到远程主机(S),然后从客户端关闭连接并在同一台机器(机器A)上创建一个TCP监听器用于客户端的相同端口(例如端口1234)。现在有A的端点的服务器,将它发送到另一台机器(B),B可以连接到A的公共(public)端点(比如端口4567)上的A,A网络上的NAT将SYN重定向到A,因为它仍然有转换(4567->1234)在它的表中。我想知道从断开第一次连接到连接节点B之间有多少时间。 最佳答案 我同意PeterDuniho的评论。但我用通常的NAT行为来回答你的问题。你想做的

networking - UDP 打洞 : one Symmitric and another non-symmetric NAT

我正在尝试使用打洞实现P2P。这是流程:两个Peers(P1,P2)将向服务器(S)发送1个数据包。Server(S)回复都告诉别人IP:PORTP1和P2接收此UDP数据包,知道对方的外部/公共(public)ip:port。P1,P2开始向其他对等端公共(public)IP:PORT发送数据包。一旦对等点收到其他对等点的数据包,我就认为这个洞已经打好了,并将这个套接字提供给我的应用程序。我在不同的路由器上进行了测试,结果如下:当P1和P2都在非对称NAT(完整/受限锥形)上时,我没有遇到任何问题。当P1=非对称且P2=对称时:-----router-1(对称NAT)+router-

c# - 当两个客户端都在 NAT 后面时如何创建 P2P 连接

是否可以在两个位于不同NAT之后的客户端之间建立直接连接?当然,我意识到在某种程度上,具有公共(public)IP的服务器将是必不可少的,但我不希望它成为代理。看看以下场景:我不想与配置网络设备有任何关系。我只想用代码来做。我不希望服务器参与文件传输过程(出于性能原因)我们有:客户端A、客户端B和服务器S,它看起来有点像这样:A--[Router1]--S--[Router2]--BA连接到S并授权B连接到S并授权A想给B发一个文件A向S请求与B的连接S[这很神奇吗]并且A现在与B有联系A开始发送文件S下降(或至少文件传输绕过)A和B之间仍然存在联系A继续发送文件给B我的问题:这可能吗

networking - 如何在不需要任何重定向配置的情况下使 TCP 服务器在路由器 (NAT) 后面工作

场景如下。我有两台机器A和B:A:客户端(在NAT后面)B:服务器(NAT后)我希望B能够监听任何给定端口,以便A可以通过该特定TCP端口向B发送数据包并接收任何响应。如果两台机器都不在NAT后面,则过程非常简单。然而,我如何让它工作,以便即使B在路由器后面也能工作,而无需他去更改路由器配置启用一些端口转发等...例如,在用户无需进行任何配置的情况下,像Torrent客户端这样的点对点程序如何工作? 最佳答案 回答点对点程序的例子,一般来说:有一种技术叫做UniversalPlugandPlayNAT路由器可以使用哪些NAT路由器允

ENSP网络综合实验(WALN+隧道+NAT)

实验拓扑 https://wwa.lanzoub.com/ivTyH0w8vz6d 设备接入、汇聚交换机(S3700、S5700)、路由器(AR3200)为例。接入层:用户角色包括员工(接入方式包括有线和无线)和访客(仅能通过无线接入),办公WIFI密码认证,访客WIFI无认证。汇聚层:交换机链路聚合的方式,实现链路冗余。LSW1作为无线网络、AP管理网络的DHCP三层服务器,集中部署的方案。核心层:有线接入网络的DHCP中继服务器。设置访问流量静态路由,实现不同角色的用户的网络访问权限。员工家里主机PC1通过mac地址绑定,获取特定的IP地址访问公网。默认通过PPPOE、NAT实现隧道、访问

VM虚拟机卡顿、闪退一系列问题与卸载重装问题(详细版)

最新发现好多虚拟机有闪退现象,对此我给出一系列解决方案,仅供参考一.软件问题1.虚拟机闪退首先,如果是VMwareWorkstationPro也就是软件本身闪退问题,即还没有运行或打开系统时就已经闪退,说明软件有问题,可以先试试把环境变量删除,以及关闭防火墙 如果没有奏效,大概率为电脑兼容问题,解决方案为右击VMware软件,在属性里面找到兼容性,勾选以兼容模式运行这个程序,选Windows7,接着点击以管理员身份运行 如果还是有问题,在桌面右击计算机,打开管理,进入服务和应用程序服务,或者直接win+R,运行窗口输入services.msc,找到vmware服务"VMwareAuthoriz

Oracle VM VirtualBox的ubuntu系统:主机与虚拟机之间不能复制粘贴的解决办法

背景:问题:使用OracleVMVirtualBox虚拟机管理软件,安装了一个ubuntu系统,启动ubuntu虚拟机,无法和宿主机之间进行复制粘贴和拖拽的基操十分蛋疼!环境:主机win10,虚拟机Ubuntu22.04LTS\n\l。明明在“设置-共享粘贴板-选择了双向”却不生效!于是在网上查了很多资料,基本都是同一种方法(我按照这种方法设置无效,我简单说一下,说不定你们有效):先将虚拟机系统关机,然后打开OracleVMVirtualBox管理器:第一步:常规高级里共享粘贴板已经选中双向第二步:虚拟机设置-存储-控制器SATA-勾选"使用主机输入输出(I/O)缓存"第三步:存储-控制器SA