Ubuntu 12.04.5 LTS est installé sur une machine virtuelle sous OS X. Il existe un Raspberry Pi connecté au même Mac via un câble Ethernet direct. Le mac est connecté à internet via une connexion wifi.
Je souhaite connecter le RPI à Internet, mais ping <ip>
, wget <url>
ne fonctionne pas. Étrangement, apt-get
IS fonctionne. Dans la machine virtuelle Ubuntu, tout peut se connecter à Internet, pas de problème.
Si je fais un Sudo tcpdump -a -v -i eth1
sur la machine Ubuntu et ping 8.8.8.8
sur le RPI, je peux voir que le trafic atteint Ubuntu, mais le RPI n'obtient aucune réponse. Je vois ceci dans 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)
...
Si je fais un wget http://google.com
, curl
, etc. dans le RPI, je vois toujours du trafic atteindre la machine virtuelle Ubuntu, mais je ne renvoie jamais rien au RPI.
Comment connecter le RPI à Internet?
Merci
Finalement je l'ai fait fonctionner. J'étais confus parce que apt-get
fonctionnait. Je pensais donc que tout était correctement configuré dans la machine virtuelle Ubuntu, mais ce n'était pas le cas. J'ai eu la solution de ce post https://support.hidemyass.com/hc/en-us/articles/202721486-Using-Linux-Virtual-Machine-instead-of-a-router-for-VPN
Dans votre machine virtuelle Ubuntu, en supposant que eth0
: Internet, eth1
: votre RPI connecté via un câble 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
décommentez cette ligne dans /etc/sysctl.conf
net.ipv4.ip_forward=1
La raison pour laquelle apt-get
travaillait en premier lieu est encore un mystère pour moi.