问题标签 [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 投票
2 回答
2133 浏览

tcp - NAT 端口转发的最佳选择是什么?

我想让用户可以轻松地将其 NAT 上的端口转发到我的 C++ 应用程序的本地计算机。我想让这项工作在 OSX 和 Windows 上运行。Linux 将是一个很大的好处,但 Linux 用户可能更愿意手动转发端口,所以这不是一个问题。LGPL 类型代码是可以的,但我不能使用任何直接 GPL 的东西。

我很想听听任何人在这方面的任何想法或经验,但我想到了一些具体的问题:

  • 是否有公认的 UPNP 最佳库?MiniUPNP客户端看起来可以工作,但还有其他东西吗?
  • 卓悦呢?我可以将它用于 OSX 计算机吗?
  • 所有大型的 bittorrent 应用程序都必须处理这个问题,那么是否有关于他们如何做到这一点的现有调查?Skype 呢?
0 投票
1 回答
918 浏览

linux - SNMP 有效负载地址转换

iptables在 linux 下使用 NAT SNMP 流量。一些 SNMP 数据包具有 VARBIND,其中包含生成它们的设备的(真实)IP 地址。这会混淆标准管理工具,这些工具需要查看 VARBIND 中的 NAT 化地址。因此,除了标题中的地址之外,我还需要翻译有效载荷中的地址。

标准工具是nf_nat_snmp_basic.ko内核模块,但原始版本只翻译地址的第一个八位字节,最新版本完全破坏了数据包。这显然是网络上的“常识”(www.netfilter.org),我已经在自己的设备上验证了它。

在我深入内核之前,有没有其他人研究过这个问题并提出了合适的解决方案?现在,只翻译那些 OID 将其类型指定为 IP 地址的 VARBIND 就足够了。换句话说,我不需要翻译嵌入在字符串数据中的地址,这要困难得多。

感谢您的建议!

0 投票
2 回答
2708 浏览

windows - VMware 和 iptables

在 Windows 上使用 VMware 来托管运行 iptables 的虚拟 linux 机器是否有问题?我有一个似乎可以在物理硬件上运行但在 VMware 下不稳定的配置。

我正在使用 VMware 在 Windows 2003 Server 主机上运行虚拟 linux 2.6.24 机器。linux 应用程序本质上是一个运行iptables. 表中的规则nat包括:

我看到使用 10.10.1.33:80 的传入数据包tcpdump,第一个LOG生成消息,但是DNAT第二个或第二个都没有LOG显示在其数据包计数器上注册的数据包,第二个LOG不生成任何消息,并且tcpdump不显示数据包192.168.0.33。

适配器位于eth010.10.0.0/16 网络上,默认网关为 10.10.1.1;它的辅助地址为 10.10.1.33/32。 /proc/sys/net/ipv4/config/eth0/forwarding设置为 1。

VMware 是罪魁祸首,还是我遗漏了什么?谢谢!


更新:我们简化了测试环境。根本没有 NAT 规则,只是在 Win2k3 服务器主机下运行的 linux VM。测试步骤:

  1. VM 桥接到主机 NIC。虚拟机和主机在同一个子网中,具有与上述相同的默认网关。

  2. VM 与其子网内外的设备进行通信:ICMP、TCP、UDP。通信是双向的:由哪个设备发起并不重要。

  3. 工程师在检查系统时重启了默认网关。

  4. VM 现在与其子网上的设备通信。从第 2 步开始通过网关与同一设备进行通信的任何尝试都无法将数据包放在网络上。 VM 上 eth0 上的 tcpdump 显示没有响应的传出数据包;主机上的 WireShark 在物理网卡上没有显示任何内容。

  5. 停止和重新启动 VM 不会改变其行为。停止 VM 并将其替换为具有适当 IP 地址等的不同VM不会改变行为。

  6. Win2k3 主机在其子网内外继续正常通信。

我只能由此得出结论,虚拟机和主机之间“发生了一些事情”:在 VMware 驱动程序中,或者在主机的网络堆栈中。我又要去上网了……很难想象我们是第一个观察到这一点的人。

他们来时更新。感谢您的想法和讨论。

0 投票
2 回答
7998 浏览

python - Python UPnP/IGD 客户端实现?

我正在寻找 Python 中UPnP客户端的开源实现,更具体地说,是它的Internet 网关设备(IGD) 部分。

目前,我只能在PyMediaServerPyMedSBRisaCoherence等项目中找到 UPnP 媒体服务器实现。

我确信我可以使用这些代码库作为开始,但媒体服务器部分会引入不必要的复杂性。

那么你能推荐一个客户端 UPnP(希望是 IGD)Python 库吗?另一种方法是将调用分派给MiniUPnP等 C 库,但我更喜欢纯 Python 实现。

更新:关于 SSDP 和 UPnP 的有趣的相关讨论可在StackOverflow上找到。

0 投票
3 回答
4966 浏览

java - 如何发现给定接口后面的 NAT 类型

我想发现给定网络接口后面的 NAT 类型(FullCone、Restricted Cone、Port Restricted cone、Symmetric)。

我测试了不同的工具(http://freshmeat.net/projects/jstun/http://code.google.com/p/boogu/),但它们针对同一界面报告了不同的结果。

我正在寻找 Python (或其他语言,第二选择是 Java,如果没有其他可用的话)的明确答案。

0 投票
6 回答
33353 浏览

vmware - VMWare - 虚拟操作系统静态 IP 地址

让虚拟操作系统在 VMWware 中具有静态 IP 地址的最佳方法是什么。我想保持 IP 地址静态,因为它是一个虚拟服务器。

0 投票
1 回答
1734 浏览

apache2 - 在 NAT 防火墙后面时,是否可以在 Apache 日志文件中获取远程 IP 地址?

我正在使用 Apache2,Ubuntu 8.10。目前 Apache 正在将网关的 IP 记录为主机 ip,我该怎么做才能让它记录远程客户端的 IP 地址?这是否可能,或者 NAT 路由器是否会永远“丢失”它?

更新:它实际上看起来只是在记录网关的 IP 以获取来自网络内的地址,外部请求似乎是用正确的 IP 记录的......看图。

0 投票
3 回答
2151 浏览

sockets - 有没有开源的跨平台 NAT 穿通?

有没有开源的跨平台 NAT 穿通?

0 投票
2 回答
1855 浏览

file - Wippien 是否使用直接连接?

我开始使用 Wippien 在 2 个远程 Windows 服务器之间建立 p2p 连接。我使用 2 个不同的 GMail 帐户。

Wippien 使用“Mediators”来启动连接。但海量数据传输真的是直接的,还是通过中介路由的?

我还发现这篇文章似乎相关:P2P 应用程序中的直接 TCP/IP 连接

如何确定连接是否直接以及如何确定速度?

传输文件时连接似乎很慢,但这不是衡量的,只是我的第一印象。

0 投票
6 回答
8323 浏览

linux - Linux 下 IPv6 流量的透明代理

在维护网络时,运行透明代理通常是一种权宜之计。透明代理是指“劫持”传出连接并通过本地服务运行它们的代理。具体来说,我运行一个配置了 squid 的 linux 防火墙,以便端口 80 上的所有 tcp/ip 连接都由 squid 代理。

这是使用 iptables 'nat' 表,使用 IPv4 实现的。

但是 IPv6 的 iptables 没有“nat”表,所以我不能使用相同的实现。我可以使用什么技术来透明地代理 IPv6 连接的流量?