Проверка типа NAT

Я прочитал, что есть много типов NAT, доступных как симметричный NAT, полноконусный NAT и т. Д. Если я за NAT, есть ли способ узнать тип NAT, за которым я сейчас работаю?

Я настраиваю свой собственный рабочий стол Ubuntu в качестве устройства NAT, используя основные правила iptables и добавляя еще одну карту NIC. Я использовал следующие правила:

  • Нет свободного места в буфере - ICMP
  • Невозможно подключить диск как чтение-запись
  • Маршрутизация беспроводной локальной сети через OpenVPN
  • Загрузка Fedora в режим спасения
  • Как найти полную историю файла?
  • Как защититься от взлома компьютера USB Live
  • $ iptables -t nat -A POSTROUTING --out-interface eth0 -j MASQUERADE $ iptables -t filter -A FORWARD --in-interface eth1 -j ACCEPT 

    Есть ли способ увидеть мою таблицу NAT?

  • Где «hostname» хранит имя хоста, которое я установил?
  • Происхождение записи / etc / termcap linux
  • Есть ли способ контролировать задержку перед выключением при разряженной батарее?
  • Какова самая высокопроизводительная файловая система Linux для хранения большого количества небольших файлов (HDD, а не SSD)?
  • Как findmnt может перечислить привязки привязок?
  • проблема с гнездом nmap
  • 3 Solutions collect form web for “Проверка типа NAT”

    Вам нужно будет запустить клиент, который подключается к серверу (который не находится за NAT) на основе STUN, который будет анализировать ваши пакеты и возвращать информацию. Кроме того, TURN немного новее и также возвращает информацию, помогающую идентифицировать тип NAT.

    Вот некоторые клиенты, стеки, программные пакеты, которые могут работать. Вам нужно будет скомпилировать и найти сервер для подключения к вашему собственному серверу или запустить его.

    • JSTUN
    • пошаговая клиент
    • PJSIP – это открытый SIP-стек с открытым исходным кодом, который имеет модуль для определения типа NAT
    • RakNet – это бесплатный, недорогой C ++ и C # игровой сетевой движок с плагинами NatTypeDetection

    Вы можете запустить 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 вы находитесь за клиентом, это не всегда доступная информация. В лучшем случае вы можете определить, как он, вероятно, настроен, глядя на то, что он делает с вашим трафиком.

    Вы можете использовать pystun для проверки типа nat. Здесь https://pypi.python.org/pypi/pystun

     $ pystun NAT Type: Full Cone External IP: <your-ip-here> External Port: 54320 
    Linux и Unix - лучшая ОС в мире.