Documentation ¶
Index ¶
- Constants
- func DeleteRoute(c *Client, serverId, routeId string) error
- func UpdatePublicAccessAddress(c *Client, newAddress string) (*http.Response, error)
- type AdminUser
- type AttachConf
- type Client
- type Config
- type ConnectionFile
- type Organization
- type PritunlTotalConfig
- type RequestOpts
- type RouteAddOpts
- type RouteDetail
- type RouteUpdateOpts
- type UserAddOpts
- type UserDetail
- type UserUpdateOpts
- type VpnServer
Constants ¶
const ( DEFAULT_ADMIN_USER = "pritunl" DEFAULT_ORGANIZATION = "default" DEFAULT_ROUTE = "0.0.0.0/0" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AdminUser ¶
type AdminUser struct { Id string `json:"id"` Username string `json:"username"` AuthApi bool `json:"auth_api"` Token string `json:"token"` Secret string `json:"secret"` SuperUser bool `json:"super_user"` }
AdminUser 管理账号配置
func GetAdminUserList ¶
GetAdminUserList 获取管理员账号列表
type AttachConf ¶
type AttachConf struct { Id string `json:"id"` // 组织id Server string `json:"server"` // server id Name string `json:"name,omitempty"` // 组织名称 }
AttachConf 添加组织的配置
func AttachOrganizationToServer ¶
func AttachOrganizationToServer(c *Client, conf AttachConf) (*AttachConf, error)
AttachOrganizationToServer 为server添加一个组织,一个在pritunl中,一个vpn server必须要属于某个组织
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client pritunl客户端
type Config ¶
type Config struct { ApiToken string // api token ApiSecret string // api secret HttpProtocol string // http协议类型,默认是https Host string // pritunl主机地址 Context *context.Context }
Config pritunl客户端配置
type ConnectionFile ¶
type ConnectionFile struct { Name string `json:"name"` // 连接文件名,以.ovpn为后缀,可直接在openvpn客户端导入 Content []byte `json:"content"` // 连接文件的内容 }
ConnectionFile 连接配置文件
func ExportUserConnectFile ¶
func ExportUserConnectFile(c *Client, organizationId, userId string) (*ConnectionFile, error)
ExportUserConnectFile 导出用户的连接配置, 导出的是配置文件的tar包的内容,需要自己按需获取解压内容
type Organization ¶
type Organization struct { Id string `json:"id"` Name string `json:"name"` AuthApi bool `json:"auth_api"` AuthToken string `json:"auth_token"` AuthSecret string `json:"auth_secret"` UserCount int `json:"user_count"` }
Organization 组织数据结构
func GetOrganizationList ¶
func GetOrganizationList(c *Client) ([]Organization, error)
GetOrganizationList 获取组织列表
type PritunlTotalConfig ¶
type PritunlTotalConfig struct { PublicAddress string `json:"publicAddress"` // 服务对外地址 AdminUserId string `json:"adminUserId"` // 默认的管理员账号id ApiToken string `json:"apiToken"` // api token ApiSecret string `json:"apiSecret"` // api secret VpnServerName string `json:"vpnServerName"` // vpn server名称 VpnServerId string `json:"vpnServerId"` // vpn server id VpnServerState string `json:"vpnServerState"` // vpn server的状态,online offline VpnNetwork string `json:"vpnNetwork"` // vpn网段 VpnPort int `json:"vpnPort"` // vpn端口 OrganizationId string `json:"organizationId"` // 组织id Route string `json:"route"` // vpn连接的内部网络路由 RouteId string `json:"routeId"` // vpn连接的内部网络的路由id RouteUseNat bool `json:"routeUseNat"` // vpn连接的内部网络是否启用nat模式 }
PritunlTotalConfig 一个正常运行着的完整vpn服务所用到的配置
func InitVpnServer ¶
func InitVpnServer(adminIp, publicAddr, network string, useNat bool, apiToken, apiSecret string) (*PritunlTotalConfig, error)
InitVpnServer 一键初始化一个vpn服务。包括修改默认的认证key,创建vpn server、配置组织、路由、启动服务等
type RequestOpts ¶
type RequestOpts struct { // RequestParam 查询参数 RequestParam map[string]string // JSONBody 可为空,如果不为空的话,content-type变为application/json,不能和RawBody同时使用 JSONBody interface{} // RawBody 可为空,不为空的话,会直接赋值给http Request,且不会额外加application/json的头 RawBody io.Reader // JSONResponse 如果被指定的话,响应体将会被解析到这个字段 JSONResponse interface{} // OkCodes 指定属于正常响应的状态码 OkCodes []int // MoreHeaders 特定的http 头,如果不指定,会被默认的请求头覆盖 MoreHeaders map[string]string // OmitHeaders 默认的请求头 OmitHeaders []string // KeepResponseBody 是否保留原始的响应体,如果上层业务有进一步解析的需求的话,应该置为true KeepResponseBody bool }
type RouteAddOpts ¶
type RouteAddOpts struct { Id string `json:"id,omitempty"` Server string `json:"server"` // vpn server id Network string `json:"network"` // 路由的网段 Nat bool `json:"nat"` // 针对此网段是否采用nat模式,否则就是路由模式 }
RouteAddOpts 路由添加配置
type RouteDetail ¶
type RouteDetail struct { Id string `json:"id,omitempty"` // 路由id, 添加路由时可为空 Server string `json:"server"` // vpn server id Network string `json:"network"` // 路由的网段 Nat bool `json:"nat"` // 针对此网段是否采用nat模式,否则就是路由模式 }
RouteDetail 针对内部网段的路由配置信息
func GetServerRouteList ¶
func GetServerRouteList(c *Client, serverId string) ([]RouteDetail, error)
GetServerRouteList 获取指定vpn服务的路由列表
func UpdateRoute ¶
func UpdateRoute(c *Client, route RouteUpdateOpts) (*RouteDetail, error)
UpdateRoute 更新路由配置
type RouteUpdateOpts ¶
type RouteUpdateOpts struct { Id string `json:"id"` // 路由id Server string `json:"server"` // vpn server id Network string `json:"network,omitempty"` // 路由的网段 Nat bool `json:"nat,omitempty"` // 针对此网段是否采用nat模式,否则就是路由模式 }
RouteUpdateOpts 路由添加配置
type UserAddOpts ¶
UserAddOpts 用户添加配置
type UserDetail ¶
type UserDetail struct { Id string `json:"id"` Organization string `json:"organization"` OrganizationName string `json:"organization_name"` Name string `json:"name"` Email string `json:"email"` Disabled bool `json:"disabled"` // 是否被禁用 }
UserDetail 用户详情
func EnableDisableUser ¶
func EnableDisableUser(c *Client, conf UserUpdateOpts) (*UserDetail, error)
EnableDisableUser 启用禁用用户
type UserUpdateOpts ¶
type UserUpdateOpts struct { UserId string `json:"userId"` OrganizationId string `json:"organizationId"` Disabled bool `json:"disabled"` // 是否禁用 }
UserUpdateOpts 用户更新选项
type VpnServer ¶
type VpnServer struct { Name string `json:"name,omitempty"` // 不给的话由本包自动生成 Id string `json:"id,omitempty"` // 创建server时不需要传递此参数 Network string `json:"network,omitempty"` // 不给的话由本包自动生成一个,必须满足[10,172,192].[0-255,16-31,168].[0-255].0/[8-24] Port int `json:"port,omitempty"` Protocol string `json:"protocol,omitempty"` // 不给的话默认为udp Cipher string `json:"cipher,omitempty"` // 不给的话默认为aes128 Hash string `json:"hash,omitempty"` // 不给的话默认为sha1 RestrictRoutes bool `json:"restrict_routes,omitempty"` NetworkMode string `json:"network_mode,omitempty"` // 不给的话默认为tunnel Status string `json:"status,omitempty"` // 服务的状态 }
VpnServer vpn server实例配置
func CreateVpnServer ¶
CreateVpnServer 创建一个新的vpn server, 返回值是ServerCreateConfig