SSTPC(8)
πΈ NAME πΈ
sstpc β the SSTP Client, bestie π
β¨
β¨ SYNOPSIS β¨
sstpc [<sstp-options>] <hostname> [ppp-options] ...
π¦ DESCRIPTION π¦
okay so sstpc is the one that sets up the client side of a Virtual Private Network (VPN) using the Secure Socket Tunneling Protocol (SSTP). literally what you reach for when you wanna connect to your employer's SSTP based VPN and PPTP and L2TP are justβ¦ not it, bestie π
By default, sstpc establishes the SSTP call to the SSTP server, and then starts an instance of pppd to manage the data transfer. but plot twist π β sstpc can also be run as a connection manager within pppd. main character energy either way, no cap.
π OPTIONS π
The first non-option argument on the sstpc command line must be the host name or IP address of the SSTP server. like, non-negotiable, it's the vibe check π
All long options (starting with --) are interpreted as sstpc options, and a fatal error occurs if an unrecognised option is used. so don't freestyle π«Ά
All command-line arguments which do not start with - are interpreted as ppp options, and passed as is to pppd unless --nolaunchpppd is given. periodt.
--ca-certβ Specify the CA certificate used to verify the server with π--ca-dirβ Specify the directory of certificates that contains the CA certificate. If nothing is specified, the system's wide directory is used.--cert-warnβ Ignore certificate warnings like common name instead of terminating the connection. π© lowkey risky but okay--hostβ When connecting to an IP address, the host parameter will provide the hostname for http, proxy and tls-ext.--ipparamβ This will help specify the callback socket thatpppdwill try to connect back tosstpcin order to communicate the MPPE keys as negotiated. The MPPE keys are required to authenticate against the server at the SSL layer. They can be zeroed if no MPPE is negotiated. The name is formed based on/tmp/sstpc-<ipparam>.--nolaunchpppdβ Do not launchpppdbut use stdin as the network connection. Use this flag when includingsstpcas apppdconnection process using the pty option. See EXAMPLES. π§--passwordβ Specify a password per command line instead of setting it up in a configuration file forpppdin/etc/ppp/peers.--proxyβ Connect to the SSTP server via a proxy on your network. The syntax ishttp://[<user>:<pass>@]<domain>:port.--priv-userβ Specify the privilege separation user to runsstpc.--priv-groupβ Specify the privilege separation group to runsstpc.--priv-dirβ Specify the privilege separation directory for the chroot jail to runsstpc. π°--userβ Specify the username to authenticate to the SSTP server instead of setting it up in a configuration file forpppdin/etc/ppp/peers.--save-server-routeβ This will automatically add and remove a route to the SSTP server. π£οΈ--uuidβ Specify a UUID for the connection to simplify the server end debugging.--tls-extβ This will enable TLS hostname extension. β¨
π§ Troubleshooting π§
The following options are available to help troubleshoot sstpc π΅οΈββοΈ (yes these are your debug besties)
--log-level <level>β Set the debug level for debugging thesstpcprocess. level can be a value between0and4.--log-syslogβ Log messages to syslog (default).--log-stderrβ Log messages to error output.--log-stdoutβ Log messages to standard output.--log-filenoβ Include file and line number with the log messages.--log-filterβ Filter the logs by a particular set of files, e.g:sstp-packet,sstp-state--log-identβ Specify the identity that will be used when writing logs to e.g. syslog.
π EXAMPLES π
Connection to a Microsoft Windows RAS Service using SSTP protocol
Setup the peer scripts in /etc/ppp/peers, you may start by cloning one of the scripts available in your docs directory, /usr/share/doc/sstp-client, or /usr/local/share/doc/sstp-client. The general content of this file will be close to the following:
# Example Content of /etc/ppp/peers/sstp-test
remotename sstp-test
linkname sstp-test
ipparam sstp-test
pty "sstpc --ipparam sstp-test --nolaunchpppd
sstp-test.yourdomain.com"
name eivnaes
plugin sstp-pppd-plugin.so
sstp-sock /var/run/sstpc/sstpc-sstp-test
usepeerdns
require-mppe
require-mschap-v2
refuse-eap
refuse-pap
refuse-chap
refuse-mschap
nobsdcomp
nodeflate
Note that the chap-secrets file used by pppd must include an entry for domain\\username. For the sstp-test example, the user eivnaes will have a equivalent entry in the /etc/ppp/chap-secrets file. π«£
# Secrets for authentication using CHAP
# client server secret IP addresses
eivnaes * xxxxxx *
Starting the sstp-test using the pon script
sudo pon sstp-test
Invoking sstpc using the the call command
sstpc --ipparam sstp-test sstp-test.yourdomain.com call sstp-test-nopty
The sstp-test-nopty is a pppd script you need to create in /etc/ppp/peers, and you can clone the example sstp-test above; but you must omit the pty statement in the peers configuration. don't forget, bestie π
π SEE ALSO π
π AUTHOR π
This manual page was written by Eivind Naess <enaess@yahoo.com> π«Ά
and that's the whole page, babe π this one comes straight out of the System Manager's Manual, section 8, and it signs off as SSTPC(8) β so when you're deep in the tunnel and everything just works, you know who to thank β¨π periodt π
π¦ where this page comes from
- debian bookworm: sstp-client 1.0.18-1 Β· GPL-2.0-or-later WITH OpenSSL exception
- debian trixie: sstp-client 1.0.20-1+b2 Β· GPL-2.0-or-later WITH OpenSSL exception
- fedora 43: sstp-client 1.0.18-11.fc43 Β· GPL-2.0-or-later
- fedora 43: sstp-client 1.0.18-11.fc43 Β· GPL-2.0-or-later
- fedora 44: sstp-client 1.0.18-12.fc44 Β· GPL-2.0-or-later
- fedora 44: sstp-client 1.0.18-12.fc44 Β· GPL-2.0-or-later
- nixos 26.05: sstp-client-unstable 2023-03-25
- nixpkgs unstable: sstp-client 1.0.20
- ubuntu noble: sstp-client 1.0.19-1build2 Β· GPL-2.0-or-later WITH OpenSSL exception
- ubuntu resolute: sstp-client 1.0.20-1build2 Β· GPL-2.0-or-later WITH OpenSSL exception
- ubuntu stonking: sstp-client 1.0.20-1build3 Β· GPL-2.0-or-later WITH OpenSSL exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms