
Использую два ноутбука и маршрутизатор; ОС Ubuntu.
Первый ноутбук подключен к маршрутизатору через кабель Ethernet со шлюзом на eth0 192.168.10.1 и подключен по беспроводной сети adhoc через wlan, IP 10.10.10.5.
настроено:
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Второй 10.10.10.4 подключен к 10.10.10.5 в беспроводном режиме ad hoc, также имеет шлюз 10.10.10.5 UG в маршруте -n.
sudo ip route add default via 10.10.10.5
Когда я пингую 8.8.8.8 с машины 10.10.10.4, это занимает бесконечное время и не показывает никаких результатов пинга.
Но если Ethernet отключен от первого ноутбука, то от 10.10.10.5 появляется сообщение: «Сеть назначения недоступна».
С 10.10.10.5 он доступен напрямую.
решение1
Что вы можете попробовать:
- Используйте tcpdump, чтобы увидеть, отправляются и принимаются ли пакеты. В Ubuntu установите и запустите tcpdump с "tcpdump -v icmp", чтобы увидеть пакеты ping, вы можете указать интерфейс с помощью опции -i. Это покажет вам, принимаются ли пакеты на eth0 и отправляются ли они на wlan0, возможно, вы даже можете сделать это на хосте 10.10.10.5, в зависимости от того, какое это устройство.
- Попробуйте выполнить команду «iptables -t nat -nvL», чтобы увидеть правила iptables, включая счетчики пакетов и байтов, чтобы вы могли увидеть, применяются ли правила на самом деле.
Оба варианта должны дать вам более четкое представление о том, куда приходят пакеты, а куда нет, что позволит вам сузить круг возможных источников проблемы.