Наконец-то получилось раздать интернет с первого компьютера с Ubuntu 9.04 на второй, на котором Win XP.
На втором в настройках сетевого подключения (указываются вручную) прописано:
IP-адрес: 192.168.0.2
Маска подсети: 255.255.255.0
Основной шлюз: 192.168.0.1
DNS-серверы: указываю провайдерские
На первом в Ubuntu подключение к провайдеру через USB у меня определяется как eth1, а сетевое подключение на второй комп — eth0.
eth1 настраиваю вручную (ввожу IP, маску сети, основной шлюз и DNS-сервера — их беру в Windows из сведений о подключении). Автоматическое подключение в Ubuntu у меня почему-то работает только до первой после установки перезагрузки (это уже не впервый раз, почему, пока не знаю).
Дальше настраиваю раздачу интернета (помогло это руководство):
sudo ifconfig eth0 192.168.0.1 netmask 255.255.255.0
sudo ifconfig eth0 up
Затем в файле /etc/sysctl.conf вписать строчку:
net.ipv4.ip_forward=1
(у меня она оказалась вписанной, нужно было её просто раскомментировать).
Команда, чтобы применить это правило до перезагрузки:
sudo sysctl -w net.ipv4.ip_forward="1"
(действительно, больше вводить её не понадобилось).
И последний шаг:
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
ifconfig и iptables приходится выполнять каждый раз после перезапуска Ubuntu. Вероятно, это можно автоматизировать, но пока не знаю как (настроить eth0 через графический интерфейс, как eth1, не получается — в этом случае интернет не работает). В общем, до окончательной ясности ещё далеко, но хорошо, что уже работает. Странно, почему то же не получалось раньше. Вроде бы то же самое проделывал, но не срабатывало.
Обн. 11.04.2010: Можно создать исполняемый файлик /home/andrey/razdacha-ineta из четырёх строчек:
#!/bin/sh
,
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
ifconfig eth0 up
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
и когда нужно раздать интернет, просто запускать его:
sudo ~/razdacha-ineta
http://kubuntu.ru/nat-iptables
не работает для pppoe
Огромное спасибо за статью! Все получилось=)))
а если не работает данный вариант, как можно проверить где ошибка ?
Макс, проверьте, не перепутали ли eth0 и eth1 — здесь описано для случая, когда подключение в интернет первого компьютера — это eth1.
нет не перерутал, учел это.
eth1 Link encap:Ethernet HWaddr 00:80:48:20:66:75
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::280:48ff:fe20:6675/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12001 errors:0 dropped:0 overruns:0 frame:0
TX packets:374 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:950206 (950.2 KB) TX bytes:41548 (41.5 KB)
Interrupt:16 Base address:0xe800
eth0 Link encap:Ethernet HWaddr 00:26:18:83:37:6f
inet addr:10.53.39.217 Bcast:10.53.39.255 Mask:255.255.252.0
inet6 addr: fe80::226:18ff:fe83:376f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:157687 errors:0 dropped:0 overruns:0 frame:0
TX packets:106352 errors:0 dropped:0 overruns:0 carrier:2
collisions:0 txqueuelen:1000
RX bytes:129436079 (129.4 MB) TX bytes:9599902 (9.5 MB)
Interrupt:29
еще после iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables v1.4.4: can’t initialize iptables table `nat’: Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
Permission denied — если команда не от суперпользователя; перед командой нужно писать «sudo»:
sudo iptables
,sudo ifconfig
.если пишу то после команды ниче не появляется
Да вроде и не должно ничего появляться.
читал что есть какой то фаервол, его как найти ? сеть кстати работает. виндовые папки вижу
Макс, ну как, получилось или ещё нет? Собственно, iptables — это и есть файрвол (точнее, его часть — приём указаний).
скажите, как ограничить скорость раздаваемого и-нета ? или поделить на равные части на нескольких.
Daemon, мне пока что не приходилось заниматься подобным, потому не знаю. Думаю, что при помощи iptables можно: http://ru.wikipedia.org/wiki/Iptables
ни в какую не запускается )все что мог перепробовал. знать бы где ошибка.
Андрей, нашел ошибку)
вот еще нужно добавить вот такую штуку: sudo apt-get install dnsmasq
для раздачи пакетов по сети
и вот такой штуки: sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Рад, что у вас наконец заработало.
dnsmask, если я правильно понимаю, позволит второму компьютеру получить ip-адрес и настроить список dns-серверов автоматически. У меня в этом необходимости нет — я указал на втором компьютере статический IP-адрес 192.168.0.2, а список неймсерверов — такой же, что и на первом, то есть тот, что предоставляет провайдер.
А ppp0 у меня вообще нет, есть только eth0 и eth1
«dnsmask, если я правильно понимаю, позволит второму компьютеру получить ip-адрес и настроить список dns-серверов автоматически. У меня в этом необходимости нет – я указал на втором компьютере статический IP-адрес 192.168.0.2….»
Я тоже указал! Но интернет на второй машине не появляется, пока в терминале не наберешь sudo dnsmasq.
P.S. У меня тоже PPtP, может все-таки с этим связано…?
(Ubuntu 10.10)
Спасибо, заработало)) только я не ставил dnsmsq, ввел статичние ip, мачку и днс от провайдера (п.с. Ubuntu 11.04 и Win7)
Спасибо. Настроил) Осуществил все графическими средствами на убунте 12.04. До этого не мог настроить потому что DNS провайдера не прописал на подключенном W7 ноуте.