Ok, it was the MTU issue definitely. MTU on my router→provider PPPoE connection was 1300 and I don’t remember why. As it figured here Wireguard needs about 80 bytes for it, so it could use max MTU 1300-80=1220. But wg-quick doesn’t allow MTU less than 1280 bytes (still don’t know why).
So the solution is:
- Set PPPoE MTU on the router to recommended 1480 (1492 is the maximum allowed value for PPPoE).
- Add
MTU = 1400
to the client configs (1480-80)