Howto - SSTP port forwarding for starlink type connections (purevpn)

for those who may want port forwarding on starlink connection for RDP or other application.
this is the relatively easiest method if your router will support it.
first install luci-proto-sstp, sstp-client, mwan3, luci-app-mwan3 then reboot

i found installing as a multiwan worked the best it even improved starlink download speed doing it this way, which i found odd but happy to take. it went from ~100Mbps to ~175Mbps for download speed about a 30% improvement. ( even if you have one wan mwan3 seams to keep everyone happy and you can use it to monitor the vpn connection and test and ping it multiwan diagnostics )
as a vpn provider I used purevpn with dedicated ip

edit /etc/config/network

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'
        option metric '10'

config interface 'vpn'          #   purevpn setting
        option proto 'sstp'
        option username 'purevpnxxxxxxxxxx'
        option password 'xxxxxxxxx'
        option log_level '0'
        option server 'xxx-ded-xxx.pointtoserver.com'
        option metric '30'
        option mtu '1400'

config interface 'wanb'
        option proto 'dhcp'
        option device 'lan4'   #  this will probably be different on your router as mine is lambro R1
        option metric '20'

then edit /etc/config/firewall

config zone
        option name 'vpn'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'vpn'

config forwarding
        option src 'lan'
        option dest 'vpn'

config forwarding
        option scr 'vpn'
        option dest 'lan'

config zone
        option name 'wanb'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wanb'

config forwarding
        option src 'lan'
        option dest 'wanb'

and remote port forwarding you link to 'vpn'
example:

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'vnc'
        option src_dport '5900'
        option dest_ip '192.168.1.228'
        option dest_port '5900'
        option src 'vpn'

I also opened all the ports on the vpn, mainly because through the purevpn portforwarding in done on the server side which ports to allow it just simplified open ports as it will then only need to be adjusted at one interface and not multiple

config rule
        option name 'sstpvpn'
        list proto 'all'
        option src 'vpn'
        option target 'ACCEPT'

for mwan basically open the luci app enable wanb save and apply.

now your basic internet connect will run shared on wan and wanb and any port forwarding comes down the vpn and then directed to the appropriate internal ip.. I tried both L2TP and SSTP on openwrt for some reason thier speeds are restricted to around 5Mbps even though on a ubuntu base computer and the same protocols it is around 60Mbps . plus it does not work with all web pages ( ie some https websites openwrt forum as an example) or actions (ie you can not run the software manager on openwrt via sstp or L2tp for some reason either) and again on

if you are having issues run --- logread ---and see what the issue might be -- if your vpn is interrupted you need to restart it and restart mwan afterwards for things to wok properly again

100 meter download speed sounds strange. Maybe you wanted to say something different?


in case someone was curious and using Mwan3 as monitor for sstp vpn connection. I ping the sstp server, sstp dns and 8.8.8.8 . so i can also use the diagnostic feature in mwan when the sstp goes down

and something I learnt today. how to determine the proper MTU for your vpn connection

ping -c 4 -s 1472 -M do xxx.xxx.xxx.xxx ( your vpn address)

 ping -c 4 -s 1472 -M do xxx.xxx.xxx.xxx
PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 1472(1500) bytes of data.
^C
---  xxx.xxx.xxx.xxx ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3074ms

 ping -c 4 -s 1372 -M do xxx.xxx.xxx.xxx
PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 1372(1400) bytes of data.
1380 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=53 time=246 ms
1380 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=53 time=178 ms
1380 bytes from xxx.xxx.xxx.xxx: icmp_seq=3 ttl=53 time=171 ms
1380 bytes from xxx.xxx.xxx.xxx: icmp_seq=4 ttl=53 time=176 ms

--- xxx.xxx.xxx.xxx ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 170.810/192.550/245.923/30.916 ms
 ping -c 4 -s 1376 -M do xxx.xxx.xxx.xxx
PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 1376(1404) bytes of data.

--- xxx.xxx.xxx.xxx ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3058ms

just keep lowering the MRU size until you reach the limit of where it ping functions . and in the case of mine it MRU of 1372 and MTU of 1400 adjust your MTU to 1400 for your upper limit of your SSTP setting