A daemon for SoftEther VPN client.
Since SoftEther is lacking a daemon for macOS and Linux, this is a wrapper around the client provided by SoftEther.
It starts the VPN client, handles IP address, static route management and vpnclient service & connection failures.
- Implemented in C# on .NET Core 2.1
- Background service for macOS (10.13 or higher)
- Background daemon for Linux (Ubuntu 18.04 or higher)
- Automatic IP address assignment on virtual TAP devices
- Automatic assignment and release of static routes associated with a VPN connection
- Automatic restart of the
vpnclientservice in cases of failures - Configuration via .NET Core
appsettings.jsonfile
tuntaposxis required. You can download it here
- There is a
.pkgpackage available for installation on macOS.
- Compile the daemon by executing
./publish.shin the foldersrc/Logixware.SoftEther.Client.Daemon. - Copy the output from
src/Logixware.SoftEther.Client.Daemon/bin/Release/netcoreapp2.1/osx.10.13-x64/publishto/Library/Application Support/Logixware/Logixware.SoftEther.Client.Daemon - Copy
src/Logixware.SoftEther.Client.Daemon/de.logixware.SoftEther.Client.Daemon.plistto/Library/LaunchDaemons - Copy
src/Logixware.SoftEther.Client.Daemon/appsettings.example.macos.jsonto/Library/Preferences/Logixware/Logixware.SoftEther.Client.Daemonand rename toappsettings.json - Download the official client from the website
- Compile it and copy the output to
/Library/Application Support/Softether/vpnclient
- Compile the daemon by executing
./publish.shin the foldersrc/Logixware.SoftEther.Client.Daemon. - Copy the output from
src/Logixware.SoftEther.Client.Daemon/bin/Release/netcoreapp2.1/ubuntu.18.04-x64/publishto/opt/logixware/Logixware.SoftEther.Client.Daemon - Copy
src/Logixware.SoftEther.Client.Daemon/vpnclient.serviceto/lib/systemd/system - Copy
src/Logixware.SoftEther.Client.Daemon/appsettings.example.linux.jsonto/etc/logixware/Logixware.SoftEther.Client.Daemonand rename toappsettings.json - Download the official client from the website
- Compile it and copy the output to
/opt/softether/vpnclient
Open the config file in your favorite text editor and add configurations. The network name must match the connection
name in the vpnclient service.
- The location on macOS is
/Library/Preferences/Logixware/Logixware.SoftEther.Client.Daemon/appsettings.json - The location on Linux is
/etc/logixware/Logixware.SoftEther.Client.Daemon/appsettings.json
{
"Logging":
{
"LogLevel":
{
"Default": "Information"
}
},
"AllowedHosts": "*",
"VPN":
{
"CommandLineInterface":
{
"PathToClient": "/Library/Application Support/SoftEther/vpnclient/vpnclient",
"PathToCli": "/Library/Application Support/SoftEther/vpnclient/vpncmd",
"CliPassword": ""
},
"Platform":
{
"Mac":
{
"TapKextIdentifier": "net.sf.tuntaposx.tap",
"PathToTapKext": "/Library/Extensions/tap.kext"
}
},
"ConnectionAttemptsBeforeClientRestart": 5,
"Networks":
[
{
"Name": "logixware",
"ConnectionTestHost": "192.168.0.254",
"AlwaysOn": true,
"IPv4":
{
"Address": "192.168.0.1",
"Mask": "255.255.255.0",
"Routes":
[
{
"Network": "192.168.1.0",
"Prefix": "24",
"Gateway": "192.168.0.100"
}
]
},
"IPv6":
{
"Address": "fdd3:82c4:f610:c08f:fdd3:82c4:f610:1",
"Prefix": 64
}
}
]
}
}- Icons made by Roundicons. Roundicons from Flaticon is licensed by Creative Commons BY 3.0
Please feel free to download, fork and/or provide any feedback!