问题标签 [nat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - UDP、NAT 和设置“连接”
我知道“连接”这个词在谈论 UDP 时并不合适,但是......
服务器(具有已知 IP 的服务器)如何通过 Internet 将其 UDP 数据包发送到位于 NAT 后面的客户端?
例如:假设客户端使用 TCP 上的一些消息连接并验证服务器。此时,服务器已准备好开始通过 UDP 将数据流式传输到客户端,但服务器如何知道将 UDP 数据包寻址到何处,以便它们可以通过任何 NAT 路由器到达客户端?
如果客户端通过 UDP 发送“我已准备好进行流式传输”消息,NAT 路由器是否会保持端口打开,以便服务器可以使用其 UDP 数据流进行响应?
还是我在这里偏离轨道?
security - 如何在同一(但不断变化的)IP 地址上处理 2 个不同主机的 ssh 主机密钥验证?
我在 nat 防火墙后面有 2 台 ssh 服务器,位于每天更改其 wan IP 的位置。它们在给定时间始终位于相同的 wan IP 地址,但位于不同的端口。
我以这种方式连接到服务器 A:
和服务器 B:
因此,我为同一 IP 获得了 2 个不同的主机密钥,并且当 IP 更改时,甚至同一主机的不同 IP 也是如此。
我必须一遍又一遍地删除 known_hosts 文件中的另一个密钥或旧密钥(在 IP 更改的情况下)。
我正在犹豫是否要关闭密钥验证,因为这样会不太安全。但是一直收到警告也是不安全的(因为那时我一直忽略此类警告)。有更好的解决方案吗?
这与我的旧问题有关,但不一样:
networking - 网络:Virtual PC 2007 无法使用 NAT 访问主机
我无法使用计算机名(即 WINS)从我的来宾计算机访问我的主机。我可以使用它当时碰巧拥有的任何 IP 地址来访问它,但我需要一种一致的方式来访问它(即使我不在线)。
我有一个 Windows Server 2003 来宾虚拟机和一个 Vista 主机。我正在使用共享网络 (NAT)。我正在运行 Microsoft Virtual PC 2007 SP1。我已将我的 DNS 服务器设置为 192.168.131.254,其他一切都是 DHCP。任何帮助表示赞赏。
firewall - 如何编写代码以与 Skype 类似的方式通过 NAT?
有谁知道,Skype 如何重定向 NAT 和防火墙?
c# - 尝试在 C# 中使用 INATExternalIPAddressCallback 获取 NAT 的外部 IPAddress
如何使用 windows 库获取 NAT 的外部 IP 地址?我正在尝试查找有关 INATExternalIPAddressCallback 的任何信息,但仅在 C++ 中找到了一个使用不可用 C# 接口的示例。任何指导将不胜感激。
-卡尔
http - 基于网络<->桌面应用程序的数据编码协议
我计划开发一个远程桌面系统,包括:
- 可以抓取并显示屏幕的桌面应用程序
- 建立对等连接的服务器,为对等提供 STUN/TURN NAT 穿越技术
- 从浏览器运行并允许用户查看/控制远程桌面的基于 Web(Java 小程序或 Silverlight)的应用程序。
我的观点是 - 这个系统的最佳编码协议是什么?我推迟了二进制且不够的 VNC - 我需要更多的功能。NAT穿越。对于桌面和服务器,它必须使用 C++ 轻松开发,对于基于 Web 的应用程序,必须使用 Java/.NET 轻松开发。我正在考虑基于 HTTP(S) 的 XML,但我想知道如何有效地编码二进制数据,因为必须传输大量的二进制数据(捕获的桌面图像编码为 bmp/jpgs 等)。
有什么提示吗?
谢谢
c# - 如何解决“连接尝试失败,因为连接方在一段时间后没有正确响应......”错误?
我正在用 C# 制作游戏,我想显示对手的进度(动作等)。所以我通过 TCP 协议将游戏中的事件发送给对手。
我已经在 localhost 上尝试过我的应用程序并且它可以工作,但是当我尝试使用我的外部地址通过 Internet 进行通信时,我在类 TcpInformer.Connect() 中收到以下错误:
连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应(我的外部IP地址):(端口)
我认为问题在于我落后于 NAT。但是我已经为 IP 10.0.0.1 上的端口 49731 设置了端口转发,没有任何改变。
我的第二个猜测是 Windows 防火墙,但即使我停止了防火墙,我的应用程序也没有开始工作。
我连接两台电脑的代码是:
有没有办法检查什么是错的?非常感谢您的帮助!
sockets - 找到我的UDP套接字的“真实”端口的方法?
是否有任何免费服务可以让我向其发送 UDP 数据包,它会响应告诉我什么是我的“真实”UDP 端口?(我的应用程序在 NAT 后面)
这种服务可以让我用普通的 php 主机制作一个 p2p 协调服务器。
- p2p 客户端将从该服务中知道他们的 UDP 端口
- 然后他们将通过 HTTP(这是常规网络托管允许的)联系我的服务器并告诉它他们的端口(和 ip,通常提供给 cgi 脚本)
- 我的服务器将为客户端提供其他客户端的 IP 地址和端口。
sockets - 连接到私人IP
我想连接到路由器后面的系统。我知道路由器的公共地址以及系统的私有 IP(始终固定)。如何建立与私有 IP 的套接字连接?
mysql - NAT 后的 MySQL 环复制
我正在考虑从使用手动复制的 Firebird 切换到 MySQL 及其集成复制解决方案。我有 4 个部门有零星的网络连接。每个人都必须有自己的数据库副本,并且必须能够更新数据库,所以我决定使用环复制方法(A->B,B->C,C->D,D->A)成为最好的(如果我错了,请纠正我!)。
然而,虽然其中 3 个部门与外界有公共连接,但一个在 NAT 后面,我没有任何机会转发端口 - 所以基本上,我只能连接到外界,但不能接受传入的连接。有没有办法设置具有此限制的环类型复制?