检查NAT类型

检查NAT类型

我读到有许多类型的 NAT 可用,例如对称 NAT、全锥 NAT 等。如果我位于 NAT 后面,有什么方法可以找出我当前正在处理的 NAT 类型吗?

我使用基本的 iptables 规则并添加一张网卡,将自己的 Ubuntu 桌面设置为 NAT 机器。我使用了以下规则:

$ iptables -t nat -A POSTROUTING --out-interface eth0 -j MASQUERADE
$ iptables -t filter -A FORWARD --in-interface eth1 -j ACCEPT

有什么方法可以查看我的 NAT 表吗?

答案1

您可以使用 pystun 检查 nat 类型。这里https://pypi.python.org/pypi/pystun

$ pystun
NAT Type: Full Cone
External IP: <your-ip-here>
External Port: 54320

答案2

您将需要运行一个连接到基于以下内容的服务器(不在 NAT 后面)的客户端:眩晕这将分析您的数据包并返回信息。此外,转动有点新,并且还返回信息来帮助识别 NAT 类型。

这里有一些可能有效的客户端、堆栈、软件包。您必须编译并找到要连接的服务器,或运行您自己的服务器。

答案3

您可以使用stunclient来自stuntman(http://www.stunprotocol.org):

$ stunclient stun.stunprotocol.org --mode behavior               
Binding test: success
Local address: 192.168.1.10:51593
Mapped address: 62.24.7.97:11610
Behavior test: success
Nat behavior: Address and Port Dependent Mapping

答案4

您可以运行iptables -S转储当前加载到内核过滤表中的所有规则的列表。您可以选择添加一个-t参数来指定要转储的特定表。

man iptables

   -S, --list-rules [chain]
          Print all rules in the selected chain.  If no chain is selected,  
          all chains  are  printed  like  iptables-save.Like every other  
          iptables command, it applies to the specified table (filter is  
          the default).

至于了解您作为客户端所使用的 NAT 类型,目前还没有现成的信息。您最多可以通过查看它对流量的影响来推断它的设置方式。

相关内容