Общий доступ к интернету без Network Manager
Я следовал этим инструкциям для настройки общего интернет-соединения с iptables. В частности, я:
Добавлен сетевой интерфейс для моей второй сетевой карты в / etc / network / interfaces, например:
auto eth1
iface eth1 inet static
address 192.168.1.100
netmask 255.255.255.0
Введены именно эти правила:
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
Сохранил мои правила в файл и добавил его в /etc/rc.local
Включена переадресация IP путем изменения значения /proc/sys/net/ipv4/ip_forward на 1
Раскомментировал строку
net.ipv4.ip_forward=1
в /etc/sysctl.confRestarted
Теперь, когда я подключаю свой ноутбук к интерфейсу 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:)