У меня есть два интерфейса eth0 и wlan0. С помощью wlan0 я подключен к точке доступа, которая имеет доступ к WAN, я получаю IP-адрес через DHCP, приходящий от точки доступа.
Второй интерфейс — eth0. Я настроил его с помощью сервера dhcp, выдающего разные IP-адреса подсети всем клиентам, подключенным в этой подсети через eth0.
Мое клиентское устройство (смартфон) правильно получает IP-адрес от моего DHCP-сервера eth0.
Однако теперь мне трудно подключить eth0 к wlan0.
Сеть eth0 — 192.168.42.0/24. Мой ПК с обеими сетевыми картами использует 192.168.42.1. Мой IP-адрес из wlan0, скажем, 172.22.3.193
Я уже включил переадресацию ipv4, но безуспешно. Мой телефон говорит, что нет подключения к интернету, но может подключиться к eth0. Кажется, мне нужно настроить определенные правила iptables, чтобы переадресация заработала, но я пробовал разные подходы, которые смог найти в сети, и ни один из них не работает.
Есть идеи, что делать дальше?
Редактировать: Моя команда route выдает мне следующее:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default www.go.wlantick 0.0.0.0 UG 600 0 0 wlan0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
172.22.0.0 0.0.0.0 255.255.0.0 U 600 0 0 wlan0
192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
решение1
Чтобы настроить Linux-сервер как NAT-маршрутизатор, вам необходимо:
включите IP-пересылку, как вы уже сделали (это только напоминание на будущее). Отредактируйте следующую строку в вашем
/etc/sysctl.conf
net.ipv4.ip_forward=1
включить NAT с помощью iptables. Пожалуйста, выполните следующую команду, где
wlan0
находится ваш внешний интерфейс.iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Напоминаем, что правила iptables сбрасываются при перезагрузке. Тогда вам придется автоматизировать перенастройку iptables.