Konfiguruję domowy router Gentoo Linux z następującą konfiguracją:
eth0
: podłączony do sieci WAN (zarządzany przez systemd-networkd)wlan0
: punkt dostępu do sieci LAN (zarządzany przez hostapd)
Używam dnsmasq
jako serwera DNS i DHCP dla maszyn LAN.
Aktualny problem: Mogę połączyć się z routerem, ale nie mam połączenia z Internetem od klientów.
Kilka informacji:
- Serwer nazw klientów: adres IP routera.
- Ping z routera na google.com jest normalny.
- Ping z komputerów klienckich do routera jest normalny.
- Ping z komputerów klienckich na google.com zawsze przekracza limit czasu (ale nazwa domeny została rozwiązana)
- Router:
iptables -t {filter,nat,mangle,raw} -L
pokazuje, że wszystkie łańcuchy we wszystkich tabelach mają politykiACCEPT
- Router:
iptables -t nat -L
pokazuje oczekiwany wynikiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- Zatwardziały
sys.net.ipv4.ip_forward = 1
Testowałem je powyżej na różnych komputerach klienckich, a te komputery klienckie są testowane pod kątem współpracy z innymi hotspotami Wi-Fi.
Nie mam pojęcia, jak rozwiązać ten problem, wydaje się, że postępuję zgodnie ze zwykłą procedurą, ale dostęp do Internetu od klienta po prostu nie działa. Jakakolwiek podpowiedź na temat tego, co sprawdzić dalej lub pomysł, jak rozwiązać ten problem, będzie bardzo mile widziana!
EDYTOWAĆ:
Problem wygląda podobnie do tego: Ruch nie jest przekazywany przez NAT . Rzeczywiście jednak to potwierdziłem sys.net.ipv4.ip_forward = 1
.
Weź router jako, A
a klienta jako B
.
ifconfig
na 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
na 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
na A
:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
iptables -S -t nat
na A
:
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE
ping -n google.com
na 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
na 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
na 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 * * *