ip a
ip address
sudo nano /etc/dhcpcd.conf
# Основной интерфейс (роутер)
interface eth0
# Используйте DHCP для получения IP от роутера
# (или укажите статический IP, если нужно)
# Второй интерфейс (USB-Ethernet адаптер)
interface eth1
static ip_address=192.168.2.1/24
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1
sudo sysctl -p
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo apt install iptables-persistent
Если проблема и нет
eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP gr oup default qlen 1000 link/ether 9c:eb:e8:1a:be:be brd ff:ff:ff:ff:ff:ff inet6 fe80::1d97:861a:7b46:73fb/64 scope link noprefixroute valid_lft forever preferred_lft forever
видно, что интерфейс eth1 (USB-Ethernet адаптер) не имеет IPv4-адреса, только IPv6 (inet6). Это может быть причиной того, что соединение между Raspberry Pi и Windows не работает.
sudo ip link set eth1 up
ip link show eth1
sudo systemctl status dhcpcd
Unit dhcpcd.service could not be found.
sudo systemctl list-unit-files | grep -E "network|dhcp"
Если вы видите systemd-networkd или NetworkManager, значит, они используются вместо dhcpcd.
networking.service enabled enabled
systemd-network-generator.service disabled enabled
systemd-networkd-wait-online.service disabled disabled
systemd-networkd-wait-online@.service disabled enabled
systemd-networkd.service disabled enabled
systemd-networkd.socket disabled enabled
network-online.target static -
network-pre.target static -
network.target static -
sudo systemctl status networking
sudo nano /etc/network/interfaces
auto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0
sudo systemctl restart networking
sudo systemctl status networking
ip address show eth1
Настройка через dhcpcd
sudo apt update
sudo apt install dhcpcd5
sudo systemctl enable dhcpcd
sudo systemctl start dhcpcd
sudo nano /etc/dhcpcd.conf
interface eth1
static ip_address=192.168.2.1/24
sudo reboot
Настройка через systemd-networkd
sudo nano /etc/systemd/network/10-eth1.network
[Match]
Name=eth1
[Network]
Address=192.168.2.1/24
sudo systemctl restart systemd-networkd
sudo systemctl status systemd-networkd
ip address show eth1
Вы должны увидеть IPv4-адрес 192.168.2.1.
Настройка через NetworkManager
sudo apt update
sudo apt install network-manager
sudo nmtui
sudo systemctl restart NetworkManager
ip address show eth1
Вариант 2
ip address show wlan0
Метрика маршрутов определяет приоритет интерфейсов. Интерфейс с меньшей метрикой имеет более высокий приоритет.
sudo nano /etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet dhcp
metric 100
Здесь metric 100 означает, что eth0 будет иметь более высокий приоритет, чем wlan0
sudo nano /etc/network/interfaces.d/wlan0
auto wlan0
iface wlan0 inet dhcp
metric 200
Здесь metric 200 означает, что wlan0 будет использоваться, если eth0 недоступен
sudo systemctl restart networking
ip route
Это означает, что eth0 имеет более высокий приоритет.
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o wlan0 -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo apt install iptables-persistent
sudo netfilter-persistent save
Нет подключения
eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:e0:4c:68:05:31 brd ff:ff:ff:ff:ff:ff
Проблема в том, что интерфейс eth1 находится в состоянии DOWN (выключен).
sudo ip link set eth1 up
sudo ip addr add 192.168.2.1/24 dev eth1
ip link show eth1
Должно появиться state UP
sudo nano /etc/network/interfaces.d/eth1
auto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0
sudo systemctl restart networking
journalctl -xeu networking.service
Посмотрите последние строки - там будет указана конкретная причина ошибки.
sudo ip link set eth1 up
sudo ip addr add 192.168.2.1/24 dev eth1
sudo nano /etc/dhcpcd.conf
interface eth1
static ip_address=192.168.2.1/24
sudo systemctl restart dhcpcd
sudo nmcli con add type ethernet ifname eth1 ip4 192.168.2.1/24
sudo nmcli con up eth1
ip addr show eth1
ping 192.168.2.2
Проверьте имя интерфейса - возможно, оно изменилось:
ip link
Убедитесь, что нет конфликтов в:
/etc/network/interfaces
/etc/network/interfaces.d/*
sudo systemctl disable networking
sudo systemctl stop networking
И используйте только dhcpcd.
ip link
ls /sys/class/net
Ищите похожие имена: enx..., usb0, eth1, enp0s...
lsusb
Найдите в списке ваш Ethernet-адаптер
dmesg | grep -i ethernet
journalctl -b | grep -i eth
Если адаптер не определяется:
- Переподключите USB-адаптер
- Попробуйте другой USB-порт
- Проверьте другой кабель Ethernet
- Попробуйте адаптер на другом компьютере
Создайте файл конфигурации для нового имени интерфейса (например, enx00e04c680531):
sudo nano /etc/network/interfaces.d/enx00e04c680531
auto enx00e04c680531
iface enx00e04c680531 inet static
address 192.168.2.1
netmask 255.255.255.0
sudo apt update && sudo apt upgrade
│ Newer kernel available │
│ │
│ The currently running kernel version is 6.6.51+rpt-rpi-v8 which is not the expected kernel │
│ version 6.6.74+rpt-rpi-v8. │
│ │
│ Restarting the system to load the new kernel will not be handled automatically, so you │
│ should consider rebooting.
Обнаружено, что у вас устаревшая версия ядра (6.6.51), тогда как доступна новая (6.6.74). Это может быть причиной проблем с определением сетевого интерфейса eth1. Давайте решим проблему комплексно:
sudo apt update
sudo apt full-upgrade -y
sudo reboot
После перезагрузки проверьте версию ядра:
uname -a
ip link
Теперь должны отображаться все сетевые интерфейсы, включая ваш USB-Ethernet адаптер (может называться eth1, enx... или usb0).
Определите модель адаптера:
lsusb
Установите соответствующие драйверы:
# Для адаптеров Realtek
sudo apt install r8152-dkms
# Для адаптеров ASIX
sudo apt install ax88179_178a-dkms
Если драйверы не помогают, попробуйте вручную загрузить модуль ядра:
sudo modprobe cdc_ether
sudo modprobe r8152
sudo modprobe asix
sudo nano /etc/network/interfaces.d/eth1
auto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0
sudo systemctl restart networking
ip addr show eth1
ping 192.168.2.2
ip link
lsusb -tv
~ lsusb -tv
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
ID 1d6b:0003 Linux Foundation 3.0 root hub
|__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
ID 0bda:8151 Realtek Semiconductor Corp. RTL8151 Adapteon Business Mobile Networks BV
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
ID 2109:3431 VIA Labs, Inc. Hub
USB-Ethernet адаптер (Realtek RTL8151) подключен, но система его не распознала как eth1
sudo apt update
sudo apt install r8152-dkms
sudo modprobe r8152
ip -c link show
Теперь должен появиться новый интерфейс (обычно enx... с MAC-адресом адаптера)
sudo nano /etc/udev/rules.d/10-rename-network.rules
Добавьте (подставив MAC-адрес из вывода ip link):
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:68:05:31", NAME="eth1"
sudo nano /etc/network/interfaces.d/eth1
auto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0
sudo udevadm control --reload-rules
sudo systemctl restart networking
➜ ~ sudo apt update
sudo apt install r8152-dkms
sudo modprobe r8152
Hit:1 http://deb.debian.org/debian bookworm InRelease
Hit:2 http://deb.debian.org/debian-security bookworm-security InRelease
Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
Get:4 https://download.docker.com/linux/debian bookworm InRelease [43.3 kB]
Hit:5 http://archive.raspberrypi.com/debian bookworm InRelease
Fetched 43.3 kB in 2s (26.6 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package r8152-dkms
Похоже, пакет r8152-dkms недоступен в стандартных репозиториях Debian Bookworm. Давайте решим проблему с драйвером для вашего Realtek RTL8151 адаптера альтернативными способами:
sudo apt update
sudo apt install -y dkms git build-essential
git clone https://github.com/awilliam/realtek-r8152.git
cd realtek-r8152
sudo make dkms-install
sudo modprobe r8152
lsmod | grep r8152
ip -c link show