Раздать интернет из Ubuntu в Windows

Наконец-то получилось раздать интернет с первого компьютера с 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