У меня Ubuntu 12.04.5 LTS установлен на виртуальной машине в OS X. Raspberry Pi подключен к тому же Mac через прямой Ethernet-провод. Mac подключен к Интернету через Wi-Fi.
Я хочу подключить RPI к Интернету, но ping <ip>
, wget <url>
не работают. Странно, apt-get
работает. В виртуальной машине Ubuntu все может подключаться к Интернету, без проблем.
Если я сделаю sudo tcpdump -a -v -i eth1
в машине с Ubuntu и ping 8.8.8.8
в RPI, я могу видеть, что трафик достигает Ubuntu, но RPI не получает ответа. Я вижу это в Ubuntu:
10.0.0.101 > google-public-dns-a.google.com: ICMP echo request, id 2156, seq 1, length 64
09:49:47.008804 IP (tos 0x0, ttl 64, id 22891, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.101 > google-public-dns-a.google.com: ICMP echo request, id 2156, seq 2, length 64
09:49:48.008648 IP (tos 0x0, ttl 64, id 22985, offset 0, flags [DF], proto ICMP (1), length 84)
...
Если я выполняю wget http://google.com
, curl
и т. Д. В RPI, я всегда вижу трафик, достигающий виртуальной машины Ubuntu, но никогда ничего не возвращаю в RPI .
Как я могу подключить RPI к Интернету?
Спасибо
Наконец я получил его работа. Я был смущен, потому что apt-get
работал, таким образом, я думал, что все было правильно настроено в VM Ubuntu, но это не было. Я получил решение из этого сообщения https://support.hidemyass.com/hc/en-us/articles/202721486-Using-Linux-Virtual-Machine-instead-of-a-router-for-VPN
В Вашем VM Ubuntu, предположив что eth0
: Интернет, eth1
: Ваш RPI, соединенный через кабель Ethernet
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables.sav
некомментарий эта строка в/etc/sysctl.conf
net.ipv4.ip_forward=1
причина, почему apt-get
работал во-первых, является все еще тайной мне.