2

У меня есть две локальные машины, подключенные друг к другу через проводной Ethernet, и одна из этих машин также подключена к сети Wi-Fi, которая обеспечивает доступ в Интернет.

Псевдографическое представление топологии выглядит следующим образом:

(PC2)----------(PC1)---------(Wifi Gateway)
    192.168.2.x      10.0.0.x

Конфигурация на ПК2:

iface eth0 inet static
address 192.168.2.2
network 192.168.2.0
netmask 255.255.255.0
gateway 192.168.2.1

... и конфигурация на ПК1:

iface eth0 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
gateway 192.168.2.1

На ПК1 я добавил маршрут по умолчанию для wlan0, так как иначе не мог получить доступ к Интернету:

route add default gw 10.0.0.1 wlan0

А также попытался настроить шлюз для сети 192.168.2.x, используя:

route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.1

Но я все еще не могу получить доступ к Интернету с ПК2.


редактировать

У меня нет доступа к шлюзу Wi-Fi.

2 ответа2

2

Интерфейс eth1 вашего ПК1 не должен иметь определенный шлюз - это то же самое, что и установка маршрута по умолчанию, поэтому при добавлении маршрута по умолчанию, равного 10.0.0.1, половина ваших пакетов будет идти в неправильном направлении.

Чтобы ПК1 выступал в качестве маршрутизатора для ПК2, необходимо включить пересылку пакетов. Это можно включить следующим образом:

sudo sysctl -w net.ipvt.ip_forward=1

И чтобы он пережил перезагрузку, измените /etc/sysctl.conf и добавьте найдите строку

#net.ipv4.ip_forward=1

и раскомментируйте его (или добавьте, если его нет, или измените его на 1 если он присутствует, но на 0)

Наконец, вам нужно изменить шлюз wifi на 10.0.0.1 и добавить статический маршрут, говоря, что шлюзом для сети 192.168.2.0/24 является IP-адрес ПК1 в диапазоне 10.0.0.0/24 (я предполагаю, что это, вероятно, 10.0 .0.2).

О, куда бы вы ни добавили

route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.1
  • Вы должны удалить его - сеть 192.168.2.0/24 не доступна через маршрутизатор Wi-Fi.
2

То, что вы хотите, это поделиться (используя маскировку) интернет-соединение ПК1.

Вы можете найти множество руководств в Интернете, чтобы сделать это, но вот резюме:

Прежде всего, очистите и удалите существующие правила брандмауэра:

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

Затем настройте iptables для трансляции NAT:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Чтобы убедиться, что таблицы ip восстанавливаются при загрузке, запустите iptables-save | tee /etc/iptables.sav и отредактируйте /etc/rc.local и добавьте следующие строки перед строкой "exit 0": iptables-restore < /etc/iptables.sav

Включить IP-пересылку:

echo 1 > /proc/sys/net/ipv4/ip_forward

В Ubuntu вы также должны отредактировать /etc/sysctl.conf и раскомментировать:

 #net.ipv4.ip_forward=1

На ПК2 вы также должны сделать:

 ip route add default via 192.168.2.1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .