Debian 12 (Bookworm) SSTP VPN Issue

Troubleshooting certain websites that fail to load after a successful VPN connection

Summary

After upgrading from Debian 11 (Bullseye) to Debian 12 (Bookworm), SSTP VPN connections may establish successfully, but some HTTPS websites fail to load.  For example: google.com may work but news.yahoo.co.jp does not.

Observed Symptoms

·         SSTP VPN connection establishes successfully.

·         DNS resolution works normally.

·         Some websites work (for example, Google).

·         Some websites fail to load (for example, Yahoo Japan).

·         Firefox and Edge exhibit the same behavior.

·         curl -v stalls after sending the TLS ClientHello.

Example:

$ curl -v https://www.yahoo.co.jp

*   Trying 182.22.23.252:443…

* Connected to www.yahoo.co.jp (182.22.23.252) port 443 (#0)

* ALPN: offers h2,http/1.1

* TLSv1.3 (OUT), TLS handshake, Client hello (1):

No further output is displayed.

Affected Versions

Environment where the issue was reproduced:

PackageVersionArchitectureDescription
libsstp-api-01.0.18-1amd64SSTP client API library
network-manager-sstp1.3.0-2amd64NetworkManager SSTP plugin core
network-manager-sstp-gnome1.3.0-2amd64NetworkManager SSTP GNOME interface
sstp-client1.0.18-1amd64SSTP VPN client

Root Cause

The issue appears to be caused by an MTU / PMTU problem on the PPP interface created by SSTP. Although the VPN tunnel connects successfully, larger TLS packets are dropped somewhere along the tunnel path.

Reducing the MTU on the PPP interface immediately resolves the problem.

Troubleshooting

1. Show Current MTU

ip link show ppp0

Adjust the interface name if your system uses ppp1, ppp2, etc.

Example:

ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500

2. Test Lower MTU

Temporarily lower the MTU:

sudo ip link set dev ppp0 mtu 1420

You may wish to test multiple values:

MTU values to test
1450, 1440, 1430, 1420, 1400, 1350, 1300

Use the highest value that remains stable.

3. Verify Fix

Test previously failing sites:

curl -v https://www.yahoo.co.jp

or

curl -4 -I https://www.yahoo.co.jp

If the website now loads correctly, the MTU issue has been confirmed.

Permanent Fix

Create a PPP ip-up Hook

Create the following file:

sudo nano /etc/ppp/ip-up.d/99-sstp-mtu

Contents:

#!/bin/sh

/usr/sbin/ip link set dev “$1” mtu 1420

logger “PPP ip-up: set MTU 1420 on $1”

Make it executable:

sudo chmod 755 /etc/ppp/ip-up.d/99-sstp-mtu

Reconnect the VPN

Disconnect and reconnect the SSTP VPN connection.

Confirm the Fix

Verify MTU

ip link show ppp0

Expected output:

mtu 1420

Verify the Hook Executed

journalctl -b | grep “PPP ip-up”

Expected output:

PPP ip-up: set MTU 1420 on ppp0

Final Notes

·         The working MTU discovered in this environment was 1420.

·         If desired, test larger values and keep the highest value that works reliably.

·         The symptoms only became apparent after upgrading from Debian 11 (Bullseye) to Debian 12 (Bookworm).

·         Lowering the PPP MTU resolves TLS handshake failures for affected websites.

Quick Reference

Show MTU

ip link show ppp0

Temporarily Change MTU

sudo ip link set dev ppp0 mtu 1420

Verify Fix

curl -v https://www.yahoo.co.jp

Permanent Fix Script

sudo nano /etc/ppp/ip-up.d/99-sstp-mtu

sudo chmod 755 /etc/ppp/ip-up.d/99-sstp-mtu

Confirm Hook Execution

journalctl -b | grep “PPP ip-up”

Keywords: Debian 12, Bookworm, SSTP, SSTP VPN, network-manager-sstp, TLS handshake, MTU, PMTU, PPP, pppd, Yahoo Japan, curl, VPN troubleshooting.