У меня есть внутренняя машина, скажем X (не подключенная к Интернету), которая подключена к машине, скажем Y, которая подключена к Интернету.
Как мне настроить машины для маршрутизации с внутренней машины X в Интернет через Y?
Маршрутизатор по умолчанию Y пользователи должны знать, что сеть Икс использование доступно через Y.
так что если Икс находится по адресу 192.168.1.12/24, Y находится на 192.168.1.1/24 и 192.168.0.101/24. Затем на маршрутизаторе (скажем, 192.168.0.1/24, подключенном к Интернету), который использует соединение с Y вам нужно добавить:
ip route add 192.168.1.0/24 via 192.168.0.101 scope global
и соответствующие правила для межсетевого экрана, чтобы пропускать трафик.
Другое решение - использовать SNAT в Y:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(предполагая, что сеть между Y и Yмаршрутизатор по умолчанию подключен к eth0)
В обоих случаях вам нужно добавить пересылку пакетов в Y:
echo 1 > /proc/sys/net/ipv4/ip_forward echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
Установите шлюз на машине X как Y. Затем убедитесь, что хост Y разрешает пересылку пакетов. В linux с iptables для этого потребуется примерно следующее:
редактировать /etc/sysctl.conf
чтобы разрешить пересылку, убедитесь net.ipv4.ip_forward
был установлен на 1
.
После этого примените правило в iptables, чтобы разрешить трафик.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(если eth0 - правильное устройство)
Попробуй это.
sysctl -w net.ipv4.ip_forward = 1
На компьютере X установите маршрут по умолчанию Y.
Если это сработает, установите его навсегда, добавив
net.ipv4.ip_forward = 1
в: /etc/sysctl.conf
и перезапуск.