Nach etwas mehr Suche habe ich diesen Thread gefunden:https://forum.linode.com/viewtopic.php?p=50114&sid=b440414422596bb7dbc96cf7c9ee511f#p50114
Ich habe jetzt mein OpenVPN-Skript "route-up" wie folgt geändert und es funktioniert endlich! Ich habe alle anderen chaotischen Regeln entfernt (iptable PREROUTING, MASQUERADE, etc).
Hier ist mein letztes "route-up"-Skript:
ip route flush table 100
ip route flush cache
ip rule add from x.x.x.x table 100
ip route add table 100 to y.y.y.y/y dev ethX
ip route add table 100 default via z.z.z.z
Dabei ist x.x.x.x die öffentliche IP meines Servers, y.y.y.y/y das Subnetz der öffentlichen IP-Adresse meines Servers, ethX die öffentliche Ethernet-Schnittstelle meines Servers und z.z.z.z das Standard-Gateway.
Hoffe, das kann jemand anderem helfen.
Nachdem ich selbst die gleiche Tortur durchgemacht hatte, fand ich mindestens ein Problem mit dem Route-up-Skript.
iptables -t mangle -A PREROUTING ...
sollte sein:
iptables -t mangle -A OUTPUT ...
Lesen Sie hier, warum:http://www.iptables.info/en/structure-of-iptables.html
Ich musste die IP-Weiterleitung nicht aktivieren.