У меня есть Linux-сервер (Ubuntu 12) с двумя сетевыми адаптерами.
eth0 подключен к WAN (inet 10.0.2.15 маска 255.255.255.0)
eth1 подключен к локальной сети (inet 192.168.0.1 маска 255.255.255.0)
Я хочу, чтобы моя машина с Windows подключилась к Интернету. Win -> eth1 -> eth0 -> интернет
Добавлен к: / и т.д. / сеть / интерфейсы
auto eth1
iface eth1 inet static
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
Я добавил это в: /etc/dhcp/dhcpd.conf
authoritative;
option domain-name "mydomain";
option domain-name-servers 8.8.8.8, 8.8.4.4, 192.168.0.1;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.32 192.168.0.128 ;
option routers 192.168.0.1 ;
}
И в /etc/ufw/before.rules
# nat rules
*nat
:POSTROUTING ACCEPT [0:0]
# Forward all packes through eth0
-A POSTROUTING -s 10.0.2.0/24 -o eth0 -j MASQUERADE
# WARNING, do not remove COMMIT line. This breaks the loading
COMMIT
Я установил шлюз по умолчанию для моей машины с Windows на 192.168.0.1 и его IP-адрес на 192.168.0.40
Моя машина с Windows может пинговать мой eth1, но не интернет
Я думаю, что проблема заключается в правиле постмаршрутизации для ufw, но я не нахожу документации по его синтаксису (да, я просто копирую / вставляю учебник).
РЕДАКТИРОВАТЬ: Дополнительная информация:
выходной IP-адрес и выходной IP-маршрут http://puu.sh/2Yfd7.png
вывод iptables -L FORWARD http://i.stack.imgur.com/Mas98.png
извиняюсь за скриншоты.
Вам нужно где-то включить IP-переадресацию:
sudo sysctl -w net.ipv4.ip_forward=1
Одно из мест, где его можно было бы включить, находится в /etc/sysctl.conf.d
:
echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.conf.d/routing.conf
Кроме того, ваши правила iptables:
-A POSTROUTING -s 10.0.2.0/24 -o eth0 -j MASQUERADE
Включит NAT только для хостов в диапазоне 10.0.2.0/24, тогда как ваш DHCP-сервер будет доставлять IP-адреса в диапазоне 192.168.0.0/24. Вам нужно это изменить.