Настройка WiFi и Ethernet

44

Я борюсь с моей конфигурацией моего Raspberry Pi. Я хочу добиться следующего:

eth0: будет использоваться со статическим ip и может подключаться только к локальной сети (это будет мой NFS-сервер) wlan0: должен подключаться к моей беспроводной сети для доступа в Интернет

По какой-то причине я не могу активировать оба соединения одновременно (да, у меня хороший источник питания). Ethernet отключит беспроводную связь без всякой причины. Если я наконец получу оба, то я не смогу пинговать google.com. Мой вопрос, как я должен сделать это правильно? В моем файле интерфейса есть следующее:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 0.0.0.0

#auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

iface home inet static
address 192.168.0.157
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

iface default inet dhcp

С уважением и большое спасибо!

DanFritz
источник
убедитесь, что вы используете последнюю версию прошивки и программного обеспечения. Я много боролся на старой прошивке, это сводило меня с ума. обновил все с нуля, и в него встроен соискатель, и его очень легко подключить
Петр Кула
спасибо вам за подробные сведения по этому вопросу, мне удалось реализовать то, что было написано здесь, и заставить мой пи работать с обоими адаптерами.
1
Я думаю, что решение должно быть опубликовано как ответ ...
JMC
1
Это плохая форма и ухудшает удобство использования сайта, чтобы «обновить вопрос, чтобы включить ответ». Вы должны опубликовать ответ на свой вопрос. Тогда это будет легко найти для других - и может привлечь голосов от людей, которым это помогает
Линдон Уайт

Ответы:

25

Это относится к Raspbian Wheezy до 2015-05-05 для более поздней версии (и Jessie / Stretch). См. Как настроить сеть / WiFi / Статический IP

По предложению сообщества мой ответ извлечен из вопроса.

Я получил его прямо сейчас, поэтому я поделюсь всеми своими файлами конфигурации с сообществом. Сначала давайте посмотрим на файл wpa_supplicant.conf:

pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="****"
    scan_ssid=1
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP
    psk="****"
    id_str="home"
    priority=5
}

Следующий мой новый файл обновлений интерфейсов

pi@raspberrypi ~ $ sudo cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address 192.168.0.157
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

iface default inet dhcp

А теперь самое сложное: вы должны отключить горячее подключение устройства eth0 (иначе это отключит ваш wlan0). Вы делаете это, редактируя следующий файл:

pi@raspberrypi ~ $ sudo cat /etc/default/ifplugd 
INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"

У меня также есть следующее в моем скрипте запуска, это будет гарантировать, что мой Wi-Fi действительно запускается (иногда без всякой причины он не запускается). Вы также должны убить демон ifplugd на устройстве eth0:

pi@raspberrypi ~ $ sudo cat /etc/rc.local
#!/bin/sh -e

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# Disable the ifplugd eth0
sudo ifplugd eth0 --kill
sudo ifup wlan0

exit 0

И это должно работать!

DanFritz
источник
3
Вам не нужно отключать все ifplugd. Вместо этого просто отключите (удалите) нарушающую символическую ссылку /etc/ifplugd/action.d/action_wpa, которая не позволяет wlan0 работать при подключении Ethernet.
minmaxavg
чтобы отключить горячее подключение устройства eth0, разве мы не должны удалять auto ethoстроки? Кроме того, у меня все еще есть:~ $ sudo service isc-dhcp-server start Job for isc-dhcp-server.
IggyPass
8

Если устройство не имеет доступа к Интернету или другого доступа за пределами локальной подсети, вам следует устранить шлюз. Перечисление шлюза на обоих интерфейсах, вероятно, является причиной.

Если сеть Ethernet предназначена для локальной подсети, удалите только этот шлюз.

Тево Д
источник
Тево Д правильно. Когда ваш eth0 подключен, у вас будет маршрут по умолчанию (сеть 0.0.0.0) из вашего интерфейса eth0, что приведет к тому, что трафик вне сети будет перенаправлен из вашего интерфейса eth0 в «битовую корзину» .
HeatfanJohn
Я удалил шлюз на eth0. Теперь я вижу, что моя беспроводная сеть подключена (работает iwconfig), но когда я запускаю ifconfig, беспроводная сеть не использует назначенный мной статический IP-адрес или шлюз (он остается пустым). Есть хоть какая-то подсказка по этому поводу?
DanFritz
Нашел решение, спасибо за помощь. Я обновил свой вопрос со всеми своими файлами конфигурации (для других людей)
DanFritz
@TevoD Я воспользовался вашим советом, чтобы прокомментировать шлюз, он работает, но в течение 1 минуты, затем WiFi отключается (но Ethernet работает), не могли бы вы мне помочь
Х.Гассами,