Ich stelle einen Gentoo Linux-Heimrouter mit folgender Konfiguration ein:
eth0
: mit WAN verbunden (verwaltet von systemd-networkd)wlan0
: Zugangspunkt für LAN (verwaltet von Hostapd)
ich benutze dnsmasq
als DNS- und DHCP-Server für die LAN-Maschinen.
Aktuelles Problem: Ich kann eine Verbindung zum Router herstellen, aber keine Internetverbindung von den Clients.
Wenige Informationen:
- Client Nameserver: IP des Routers.
- Ping vom Router an google.com ist normal.
- Ping vom Client-Rechner zum Router ist normal.
- Ping von Clientcomputern an google.com immer Timeout (aber der Domainname wird aufgelöst)
- Router:
iptables -t {filter,nat,mangle,raw} -L
Zeigt an, dass alle Ketten in allen Tabellen über Richtlinien verfügenACCEPT
- Router:
iptables -t nat -L
zeigt das erwartete Ergebnis voniptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- Bestätigt
sys.net.ipv4.ip_forward = 1
Ich habe die oben auf verschiedenen Client-Computern getestet, und diese Client-Computer werden getestet, um gut mit anderen WLAN-Hotspots zusammenzuarbeiten.
Ich habe keine Ahnung, wie dieses Problem behoben werden kann. Es scheint, als würde man dem regulären Verfahren folgen, aber der Internetzugang vom Client aus funktioniert einfach. Jeder Hinweis, was als nächstes zu prüfen ist, oder eine Idee, wie dieses Problem behoben werden kann, wird sehr geschätzt!
BEARBEITEN:
Das Problem hier sieht ähnlich aus: Verkehr wird nicht über NAT weitergeleitet .
Ich habe es allerdings bestätigt sys.net.ipv4.ip_forward = 1
.
Nehmen Sie den Router als A
und ein Kunde als B
.
ifconfig
auf B
:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether xx:xx:xx:xx:xx:xx
inet6 fe80::xxxx:xxxx:xxxx:xxxx%en0 prefixlen 64 scopeid 0x4
inet 192.168.1.62 netmask 0xffffff00 broadcast 192.168.1.255
nd6 options=1<PERFORMNUD>
media: autoselect
status: active
ifconfig
auf A
:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet xx.xx.xx.154 netmask 255.255.254.0 broadcast xx.xx.xx.255
inet6 fe80::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 251116 bytes 22652889 (21.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11731 bytes 979877 (956.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xdf100000-df120000
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.199 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 12867 bytes 1090816 (1.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1272 bytes 306689 (299.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
iptables -S
auf A
:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
iptables -S -t nat
auf A
:
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE
ping -n google.com
auf A
:
PING google.com (216.58.192.206) 56(84) bytes of data.
64 bytes from 216.58.192.206: icmp_seq=1 ttl=57 time=1.29 ms
64 bytes from 216.58.192.206: icmp_seq=2 ttl=57 time=1.52 ms
[continued]
ping -n google.com
auf B
:
PING google.com (216.58.192.206): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
[continued]
traceroute -i en0 8.8.8.8
auf B
:
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
1 192.168.1.199 (192.168.1.199) 2.054 ms 2.033 ms 2.018 ms
2 * * *
3 * * *
4 * * *