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, то он на исходящие
соединения не влияет.
Если проблема не решится, опишите ситуацию подробнее - приведите исходный текст программы,
скажите какое ПО стоит на шлюзе, и т.д.