Подключение Arduino к eth0 при выходе из wlan0 в интернет

У меня есть простой сервер Arduino HTTP, и я хочу просмотреть этот сервер из моей Ubuntu.

Если я назначаю Arduino IP 192.168.0.9 и подключаю HTTP-сервер Arduino к маршрутизатору (к любому из 4 портов Ethernet), все работает нормально, и я могу просматривать из своей Ubuntu
Ubuntu => wlan0 => router => Arduino HTTP-сервер
Я предполагаю, что все в порядке, потому что я назначил статический IP для Arduino, и поэтому он находится в той же подсети 192.168.0.0/24.

В моей записной книжке также есть eth0. Мне гораздо проще подключить Arduino к этому eth0, чем к маршрутизатору. От ifconfig, Я имею wlan 192.168.0.22 а также eth0 10.42.0.1

Моя цель - иметь:
Ubuntu => wlan0 => router => Интернет
Ubuntu => eth0 => HTTP-сервер Arduino

Для подключения Ubuntu к Arduino у меня есть:

  • назначил серверу Arduino HTTP IP-адрес в той же подсети eth0: 10.42.0.9
  • добавлен маршрут всех запросов к 10.42.0.9 через eth0
  • оставил маршрут все остальные запросы через WLAN

Но на данный момент это не работает.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
10.42.0.0       *               255.255.255.0   U     1      0        0 eth0
192.168.0.0     *               255.255.255.0   U     9      0        0 wlan0

Я не добавил 10.42.0.0... Ubuntu решил этот адрес для eth0

Можете ли вы объяснить, как правильно использовать eth0 и wlan?

$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1a:4b:8c:38:8e  
          inet addr:10.42.0.1  Bcast:10.42.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21a:4bff:fe8c:388e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:87 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:13231 (13.2 KB)
          Interrupt:22 Memory:e4600000-e4620000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2968 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2968 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:386864 (386.8 KB)  TX bytes:386864 (386.8 KB)

wlan0     Link encap:Ethernet  HWaddr 00:1a:73:e5:74:72  
          inet addr:192.168.0.22  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: 2a02:678:1be:1900:4947:bdbb:4d8b:4c2a/64 Scope:Global
          inet6 addr: 2a02:678:1be:1900:21a:73ff:fee5:7472/64 Scope:Global
          inet6 addr: fe80::21a:73ff:fee5:7472/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:42689 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20397 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:22666151 (22.6 MB)  TX bytes:3533575 (3.5 MB)

1 ответ

Я просто добавил строку в iptables:

sudo iptables -A OUTPUT -s 0.0.0.0/0 -d 10.42.0.9 -j ACCEPT

сейчас все хорошо!

Другие вопросы по тегам