Fórumok
Sziasztok
Van egy rasberry pi -m amin raspbian fut .
Ezen szeretném beállítani , hogy az ethernet portján adjon internetet egy másik gépnek.
Telepítettem egy iptablest .
https://www.instructables.com/Share-WiFi-With-Ethernet-Port-on-a-Raspbe…
innen indultam , de az enyém sima 1 es b+ model nem a cikkben szereplő raspberry .
pi@raspberrypi:~ $ a=`route | awk "/${wlx2cab25bf6ba6}/"'{print $5+1;exit}'`
pi@raspberrypi:~ $ sudo route add -net default gw 192.168.2.1 netmask 0.0.0.0 dev enxb827eb6289f4 metric $a
SIOCADDRT: Network is unreachable itt ált meg a tudomány .
ssh -n be tudok lépni , de nem ad semmit sem ethernet oldalon (enxb827eb6289f4).
Szerintetek hogy oldjam ezt meg .
Válaszaitokat előre is köszönöm .
Hozzászólások
tűzfal beállítás (leggyorsabban):
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -j MASQUERADE
Ezen kívül szükséged lesz egy dnsmasq csomagra is. Az dhcp szerverként működik, és IP-t oszt. Értelemszerűen be kell állítani, hogy az eth0-n osszon.
Wifin meg kliensként fel kell akaszkodni. Ezzel mennie kellene. routing táblát nem kell elvileg kézzel berhelni. Amúgy a route parancs már outdated (igaz, az általam írt iptables is :))
wifin fent csüng a pi most is .
dnsmasq telepitve .
ip route list
default via 192.168.0.1 dev wlx2cab25bf6ba6 proto dhcp src 192.168.0.19 metric 303
192.168.0.0/24 dev wlx2cab25bf6ba6 proto dhcp scope link src 192.168.0.19 metric 303
pi@raspberrypi:~ $ sudo iptables -F
pi@raspberrypi:~ $ sudo iptables -t nat -F
pi@raspberrypi:~ $ udo iptables -t nat -A POSTROUTING -o wlx2cab25bf6ba6 -j MASQUERADE
-bash: udo: command not found
pi@raspberrypi:~ $ sudo iptables -t nat -A POSTROUTING -o wlx2cab25bf6ba6 -j MASQUERADE
pi@raspberrypi:~ $ sudo iptables -A FORWARD -i wlx2cab25bf6ba6 -o enxb827eb6289f4 -m state --state RELATED,ESTABLISHED -j ACCEPT
pi@raspberrypi:~ $ sudo iptables -A FORWARD -i enxb827eb6289f4 -o wlx2cab25bf6ba6 -j ACCEPT
pi@raspberrypi:~ $ sudo nano /proc/sys/net/ipv4/ip_forward
pi@raspberrypi:~ $ sudo nano /etc/sysctl.conf
pi@raspberrypi:~ $ sudo ip route del 0/0 dev eth0 &> /dev/null
pi@raspberrypi:~ $ a=`route | awk "/${wlx2cab25bf6ba6}/"'{print $5+1;exit}'`
pi@raspberrypi:~ $ sudo route add -net default gw 192.168.2.1 netmask 0.0.0.0 dev enxb827eb6289f4 metric $a
SIOCADDRT: Network is unreachable
pi@raspberrypi:~ $ a=`route | awk "/${wlx2cab25bf6ba6}/"'{print $5+1;exit}'`
pi@raspberrypi:~ $ sudo route add -net default gw 192.168.2.1 netmask 0.0.0.0 dev enxb827eb6289f4 metric $a
SIOCADDRT: Network is unreachable
pi@raspberrypi:~ $ sudo nano /etc/dnsmasq.conf
pi@raspberrypi:~ $ sudo systemctl start dnsmasq
# Mar kiépített kapcsolatokhoz tartozó csomagok beengedése. (Állapotkövetés)
iptables -A INPUT -i ESZKÖZ_BELSŐ -m state --state ESTABLISHED,RELATED -j ACCEPT
A két FORWARD rule elvileg nem szükséges most még, amíg komolyabb tűzfalat nem csinálsz. Persze jó lenne tudni hogy a tábláknál mi a default action, mert ha DROP, akkor persze kell.
Nekem volt hogy a docker beletúrt a tűzfalba, esetleg érdemes megnézni hogy néznek ki a táblák, de ha mindenhol csak ACCEPT default rule van, a nat/POSTROUTING-on pedig egy MASQUERADE rule, akkor a tűzfal részéről mennie kellene.
Azt persze jó lenne tudni, hogy mik a device nevek, mert én eddig abban voltam hogy wlan0 meg eth0, de ezek itt mac based címek, tehát illene akkor az eth0-t _mindenhol_ enxb827eb6289f4-ra cserélni. Mint írtam, route táblát nem kell elvileg piszkálni.
Tehát én így csinálnám (nyilván root-ként):
/etc/dnsmasq.conf-ba elvileg ennyi elég:
interface=enxb827eb6289f4
dhcp-range=192.168.2.100,192.168.2.199,1h
Ezzel mennie kellene.
Ha a másik gép ennek ellenére nem kap IP címet, akkor vagy ott van valami elkonfigurálva, vagy a dnsmasq nem fut, vagy nincs jól beállítva. Vagy esetleg a tűzfal megfogja.
Utóbbit könnyű kideríteni, ha megnézed az iptables-t. Ha nagyon nem akar IP címet kapni, akkor először állítsd be fix IP-re azt a gépet, DHCP nélkül. Tudja-e pingelni a pi-t? Tud-e kifele pingelni IP címet?
169.254.110.150 ezt az ip címet osztotta ki a raspberry és nem értem miért .
pingem nincs unknown hosts hibaüzenetet kapok
ip a | grep ^[0-9]
?
root@raspberrypi:/home/pi# ip a | grep ^[0-9]
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: enxb827eb6289f4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
3: wlx2cab25bf6ba6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
root@raspberrypi:/home/pi#
Én nem látok eth0-t.
Azt törölted korábban a route táblából.
route mit ad vissza?
ő lenne az ethernet port elvileg :enxb827eb6289f4
route kimenete mi?
root@raspberrypi:/home/pi# ip route get 8.8.8.8
8.8.8.8 via 192.168.0.1 dev wlx2cab25bf6ba6 src 192.168.0.19 uid 0
cache
root@raspberrypi:/home/pi#
simán: route ENTER
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 303 0 0 wlx2cab25bf6ba6
link-local 0.0.0.0 255.255.0.0 U 202 0 0 enxb827eb6289f4
192.168.0.0 0.0.0.0 255.255.255.0 U 303 0 0 wlx2cab25bf6ba6
maga a raspberry a 192.168.0.19 en csücsül .
egy imacet kötöttem az ethernet portjára annak az ifconfigja baromi randa .
a raspberry wlan eszköze ez a wlx2cab25bf6ba6 azonosítójú , az ethernet portja pedig az enxb827eb6289f4 szerintem .
raspberry ifconfigja :
enxb827eb6289f4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 169.254.168.55 netmask 255.255.0.0 broadcast 169.254.255.255
inet6 fe80::62f1:7069:f361:fd1c prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:62:89:f4 txqueuelen 1000 (Ethernet)
RX packets 22365 bytes 1213082 (1.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 286 bytes 60364 (58.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 506 bytes 40328 (39.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 506 bytes 40328 (39.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlx2cab25bf6ba6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.19 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::30c5:fc93:b78a:5831 prefixlen 64 scopeid 0x20<link>
inet6 2001:4c4c:1760:d600::2 prefixlen 128 scopeid 0x0<global>
inet6 2001:4c4c:1760:d600:6ae1:2671:3cca:d084 prefixlen 64 scopeid 0x0<global>
ether 2c:ab:25:bf:6b:a6 txqueuelen 1000 (Ethernet)
RX packets 9557 bytes 4054234 (3.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4470 bytes 677741 (661.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Az ethernet címet ki-mi adta?
csak összekötöttem a két eszközt , semmiféle beállítás nem volt részemről .
A mac-et a raspival? Lehet mac adja ezt a címet?
Szinte biztos ,amit egyáltalán nem értek , hogy miért , de igen a mactől kapja ezt a címet .
Ami még érdekes , hogy a mac viszont nem kap semmiféle hálózatot .
a ping 8.8.8.8 kimenete
ping sendto : No route to host ,
request timeout for icmp_seq 1 ,
ping sendto : No route to host ,
request timeout for icmp_seq 2 ,
és így tovább .
Mac route parancsra kidobja hogy vár még paramétereket és nem fut le .
/etc/network/interfaces raspbianon :
# interfaces(5) file used by ifup(8) and ifdown(8) Include files from /etc/network/interfaces.d:
source /etc/network/interfaces.d/*
allow-hotplug wlx2cab25bf6ba6
iface wlx2cab25bf6ba6 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
Rpi eth nak allits be fix ipt. Csinalj ra dhcp szervert es a poolt is allitasd be.
Ezt nem a Raspberry pi adja hanem a másik gép random allokalja az APIPA tartomanybol
Köszönöm szépen a válaszokat , közben megpurcant a raspberry-hez használt wifi stick úgyhogy egyenlőre parkolópályán a projekt .