Допустим, нужно подключить распу, к интернету через ноутбук.
Пусть:
eth0 — сетевой интерфейс на распе
enp2s0 — сетевой интерфейс на ноутбуке
192.168.5.1 — IP ноутбука
192.168.5.2 — IP распы
Способ 1. Самый лучший.
Работает, если установлен ifconfig и route. Самый нормальный рабочий способ. Остальные способы могут не работать.
На ноутбуке:
_x000D_ifconfig enp2s0 192.168.5.1 netmask 255.255.255.0_x000D_iptables -t nat -I POSTROUTING -s 192.168.5.0/24 ! -d 192.168.5.0/24 -j MASQUERADE_x000D_iptables -I FORWARD -o enp2s0 -j ACCEPT_x000D_iptables -I FORWARD -i enp2s0 -j ACCEPTРазрешите forward на ноутбуке:
_x000D_echo 1 > /proc/sys/net/ipv4/ip_forward_x000D_echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf_x000D_sysctl -pНа распе:
_x000D_ifconfig eth0 192.168.5.2 netmask 255.255.255.0_x000D_route add default gw 192.168.5.1 eth0Способ 2
Тоже работает, но с первого раза может не сработать. Используйте его, если нет ifconfig.
Сделайте на распе:
_x000D_ip address add 192.168.5.2/24 dev eth0_x000D_ip route add 192.168.5.0/24 dev eth0_x000D_ip route add default via 192.168.5.1_x000D_Сделайте на ноутбуке
_x000D_echo 1 > /proc/sys/net/ipv4/ip_forwardили пропишите в файле /etc/sysctl.conf
_x000D_net.ipv4.ip_forward = 1и сделайте:
_x000D_sysctl -pВыполните команды для Iptables на ноутбуке:
_x000D_ip address add 192.168.5.1/24 dev enp2s0_x000D_ip route add 192.168.5.0/24 dev eth0_x000D_iptables -t nat -I POSTROUTING -s 192.168.5.0/24 ! -d 192.168.5.0/24 -j MASQUERADE_x000D_iptables -I FORWARD -o enp2s0 -j ACCEPT_x000D_iptables -I FORWARD -i enp2s0 -j ACCEPTПоидее интернет должен работать на распе
Способ 3
В новых версиях Ubuntu данный способ не работает. Вместо него нужно юзать Network Manager или Systemd Network. А жаль. Хороший был способ.
Задает статический IP адрес для распы. В файле /etc/network/interfaces пропишите:
_x000D_auto eth0_x000D_iface eth0 inet static_x000D_ address 192.168.5.2_x000D_ network 192.168.5.0_x000D_ netmask 255.255.255.0_x000D_ broadcast 192.168.5.255_x000D_ gateway 192.168.5.1На ноутбуке, прописывать не рекомендуется, но можно:
_x000D_auto enp2s0_x000D_iface enp2s0 inet static_x000D_ address 192.168.5.1_x000D_ network 192.168.5.0_x000D_ netmask 255.255.255.0_x000D_ broadcast 192.168.5.255_x000D_ gateway 192.168.5.1Способ 4
Через systemd. Systemd — это новая фича убунту, которая может управлять автозапуском приложений, есть менеджер сети, и резолвер ДНС. Имхо работает через одно место, как и весь systemd.
Включите systemd network:
_x000D_systemctl enable systemd-networkd.service_x000D_systemctl start systemd-networkd.serviceПропишите конфиг /etc/systemd/network/eth0.network:
_x000D_[Match]_x000D_Name=eth0_x000D__x000D_[Network]_x000D_DHCP=yes_x000D_RouteMetric=20_x000D__x000D_## to use static IP uncomment these instead of DHCP_x000D_#DNS=192.168.5.1_x000D_#Address=192.168.5.2/24_x000D_#Gateway=192.168.5.1_x000D__x000D_#Allow ip forward_x000D_IPForward=noПерезапустите сервис:
_x000D_systemctl restart systemd-networkd.service