问题标签 [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.

0 投票
3 回答
7841 浏览

.net - UDP、NAT 和设置“连接”

我知道“连接”这个词在谈论 UDP 时并不合适,但是......

服务器(具有已知 IP 的服务器)如​​何通过 Internet 将其 UDP 数据包发送到位于 NAT 后面的客户端?

例如:假设客户端使用 TCP 上的一些消息连接并验证服务器。此时,服务器已准备好开始通过 UDP 将数据流式传输到客户端,但服务器如何知道将 UDP 数据包寻址到何处,以便它们可以通过任何 NAT 路由器到达客户端?

如果客户端通过 UDP 发送“我已准备好进行流式传输”消息,NAT 路由器是否会保持端口打开,以便服务器可以使用其 UDP 数据流进行响应?

还是我在这里偏离轨道?

0 投票
1 回答
25775 浏览

security - 如何在同一(但不断变化的)IP 地址上处理 2 个不同主机的 ssh 主机密钥验证?

我在 nat 防火墙后面有 2 台 ssh 服务器,位于每天更改其 wan IP 的位置。它们在给定时间始终位于相同的 wan IP 地址,但位于不同的端口。

我以这种方式连接到服务器 A:

和服务器 B:

因此,我为同一 IP 获得了 2 个不同的主机密钥,并且当 IP 更改时,甚至同一主机的不同 IP 也是如此。

我必须一遍又一遍地删除 known_hosts 文件中的另一个密钥或旧密钥(在 IP 更改的情况下)。

我正在犹豫是否要关闭密钥验证,因为这样会不太安全。但是一直收到警告也是不安全的(因为那时我一直忽略此类警告)。有更好的解决方案吗?

这与我的旧问题有关,但不一样:

具有 2 个 DNS 名称的服务器上的 SSH 登录警告消息

0 投票
2 回答
3555 浏览

networking - 网络:Virtual PC 2007 无法使用 NAT 访问主机

我无法使用计算机名(即 WINS)从我的来宾计算机访问我的主机。我可以使用它当时碰巧拥有的任何 IP 地址来访问它,但我需要一种一致的方式来访问它(即使我不在线)。

我有一个 Windows Server 2003 来宾虚拟机和一个 Vista 主机。我正在使用共享网络 (NAT)。我正在运行 Microsoft Virtual PC 2007 SP1。我已将我的 DNS 服务器设置为 192.168.131.254,其他一切都是 DHCP。任何帮助表示赞赏。

0 投票
1 回答
1026 浏览

firewall - 如何编写代码以与 Skype 类似的方式通过 NAT?

有谁知道,Skype 如何重定向 NAT 和防火墙?

0 投票
3 回答
6339 浏览

c# - 尝试在 C# 中使用 INATExternalIPAddressCallback 获取 NAT 的外部 IPAddress

如何使用 windows 库获取 NAT 的外部 IP 地址?我正在尝试查找有关 INATExternalIPAddressCallback 的任何信息,但仅在 C++ 中找到了一个使用不可用 C# 接口的示例。任何指导将不胜感激。

-卡尔

0 投票
1 回答
270 浏览

http - 基于网络<->桌面应用程序的数据编码协议

我计划开发一个远程桌面系统,包括:

  1. 可以抓取并显示屏幕的桌面应用程序
  2. 建立对等连接的服务器,为对等提供 STUN/TURN NAT 穿越技术
  3. 从浏览器运行并允许用户查看/控制远程桌面的基于 Web(Java 小程序或 Silverlight)的应用程序。

我的观点是 - 这个系统的最佳编码协议是什么?我推迟了二进制且不够的 VNC - 我需要更多的功能。NAT穿越。对于桌面和服务器,它必须使用 C++ 轻松开发,对于基于 Web 的应用程序,必须使用 Java/.NET 轻松开发。我正在考虑基于 HTTP(S) 的 XML,但我想知道如何有效地编码二进制数据,因为必须传输大量的二进制数据(捕获的桌面图像编码为 bmp/jpgs 等)。

有什么提示吗?

谢谢

0 投票
2 回答
88905 浏览

c# - 如何解决“连接尝试失败,因为连接方在一段时间后没有正确响应......”错误?

我正在用 C# 制作游戏,我想显示对手的进度(动作等)。所以我通过 TCP 协议将游戏中的事件发送给对手。

我已经在 localhost 上尝试过我的应用程序并且它可以工作,但是当我尝试使用我的外部地址通过 Internet 进行通信时,我在类 TcpInformer.Connect() 中收到以下错误:

连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应(我的外部IP地址):(端口)

我认为问题在于我落后于 NAT。但是我已经为 IP 10.0.0.1 上的端口 49731 设置了端口转发,没有任何改变。

我的第二个猜测是 Windows 防火墙,但即使我停止了防火墙,我的应用程序也没有开始工作。

我连接两台电脑的代码是:

有没有办法检查什么是错的?非常感谢您的帮助!

0 投票
1 回答
1341 浏览

sockets - 找到我的UDP套接字的“真实”端口的方法?

是否有任何免费服务可以让我向其发送 UDP 数据包,它会响应告诉我什么是我的“真实”UDP 端口?(我的应用程序在 NAT 后面)

这种服务可以让我用普通的 php 主机制作一个 p2p 协调服务器。

  • p2p 客户端将从该服务中知道他们的 UDP 端口
  • 然后他们将通过 HTTP(这是常规网络托管允许的)联系我的服务器并告诉它他们的端口(和 ip,通常提供给 cgi 脚本)
  • 我的服务器将为客户端提供其他客户端的 IP 地址和端口。
0 投票
4 回答
7064 浏览

sockets - 连接到私人IP

我想连接到路由器后面的系统。我知道路由器的公共地址以及系统的私有 IP(始终固定)。如何建立与私有 IP 的套接字连接?

0 投票
1 回答
1044 浏览

mysql - NAT 后的 MySQL 环复制

我正在考虑从使用手动复制的 Firebird 切换到 MySQL 及其集成复制解决方案。我有 4 个部门有零星的网络连接。每个人都必须有自己的数据库副本,并且必须能够更新数据库,所以我决定使用环复制方法(A->B,B->C,C->D,D->A)成为最好的(如果我错了,请纠正我!)。

然而,虽然其中 3 个部门与外界有公共连接,但一个在 NAT 后面,我没有任何机会转发端口 - 所以基本上,我只能连接到外界,但不能接受传入的连接。有没有办法设置具有此限制的环类型复制?