Настройте общий доступ к соединению с определенным IP-адресом

11

Правка - более краткая версия вопроса:

При использовании общего доступа к соединению я хочу, чтобы менеджер сети использовал подсеть 192.168.254 вместо подсети 10.42.0. Это возможно?

Фон :

Мне нужно поделиться своим беспроводным интернет-соединением (на ноутбуке с Ubuntu) с RasPi, подключенным к ноутбуку через Ethernet.

Все работает нормально, настроив eth0 как «Общий для других компьютеров» (задокументировано во многих местах, например, здесь ).

Используя эту настройку, мой IP-адрес при подключении к RasPi есть 10.42.0.1. RasPi выбирает другой адрес в этой подсети. Все отлично работает!

Из-за того, как настроен RasPi (для работы с несколькими другими системами), я хочу eth0использовать 192.168.254.1. Если я настрою eth0 для использования вручную 192.168.254.1: Ручная настройка eth0

RasPi подключается к моему ноутбуку, и я могу подключиться к sshнему. Однако, несмотря на то, что я все еще вижу действительную wlan0конфигурацию при работе ifconfig, я не могу получить доступ к Интернету (вероятно, мой ноутбук пытается использовать eth0вместо wlan0).

Я ищу способ либо:

а) по-прежнему использовать wlan0для доступа в интернет, когда eth0 настроен вручную

b) Принудительно eth0использовать определенный IP-адрес, если настроено «Общий доступ к другим компьютерам».

Я пытаюсь настроить простые инструкции для других пользователей, поэтому, если возможно, я бы хотел избежать каких-либо ручных iptables-typeнастроек.

Джейк
источник
Это довольно сложно сделать. Я не могу поместить руководство здесь прямо сейчас, но я отредактирую это позже. Попробуйте здесь: howtoforge.com/linux-basics-set-a-static-ip-on-ubuntu
TheWanderer

Ответы:

15

В версиях до 1.4.2 10.42.0.x жестко запрограммирован в NetworkManager . Забудьте о решении на основе графического интерфейса или подождите, пока запрос об ошибке / функции не будет исправлен. Или исправь это для всех нас. Или хотя бы проголосуйте за ошибку на панели запуска для более быстрого разрешения.

Обновите Ubuntu 17.04 до версии 1.4.4 или используйте следующую команду Томаса Халлера для установки IP-адреса и класса хоста.

nmcli connection modify $CONNECTION_ID +ipv4.addresses 192.168.5.1/24

где, $CONNECTION_IDесли найдено через nmcli connection show. После этого проверьте с помощью nmcli connection show $CONNECTION_ID.

Адам Рычковски
источник
1
видимо, ошибка была исправлена ​​14 сентября 2016 года! Теперь можно настроить его через графический интерфейс, но, разумеется, потребуется некоторое время, чтобы это просочилось в релизы.
hoijui
Это было исправлено в network-manager 1.4.2. Ubuntu 17.04 имеет 1.4.4. Я попросил Canonical сделать бэкпорт на 16.04 LTS. bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1098362/…
Лукас
И как нам сделать это о более новых версиях?
Лев
0

Ваша конфигурация имеет фундаментальную проблему. Ваш шлюз настроен на тот же IP-адрес, что и ваш локальный IP-адрес.

Рисунок: Raspi: подключиться к 10.0.0.5 Raspi: нет в моей подсети, отправить на шлюз Raspi снова получает запрос и отвечает тем же сообщением.

Ваш вопрос немного сбивает с толку, но кажется, что ваш ноутбук должен иметь IP, как 192.168.254.2

Вам также необходимо настроить трансляцию сетевых адресов на ноутбуке.

Я думаю, что было бы лучше, если бы вы соединили два интерфейса, чтобы raspi эффективно использовал Wi-Fi вашего ноутбука для связи. На вашем ноутбуке сделайте:

sudo -i

Это делает вас рутом.

apt-get update
apt-get install bridge-utils
brctl addbr br0
brctl addif br0 wlan0
brctl addif br0 eth0
ifconfig br0 10.42.0.1
ifconfig br0 netmask 255.0.0.0
ifconfig br0 up

Ctrl-D для выхода из корня

На распи (связан с eth0):

sudo ifconfig eth0 10.42.0.2
sudo ifconfig eth0 netmask 255.0.0.0
sudo ifconfig eth0 up
echo 'nameserver 8.8.8.8'>/etc/resolv.conf
ping 10.42.0.1
ping 8.8.8.8
ping fb.com

Последние три команды покажут вам, какой тип доступа к сети у вас есть:

  • Если только первый проход: локальная сеть
  • Если до второго прохода: доступ в интернет
  • Если все прошло: доступ в интернет с DNS
Вильгельм Эразм
источник
Я не уверен, что вы имеете в виду о моем шлюзе / адресе. Когда я делюсь своим подключением, разве мой ноутбук не является шлюзом для RasPi? В ручной конфигурации, которую я показал в OP, RasPi поднимает 192.168.254.100 - у меня нет проблем с невозможностью установить связь из-за разных подсетей.
Джейк
Лучший способ сформулировать вопрос может быть таким: когда я делюсь своим соединением, я хочу, чтобы менеджер сети использовал подсеть 192.168.254 вместо подсети 10.42.0
Джейк
@ Джейк, твой ноутбук действительно шлюз. Извините, я немного неправильно понял вопрос, теперь вижу проблему. Вы можете сделать route -nкак root ( sudo su), а затем сделать route del default gw 192.168.254.1 dev eth0или, а точнее, использовать информацию из, route -nчтобы заполнить оператор del, так что этоroute del default gw <gateway> dev <Iface>
Вильгельм Эразм