Thanks to visit codestin.com
Credit goes to github.com

Skip to content
forked from tlslink/sslcon

Golang implementation of the OpenConnect VPN Protocol for client side development

License

Notifications You must be signed in to change notification settings

showsmall/vpnagent

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vpnagent

This is a Golang implementation of the OpenConnect VPN Protocol for client side development.

For desktop OS, similar to Cisco Secure Client's vpnagentd, it should be run as a separate background service with root privileges, so that the front-end UI does not require an administrator authorization every time it starts. The API is exposed through the WebSocket and JSON-RPC 2.0 protocols. Anyone can use any front-end tool to implement their own GUI.

Here is an example showing how to use this project.

Note: The implementation of the VPN protocol itself has nothing to do with the routing table settings of the operating system. This repository contains simple routing settings under Linux. It would be great if someone has a more elegant implementation of cross-platform routing table operations.

Currently the following servers are supported,

APIs

The full VPN workflow test is currently only available under Linux, You can use any WebSocket tool to test the API.

ws://127.0.0.1:6210/rpc

status

{
  "jsonrpc": "2.0",
  "method": "status",
  "id": 0
}

config

{
  "jsonrpc": "2.0",
  "method": "config",
  "params": {
    "log_level": "Debug",
    "log_path": "/tmp/test.log"
  },
  "id": 1
}

connect

{
  "jsonrpc": "2.0",
  "method": "connect",
  "params": {
    "host": "vpn.test.com",
    "username": "vpn",
    "password": "123456",
    "group": ""
  },
  "id": 2
}

disconnect

{
  "jsonrpc": "2.0",
  "method": "disconnect",
  "id": 3
}

reconnect

{
  "jsonrpc": "2.0",
  "method": "reconnect",
  "id": 4
}

stat

{
  "jsonrpc": "2.0",
  "method": "stat",
  "id": 7
}

About

Golang implementation of the OpenConnect VPN Protocol for client side development

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%