Общий доступ к интернету без Network Manager

Я следовал этим инструкциям для настройки общего интернет-соединения с iptables. В частности, я:

  1. Добавлен сетевой интерфейс для моей второй сетевой карты в / etc / network / interfaces, например:

    auto eth1

    iface eth1 inet static

    address 192.168.1.100

    netmask 255.255.255.0

  2. Введены именно эти правила:

    sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT

    sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

    sudo iptables -t nat -F POSTROUTING

    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

  3. Сохранил мои правила в файл и добавил его в /etc/rc.local

  4. Включена переадресация IP путем изменения значения /proc/sys/net/ipv4/ip_forward на 1

  5. Раскомментировал строку net.ipv4.ip_forward=1 в /etc/sysctl.conf

  6. Restarted

Теперь, когда я подключаю свой ноутбук к интерфейсу eth1, я получаю IP-адрес и могу пропинговать шлюз, но ничего не могу достичь, кроме этого. т.е. я не могу пинговать 8.8.8.8.

Если это уместно, другой мой интерфейс - это соединение PPPoE. Это выглядит так:

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up
provider dsl-provider

auto eth0
iface eth0 inet manual

Я подумал, что проблема в том, что dnsmasq не назначает серверы имен, поэтому я добавил dns-nameservers 8.8.8.8 8.8.8.4 под обоими интерфейсами в / etc / network / interfaces. Это не помогло, поэтому я попытался добавить серверы имен в /etc/resolv.conf. Там нет никакой помощи. Наконец, я попытался добавить их в /etc/dnsmasq.conf:

no-resolv
server=8.8.8.8
server=8.8.4.4

Это тоже не помогло. Однако я не уверен, имеет ли моя проблема какое-либо отношение к серверам имен или это просто еще один случай устаревшей, бесполезной документации.

В какой-то момент мне удалось заставить это работать с Network Manager, но мне не понравилось, как Network Manager не позволил мне назначить диапазон DHCP. Поэтому я бы хотел не возвращаться к этому.

1 ответ

Решение

Исправлена:

sudo iptables -A FORWARD -o ppp0 -i eth1 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Еще раз спасибо g0rdon в #openwrt:)

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