SoftEther VPN Client
Introduction
The guide was written for version 21.02 (current at time of writing). I experienced severe issues in 22.03, so your mileage on current-as-of-update might vary.
This how-to describes the method for setting up the
SoftEther VPN client on OpenWrt.
-
-
-
The guide will use both LuCI and CLI; feel free to use LuCI-equivalent CLI commands where appropriate. CLI can alternatively be almost entirely avoided with access to a Windows PC and SoftEther's remote management tool.
Goals
Instructions
1. Install Packages
Log into LuCI
Go to “System” → “Software”
Click “Update lists...”
Filter the list for “softether”
Install “softethervpn5-libs”
Install “softethervpn5-client”
Install “luci-app-softether” (somewhat optional - very limited LuCI interface at this point)
Reboot the router
Note: If you have a Windows PC, you can use the remote client manager (“Manage Remote Computer's SoftEther VPN Client” in Start) to set everything up via GUI after issuing the command “RemoteEnable” in command line client management. It is also possible to drop an existing configuration file into place via SCP.
The guide here will show configuration with CLI/SSH, for which you issue the following command:
vpncmd
By using vpncmd program, the following can be achieved.
1. Management of VPN Server or VPN Bridge
2. Management of VPN Client
3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)
Select 1, 2 or 3:
Specify the host name or IP address of the computer that the destination VPN Client is operating on.
If nothing is input and Enter is pressed, connection will be made to localhost (this computer).
Hostname of IP Address of Destination:
Connected to VPN Client "localhost".
VPN Client>
Create a
VPN network device by issuing the following command (replacing <devName> with your name of choice)
1)
NicCreate <devName>
Configure the
VPN connection by issuing the following command (replacing <accountName> with your name of choice)
AccountCreate <accountName>
Destination VPN Server Host Name and Port Number: <server address or IP>:<server port>
Destination Virtual Hub Name: <server virtual hub>
Connecting User Name: <user name>
Used Virtual Network Adapter Name: <devName>
AccountPasswordSet <accountName>
Log into LuCI
First, you need to set up a suitable interface:
Go to “Network” → “Interfaces”
Click “Add new interface...”
For “Name”, choose and enter an <ifName> (e.g. “
VPN”)
For “Protocol”, select “
DHCP client”
For “Device”, select the Ethernet adapter “vpn_<devName>” (name chosen in part 2)
Click “Create interface”
Go to “Advanced Settings” tab
Disable “Use default gateway”
Disable “Delegate
IPv6 prefixes”
2)
Go to “Firewall Settings” tab
Select “wan” from the drop-down
3)
Click “Save”
Click “Save & Apply”
The following block of steps were necessary on my setup to make things work, but that might be due to server-side issues
Go to “Devices” tab
For “vpn_<devName>”, click “Configure”
Disable “Enable
IPv6” checkbox
Click “Save”
Click “Save & Apply”
Lastly you just need to set up routing. My setup works well with specific static routes as shown here (i.e., VPN use only for specific connections); I haven't gotten it to work with VPN-as-default routing however.
Go to “Network” → “Static Routes”
Click “Add...”
For “Interface”, select <ifName> (created earlier)
For “Target”, specify the remote
IP you want
VPN traffic routing for
For “Netmask”, specify the remote
IP range for the above address
For “Gateway”, specify the
VPN server gateway
IP. This will depend on how you have set up the
VPN-server-side
DHCP (e.g. via Softether
VPN server SecureNAT, in which case the default I believe is 192.168.30.1).
Click “Save”
Click “Save & Apply”
Reboot the router
4. Starting/Stopping the VPN
Note: If you have a Windows PC, you can again use the remote client manager (“Manage Remote Computer's SoftEther VPN Client” in Start) for these parts.
The guide will again use CLI/SSH, for which you issue the following command:
vpncmd
By using vpncmd program, the following can be achieved.
1. Management of VPN Server or VPN Bridge
2. Management of VPN Client
3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)
Select 1, 2 or 3:
Specify the host name or IP address of the computer that the destination VPN Client is operating on.
If nothing is input and Enter is pressed, connection will be made to localhost (this computer).
Hostname of IP Address of Destination:
Connected to VPN Client "localhost".
VPN Client>
To start the VPN, issue the following command (replacing <accountName> with your chosen one from step 2)
AccountConnect <accountName>
To stop the VPN, issue the following command (replacing <accountName> with your chosen one from step 2)
AccountConnect <accountName>
To auto-start the VPN on boot, issue the following command (replacing <accountName> with your chosen one from step 2)
AccountStartupSet <accountName>
AccountStartupRemove <accountName>
Testing
Note: traceroute doesn't work properly for me with the VPN running, unfortunately. However, you can confirm routing e.g. by setting up static routes for an IP geolocation server or similar and checking that way.
Troubleshooting
If you've installed the “luci-app-softether” package, you can check the connection status in LuCI under System → Softether. If you have a Windows PC, you can use the remote client manager for this. Or you can again use vpncmd (refer to the official documentation).