# SoftEther VPN Client Guide

> Set up SoftEther VPN Client - create virtual network adapters, connect to the server over SSL-VPN, and manage accounts and routes

Source: https://opennix.org/en/docs/softether-vpn/manual/softether-vpn-client-guide/

SoftEther VPN Client is VPN client software with a virtual network adapter feature that lets you connect to a Virtual Hub on a SoftEther VPN Server.

## Operating system requirements
### Windows
- Windows 10/11 (recommended)
- Windows 8.1/8 
- Windows 7 SP1 
- Windows Server 2019/2016/2012 

**Architectures**: x86, x64

### Linux
- Ubuntu 18.04 LTS and newer 
- Red Hat Enterprise Linux 7+ 
- CentOS 7+ 
- Debian 9+ 
- SUSE Linux

**Architectures**: x86, x64, ARM

## Using the VPN Client
### Installing the service

After SoftEther VPN Client is installed, the system creates the "SoftEther VPN Client Service", which runs in the background and provides VPN functionality.

### Client components

- SoftEther VPN Client Service (vpncsvc.exe)
  - Core client service 
  - Runs in the background 
  - Manages virtual adapters

- SoftEther VPN Client Manager (vpncmgr.exe)
  - Graphical management interface 
  - Connection configuration 
  - Status monitoring

- vpncmd 
  - Command-line utility 
  - Scripting and automation

## Virtual network adapter

SoftEther VPN Client implements VPN communication by creating a virtual network adapter in the system.
#### Creating a virtual adapter
```shell

# Create a new virtual adapter
vpncmd localhost /client /cmd:NicCreate "MyVPN Connection"

```
#### Managing adapters

```shell
# List virtual adapters
vpncmd localhost /client /cmd:NicList

# Delete an adapter
vpncmd localhost /client /cmd:NicDelete "MyVPN Connection"
```

## Configuring the connection to the VPN Server
#### Creating a connection profile
```shell

# Create a new connection
vpncmd localhost /client /cmd:AccountCreate "Company VPN" /SERVER:vpn.company.com:443 /HUB:CORPORATE /USERNAME:john /NICNAME:"MyVPN Connection"

# Set the password
vpncmd localhost /client /cmd:AccountPasswordSet "Company VPN" /PASSWORD:mypassword /TYPE:standard

```
#### Configuring connection parameters

```shell

# Configure additional parameters
vpncmd localhost /client /cmd:AccountSet "Company VPN" /KEEPALIVE:yes /USECOMPRESS:yes /USEENCRYPT:yes

```
#### Managing connections
```shell

# Connect
vpncmd localhost /client /cmd:AccountConnect "Company VPN"

# Disconnect
vpncmd localhost /client /cmd:AccountDisconnect "Company VPN"

# Connection status
vpncmd localhost /client /cmd:AccountStatusGet "Company VPN"

```

## Automatic connection
#### Configuring autostart
```shell

# Enable automatic connection at startup
vpncmd localhost /client /cmd:AccountStartupSet "Company VPN" /ENABLE:yes

```
#### Reconnection policies

```shell

# Configure automatic reconnection
vpncmd localhost /client /cmd:AccountRetrySet "Company VPN" /NUM:10 /INTERVAL:15

```
## Certificates and advanced authentication
#### Using client certificates

```shell

# Add a certificate
vpncmd localhost /client /cmd:CertAdd /CERTFILE:client.crt /KEYFILE:client.key

# Configure certificate-based authentication
vpncmd localhost /client /cmd:AccountSet "Company VPN" /AUTH:cert /CERT:client.crt

```
#### Smart cards

```shell

# Configure smart card authentication
vpncmd localhost /client /cmd:AccountSet "Company VPN" /AUTH:secure /SECUREPASSWORD:pin

```

## Proxies and firewalls

#### Configuring an HTTP proxy

```shell

# Configure the connection through an HTTP proxy
vpncmd localhost /client /cmd:AccountProxySet "Company VPN" /TYPE:http /SERVER:proxy.company.com:8080 /USERNAME:proxyuser /PASSWORD:proxypass

```
#### Bypassing firewalls

```shell

# Enable NAT traversal mode
vpncmd localhost /client /cmd:AccountSet "Company VPN" /DISABLEUDPACCELERATION:yes /USEUDP:no

```
## Monitoring and diagnostics
#### Viewing statistics
```shell

# Connection statistics
vpncmd localhost /client /cmd:AccountStatusGet "Company VPN"

# Detailed session information
vpncmd localhost /client /cmd:SessionGet "Company VPN"

```
#### Logging
```shell

# Enable detailed logging
vpncmd localhost /client /cmd:LogEnable packet /SWITCH:yes

```

