Маскарадинг работает, но некоторые сайты не открываются
Проблема выражается в том, что соединение есть, но часть сайтов и сервисов не работают, если вы используете ваш компьютер в роли маршрутизатора для других компьютеров. Дело в том, что размер MTU (Maximum Transmission Unit — максимальное количество байт данных в одном пакете) в PPPoE равен 1492 байтам, что меньше, чем используют большинство сайтов (1500). Ваш маршрутизатор отправляет серверу специальный пакет ICMP 3:4 (сообщение о том, что нужно переразбиение данных), запрашивая меньший MTU, но сетевые экраны многих сайтов блокируют это сообщение.
Проблема решается добавлением правила с PMTU clamping в iptables:
# iptables -I FORWARD -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eno1 -j MASQUERADE
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Don't delete these required lines, otherwise there will be errors
*filter
...
...
# End required lines
-I FORWARD -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-I FORWARD -o eno1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
To resolve this, simply use the PassivePorts directive in your proftpd.conf to control what ports proftpd will use for its passive data transfers:
PassivePorts 60000 65535
sudo ufw statusroot@moscow-battle ~ # sudo ufw status
Status: active
To Action From
-- ------ ----
2022 ALLOW Anywhere
8443 ALLOW Anywhere
443 ALLOW Anywhere
2053 ALLOW Anywhere
1980/tcp ALLOW Anywhere
27000:27155/udp ALLOW Anywhere
8080/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
5000 ALLOW Anywhere
21 ALLOW Anywhere
20 ALLOW Anywhere
2022 (v6) ALLOW Anywhere (v6)
8443 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
2053 (v6) ALLOW Anywhere (v6)
1980/tcp (v6) ALLOW Anywhere (v6)
27000:27155/udp (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
5000 (v6) ALLOW Anywhere (v6)
21 (v6) ALLOW Anywhere (v6)
20 (v6) ALLOW Anywhere (v6)
ufw
пробовал даже вообще отключать