Транспорт udp2raw: 443 -> 25565/tcp - 443 на сервере занят nginx (reverse-proxy Gitea totmaxim.ru); udp2raw в faketcp через правило -a перехватил бы весь TCP на своём порту и поломал nginx - server/client .service: -l/-r переведены на 25565 Клиент (Raspberry Pi): - wg0.conf: PreUp-маршрут 95.174.102.77/32 via 192.168.200.1 dev usbnet — устраняет петлю транспорта udp2raw при AllowedIPs=0.0.0.0/0 - nftables.conf: MSS-clamp для wlan0->wg0 (клиенты MTU 1500 vs туннель 1200) Сервер (Ubuntu за NAT 192.168.31.163): - wg0.conf: masquerade сужен до 10.66.66.0/24 в изолированной таблице wgfwd (не конфликтует с Docker), MSS-clamp на входе в туннель, MTU=1200 README: - фактическая топология (сервер за NAT, 95.174.102.77 = WAN роутера, проброс 25565 обязателен), таблица предусловий окружения и проверок - шаг закрепления net.ipv4.ip_forward, диагностика петли и выхода в интернет
57 lines
2.3 KiB
Plaintext
57 lines
2.3 KiB
Plaintext
# RASPBERRY PI 4: /etc/nftables.conf
|
|
|
|
table ip nat {
|
|
chain postrouting {
|
|
type nat hook postrouting priority srcnat; policy accept;
|
|
ip saddr 192.168.77.0/24 oifname "usbnet" masquerade
|
|
|
|
ip saddr 192.168.77.0/24 oifname "wg0" masquerade
|
|
}
|
|
}
|
|
table inet filter {
|
|
chain input {
|
|
type filter hook input priority filter; policy drop;
|
|
ct state established,related accept
|
|
iifname "lo" accept
|
|
ip protocol icmp accept
|
|
ip6 nexthdr ipv6-icmp accept
|
|
tcp dport 22 accept
|
|
iifname "wlan0" udp dport { 67, 68 } accept
|
|
iifname "wlan0" udp dport 53 accept
|
|
tcp dport 8080 accept
|
|
|
|
iifname "wg0" accept
|
|
}
|
|
|
|
chain forward {
|
|
type filter hook forward priority filter; policy drop;
|
|
iifname "wlan0" oifname "usbnet" accept
|
|
iifname "usbnet" oifname "wlan0" ct state established,related accept
|
|
|
|
iifname "wlan0" oifname "wg0" accept
|
|
iifname "wg0" oifname "wlan0" ct state established,related accept
|
|
|
|
# MSS-clamp: клиенты 192.168.77.0/24 имеют MTU 1500 и не знают про туннель 1200.
|
|
# Без этого крупные TCP-сессии (сайты, загрузки) залипают при заблокированном PMTUD.
|
|
iifname "wlan0" oifname "wg0" tcp flags syn tcp option maxseg size set rt mtu
|
|
}
|
|
|
|
chain output {
|
|
type filter hook output priority filter; policy accept;
|
|
}
|
|
}
|
|
table ip nm-shared-wlan0 {
|
|
chain nat_postrouting {
|
|
type nat hook postrouting priority srcnat; policy accept;
|
|
ip saddr 192.168.77.0/24 ip daddr != 192.168.77.0/24 masquerade
|
|
}
|
|
|
|
chain filter_forward {
|
|
type filter hook forward priority filter; policy accept;
|
|
ip daddr 192.168.77.0/24 oifname "wlan0" ct state { established, related } accept
|
|
ip saddr 192.168.77.0/24 iifname "wlan0" accept
|
|
iifname "wlan0" oifname "wlan0" accept
|
|
iifname "wlan0" reject
|
|
oifname "wlan0" reject
|
|
}
|
|
} |