У меня есть домашняя сеть на два компьютера. Первый (c linux mint 17.2 64 bit) - это тот, который подключен к интернету через кабель, и от него же идет кабель ко второму (с windows).
Сетевые карточки определились, интернет есть и сеть тоже есть, но я не могу раздать интернет. На компьютере с windows написано "без доступа к Интернету", хотя на линуксовом пишет, что подключение есть.
Как мне раздать интернет на оба компьютера?
Ответ
копия моего ответа на идентичный по сути, но иной по форме вопрос:
если на компьютерах в подсети шлюзом по умолчанию указано использование того самого сервера, который вы настраиваете, то достаточно:
разрешить на этом сервере передачу пакетов между интерфейсами:
$ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
для того, чтобы эта настройка применялась и после перезагрузки, раскомментируйте (или добавьте, если нет) строку в /etc/sysctl.conf
net.ipv4.ip_forward=1
проконтролировать, что эти пакеты не искажаются и не блокируются netfilter-ом (см. вывод $ sudo iptables-save).
добавить правило netfiler-а для подмены адреса отправителя у пакетов, поступивших с «внутреннего» интерфейса, и уходящих на внешний интерфейс:
$ sudo iptables -t nat -A POSTROUTING -o внешний_интерфейс -j MASQUERADE
если же на этих компьютерах шлюзом по умолчанию служит другая машина (или вообще таковой не задан), то, в дополнение к разрешению передачи пакетов между интерфейсами, вам ещё придётся эти пакеты «искажать».
как минимум потребуется подмена адреса источника у пакетов, поступивших на «внешний» интерфейс, и адресованных компьютерам подсети, а также обратная подмена адреса назначения у «ответных» пакетов.
оба данных действия может выполнять директива netfilter-а под названием snat (source nat). пример её добавления с помощью программы iptables
$ sudo iptables -t nat -A POSTROUTING -o внутренний_интерфейс -j SNAT --to-source ip-адрес
где ip-адрес — адрес, закреплённый за «внутренним» интерфейсом.
для того, чтобы не вводить упомянутые выше одну или две команды (iptables ...) после каждой перезагрузки настраиваемого сервера, их можно добавить, например, в конец файла /etc/rc.local, но до строки exit 0, которая там обычно присутствует (если нет — просто добавляйте в конец файла). добавка sudo, конечно, в этом файле не нужна.
Комментариев нет:
Отправить комментарий