ip aip addresssudo nano /etc/dhcpcd.conf# Основной интерфейс (роутер)
interface eth0
# Используйте DHCP для получения IP от роутера
# (или укажите статический IP, если нужно)
# Второй интерфейс (USB-Ethernet адаптер)
interface eth1
static ip_address=192.168.2.1/24sudo nano /etc/sysctl.confnet.ipv4.ip_forward=1sudo sysctl -psudo 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 ACCEPTsudo 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 upip link show eth1sudo systemctl status dhcpcdUnit 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 networkingsudo nano /etc/network/interfacesauto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0sudo systemctl restart networkingsudo systemctl status networkingip address show eth1Настройка через dhcpcd
sudo apt update
sudo apt install dhcpcd5sudo systemctl enable dhcpcd
sudo systemctl start dhcpcdsudo nano /etc/dhcpcd.confinterface eth1
static ip_address=192.168.2.1/24sudo rebootНастройка через systemd-networkd
sudo nano /etc/systemd/network/10-eth1.network[Match]
Name=eth1
[Network]
Address=192.168.2.1/24sudo systemctl restart systemd-networkdsudo systemctl status systemd-networkdip address show eth1Вы должны увидеть IPv4-адрес 192.168.2.1.
Настройка через NetworkManager
sudo apt update
sudo apt install network-managersudo nmtuisudo systemctl restart NetworkManagerip address show eth1Вариант 2
ip address show wlan0Метрика маршрутов определяет приоритет интерфейсов. Интерфейс с меньшей метрикой имеет более высокий приоритет.
sudo nano /etc/network/interfaces.d/eth0auto eth0
iface eth0 inet dhcp
metric 100Здесь metric 100 означает, что eth0 будет иметь более высокий приоритет, чем wlan0
sudo nano /etc/network/interfaces.d/wlan0auto wlan0
iface wlan0 inet dhcp
metric 200Здесь metric 200 означает, что wlan0 будет использоваться, если eth0 недоступен
sudo systemctl restart networkingip 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 ACCEPTsudo 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 ACCEPTsudo apt install iptables-persistentsudo 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 eth1ip link show eth1Должно появиться state UP
sudo nano /etc/network/interfaces.d/eth1auto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0sudo systemctl restart networkingjournalctl -xeu networking.serviceПосмотрите последние строки - там будет указана конкретная причина ошибки.
sudo ip link set eth1 up
sudo ip addr add 192.168.2.1/24 dev eth1sudo nano /etc/dhcpcd.confinterface eth1
static ip_address=192.168.2.1/24sudo systemctl restart dhcpcdsudo nmcli con add type ethernet ifname eth1 ip4 192.168.2.1/24
sudo nmcli con up eth1ip 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 linkls /sys/class/netИщите похожие имена: enx..., usb0, eth1, enp0s...
lsusbНайдите в списке ваш Ethernet-адаптер
dmesg | grep -i ethernetjournalctl -b | grep -i ethЕсли адаптер не определяется:
- Переподключите USB-адаптер
- Попробуйте другой USB-порт
- Проверьте другой кабель Ethernet
- Попробуйте адаптер на другом компьютере
Создайте файл конфигурации для нового имени интерфейса (например, enx00e04c680531):
sudo nano /etc/network/interfaces.d/enx00e04c680531auto enx00e04c680531
iface enx00e04c680531 inet static
address 192.168.2.1
netmask 255.255.255.0sudo 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 -aip 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 asixsudo nano /etc/network/interfaces.d/eth1auto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0sudo systemctl restart networkingip addr show eth1
ping 192.168.2.2ip linklsusb -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 r8152ip -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/eth1auto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0sudo 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-installsudo modprobe r8152
lsmod | grep r8152ip -c link show