Переадресация портов Mikrotik не работает

Вопрос или проблема

Я запускаю контейнер homeassistant на Mac Mini (фаерволы отключены). Я добавил переадресацию портов, но не могу подключиться к нему извне. Внутри все работает отлично. В логах я нашел следующую ошибку:

    dstnat: in:ether1 out:(unknown 0), src-mac XX:XX:XX:XX:XX:XX, proto TCP (SYN), 174.238.224.109:13647->XX.XXX.XX.XX1:8888, len 64

Вот моя конфигурация

/ip firewall nat print
Флаги: X - отключено, I - недействительно, D - динамический 
 0    ;;; defconf: masquerade
      chain=srcnat action=masquerade out-interface-list=WAN ipsec-policy=out,none 

 1    chain=dstnat action=dst-nat to-addresses=192.168.68.3 to-ports=80 protocol=tcp in-interface-list=WAN dst-port=9999 log=no log-prefix="" 

 2    chain=dstnat action=dst-nat to-addresses=192.168.68.3 to-ports=8081 protocol=tcp in-interface-list=WAN dst-port=8081 log=no log-prefix="" 

 3    chain=dstnat action=dst-nat to-addresses=192.168.68.3 to-ports=8082 protocol=tcp in-interface-list=WAN dst-port=8082 log=no log-prefix="" 

 4    chain=dstnat action=dst-nat to-addresses=192.168.68.3 to-ports=554 protocol=tcp in-interface-list=WAN dst-port=554 log=no log-prefix="" 

 5    chain=dstnat action=dst-nat to-addresses=192.168.68.5 to-ports=8123 protocol=tcp dst-port=8888 log=yes log-prefix="" 

 6    chain=srcnat action=masquerade out-interface=ether1 

 7    chain=srcnat action=masquerade out-interface=ether1 
/ip firewall filter print
Флаги: X - отключено, I - недействительно, D - динамический 
 0  D ;;; специальное фиктивное правило для отображения счетчиков fasttrack
      chain=forward action=passthrough 

 1    ;;; defconf: accept established,related,untracked
      chain=input action=accept connection-state=established,related,untracked 

 2    chain=input action=accept protocol=tcp in-interface-list=WAN dst-port=8888 

 3    ;;; defconf: drop invalid
      chain=input action=drop connection-state=invalid 

 4    ;;; defconf: accept ICMP
      chain=input action=accept protocol=icmp 

 5    ;;; defconf: accept to local loopback (для CAPsMAN)
      chain=input action=accept dst-address=127.0.0.1 

 6    ;;; defconf: drop all not coming from LAN
      chain=input action=drop in-interface-list=!LAN 

 7    ;;; defconf: accept in ipsec policy
      chain=forward action=accept ipsec-policy=in,ipsec 

 8    ;;; defconf: accept out ipsec policy
      chain=forward action=accept ipsec-policy=out,ipsec 

 9    ;;; defconf: fasttrack
      chain=forward action=fasttrack-connection connection-state=established,related 

10    ;;; defconf: accept established,related, untracked
      chain=forward action=accept connection-state=established,related,untracked 

11    ;;; defconf: drop invalid
      chain=forward action=drop connection-state=invalid 

Ответ или решение

Для решения проблемы с порт-форвардингом на MikroTik, когда внутренние подключение работают, но внешние подключения не проходят, давайте рассмотрим вашу конфигурацию и потенциальные причины.

Анализ конфигурации

  1. Правила NAT (dstnat):

    • Вы настраиваете правила для перенаправления внешних портов на IP-адреса внутренних устройств. Например, правило 5 настраивает перенаправление для порта 8888:
      chain=dstnat action=dst-nat to-addresses=192.168.68.5 to-ports=8123 protocol=tcp dst-port=8888
    • Убедитесь, что внутренний IP-адрес 192.168.68.5 действительно соответствует вашему контейнеру Home Assistant и что он работает на порту 8123.
  2. Правила фильтрации (filter):

    • Вы должны удостовериться, что ваше правило для порта 8888 действительно позволяет входящие соединения:
      chain=input action=accept protocol=tcp in-interface-list=WAN dst-port=8888
    • Это правило действительно, и оно должно пропускать трафик, поэтому оно выглядит корректным.
  3. Проверка интерфейса:

    • Проверьте, правильно ли настроена информация об интерфейсе ether1. Убедитесь, что это интерфейс, через который ваш MikroTik подключен к интернету.

Возможные решения

  1. Проверка IP-адресов:

    • Убедитесь, что ваш внешний IP-адрес, с которого вы пытаетесь подключиться, совпадает с адресом, на который вы перенаправляете трафик. Иногда провайдеры используют NAT или динамические адреса.
  2. Настройки маршрутизации:

    • Убедитесь, что у вас правильные настройки маршрутизации для трафика, который приходит на ваш MikroTik. Важно, чтобы трафик, приходящий на ether1, правильно обрабатывался.
  3. Логи:

    • Вы можете включить логирование для вашего правила в dstnat, добавив log=yes, чтобы лучше понять, обрабатывается ли трафик вашим устройством.
  4. Проверка Firewall:

    • Проверьте, чтобы в фильтрах не было других правил, которые могут блокировать трафик. Особенно обратите внимание на правило 6:
      chain=input action=drop in-interface-list=!LAN
    • Это правило будет блокировать всё, что не приходит из локальной сети. Убедитесь, что всё корректно настроено.
  5. Проверка с помощью других инструментов:

    • Попробуйте использовать telnet или nc (netcat), чтобы протестировать подключение к порту 8888 с внешнего IP-адреса. Это может помочь диагностировать проблему.
  6. Проверка наличия дополнительных устройствами:

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

Заключение

Если после проверки всех вышеперечисленных параметров проблема не решится, возможно, стоит обратиться в техническую поддержку MikroTik или попробовать обновить прошивку вашего устройства. Удачи в решении вашей проблемы с порт-форвардингом!

Оцените материал
Добавить комментарий

Капча загружается...