1

Тема: Ethernet и проброс портов за NAT

Здравствуйте,

посоветуйте, пожалуйста, в чем может быть причина?

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

При этом к другим устройствам в своей локальной сети подключаюсь без проблем.
Перенапраляю по портам на нужный локальный IP.
Отключил Fierwall.

Вероятно, это ограничение программы или модуля?

2

Re: Ethernet и проброс портов за NAT

kostyapo пишет:

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

Никаких подобных ограничений нет, да и в принципе быть не должно - ведь смысл "проброса порта" в том числе и заключается в том, что никакими специальными функциями сервер, на который "пробрасывают" соединение не должен обладать. Для него "проброшенное" соединение не должно ничем отличаться от соединения с машиной из одной с ним подсети.
Только что попробовал на следующей конфигурации:

        ---------------------------------
       |       Router (Win2k Server,     |
       | NAT via Routing & Remote Access)|
       |--------------- -----------------
       |  Public IFace | Private IFace   |
       |   172.20.3.1  |  192.168.1.1    |
        ---------------------------------
              |               |
        ----------       ----------------
       |172.20.3.2|     | 192.168.1.177  |
       |  Клиент  |     |   Freeduino    |
       | Firefox  |     |WebServer Sample|
        ----------       ----------------

Все работает без проблем. NAT сделан встроенными средствами Windows 2000,
в настройках прописан проброс 80 порта с внешнего интерфейса 172.20.3.1
на 80 порт Freeduino (192.168.1.177)

Кроме предложения заново все перепроверить пока в моем мозгу возникает только одно соображение:
Может то ПО, с помощью которого Вы делаете "проброс" порта не подменяет
IP адрес клиента на свой? Если это так, то при инициализации Ethernet библиотеки нужно указывать маску сети и шлюз. Примерно таким образом (на примере WebServer):

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 177 };
byte gw[] = { 192, 168, 1, 1 };
byte mask[] = { 255, 255, 255, 0 };

Server server(80);   //Создаем сервер, слушающий 80й порт (80 - это порт HTTP)

void setup()
{
  Ethernet.begin(mac, ip, gw, mask);
  server.begin();
}
kostyapo пишет:

Отключил Fierwall.

Если речь идет об обычном Firewall из состава Windows XP/Vista, то он на исходящие
соединения не влияет.
Если проблема не решится, опишите ситуацию подробнее - приведите исходный текст программы,
скажите какое ПО стоит на шлюзе, и т.д.

3

Re: Ethernet и проброс портов за NAT

Спасибо Вам за ответ!

Всё заработало.

Я забыл прописать шлюз :)   и 88 порт почему то моё устройство wrt54gl фильтрует, по другим портам всё прекрасно работает!

Еще раз спасибо.