From 231f5d978991b1348cb60685ff656b1e8d088c0e Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Wed, 23 Oct 2024 09:05:32 +0000 Subject: [PATCH 1/6] initial code --- .github/ISSUE_TEMPLATE/bug.yml | 1 + .github/labels.yml | 2 + Dockerfile | 2 +- README.md | 4 +- .../settings/openvpnselection.go | 2 +- internal/configuration/settings/provider.go | 1 + internal/configuration/settings/wireguard.go | 1 + .../settings/wireguardselection.go | 18 +- internal/constants/providers/providers.go | 2 + internal/models/server.go | 2 + internal/provider/ovpn/connection.go | 15 + internal/provider/ovpn/connection_test.go | 128 + internal/provider/ovpn/openvpnconf.go | 23 + internal/provider/ovpn/provider.go | 30 + internal/provider/ovpn/updater/api.go | 185 + internal/provider/ovpn/updater/api_test.go | 117 + .../provider/ovpn/updater/roundtrip_test.go | 9 + internal/provider/ovpn/updater/servers.go | 73 + .../provider/ovpn/updater/servers_test.go | 203 + internal/provider/ovpn/updater/updater.go | 15 + internal/provider/providers.go | 2 + internal/provider/utils/connection.go | 5 +- internal/provider/utils/port.go | 17 +- internal/provider/utils/port_test.go | 45 + internal/storage/filter.go | 23 + internal/storage/formatting.go | 12 +- internal/storage/servers.json | 5094 +++++++++++++++++ 27 files changed, 6017 insertions(+), 14 deletions(-) create mode 100644 internal/provider/ovpn/connection.go create mode 100644 internal/provider/ovpn/connection_test.go create mode 100644 internal/provider/ovpn/openvpnconf.go create mode 100644 internal/provider/ovpn/provider.go create mode 100644 internal/provider/ovpn/updater/api.go create mode 100644 internal/provider/ovpn/updater/api_test.go create mode 100644 internal/provider/ovpn/updater/roundtrip_test.go create mode 100644 internal/provider/ovpn/updater/servers.go create mode 100644 internal/provider/ovpn/updater/servers_test.go create mode 100644 internal/provider/ovpn/updater/updater.go diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index f3ec270b7..0c866fed4 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -56,6 +56,7 @@ body: - IVPN - Mullvad - NordVPN + - OVPN - Privado - Private Internet Access - PrivateVPN diff --git a/.github/labels.yml b/.github/labels.yml index 73ee66006..595cf0218 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -62,6 +62,8 @@ color: "cfe8d4" - name: "☁️ NordVPN" color: "cfe8d4" +- name: "☁️ OVPN" + color: "cfe8d4" - name: "☁️ Perfect Privacy" color: "cfe8d4" - name: "☁️ PIA" diff --git a/Dockerfile b/Dockerfile index 1415abcbe..9cfce226d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -147,7 +147,7 @@ ENV VPN_SERVICE_PROVIDER=pia \ # # ProtonVPN only: SECURE_CORE_ONLY= \ TOR_ONLY= \ - # # Surfshark only: + # # Surfshark and ovpn only: MULTIHOP_ONLY= \ # # VPN Secure only: PREMIUM_ONLY= \ diff --git a/README.md b/README.md index b5ca31f83..17aa70a18 100644 --- a/README.md +++ b/README.md @@ -57,10 +57,10 @@ Lightweight swiss-knife-like VPN client to multiple VPN service providers ## Features - Based on Alpine 3.20 for a small Docker image of 35.6MB -- Supports: **AirVPN**, **Cyberghost**, **ExpressVPN**, **FastestVPN**, **Giganews**, **HideMyAss**, **IPVanish**, **IVPN**, **Mullvad**, **NordVPN**, **Perfect Privacy**, **Privado**, **Private Internet Access**, **PrivateVPN**, **ProtonVPN**, **PureVPN**, **SlickVPN**, **Surfshark**, **TorGuard**, **VPNSecure.me**, **VPNUnlimited**, **Vyprvpn**, **WeVPN**, **Windscribe** servers +- Supports: **AirVPN**, **Cyberghost**, **ExpressVPN**, **FastestVPN**, **Giganews**, **HideMyAss**, **IPVanish**, **IVPN**, **Mullvad**, **NordVPN**, **Ovpn**, **Perfect Privacy**, **Privado**, **Private Internet Access**, **PrivateVPN**, **ProtonVPN**, **PureVPN**, **SlickVPN**, **Surfshark**, **TorGuard**, **VPNSecure.me**, **VPNUnlimited**, **Vyprvpn**, **WeVPN**, **Windscribe** servers - Supports OpenVPN for all providers listed - Supports Wireguard both kernelspace and userspace - - For **AirVPN**, **FastestVPN**, **Ivpn**, **Mullvad**, **NordVPN**, **Perfect privacy**, **ProtonVPN**, **Surfshark** and **Windscribe** + - For **AirVPN**, **FastestVPN**, **Ivpn**, **Mullvad**, **NordVPN**, **Ovpn**, **Perfect privacy**, **ProtonVPN**, **Surfshark** and **Windscribe** - For **Cyberghost**, **Private Internet Access**, **PrivateVPN**, **PureVPN**, **Torguard**, **VPN Unlimited**, **VyprVPN** and **WeVPN** using [the custom provider](https://github.com/qdm12/gluetun-wiki/blob/main/setup/providers/custom.md) - For custom Wireguard configurations using [the custom provider](https://github.com/qdm12/gluetun-wiki/blob/main/setup/providers/custom.md) - More in progress, see [#134](https://github.com/qdm12/gluetun/issues/134) diff --git a/internal/configuration/settings/openvpnselection.go b/internal/configuration/settings/openvpnselection.go index 4f681c9f7..49a7cd7a8 100644 --- a/internal/configuration/settings/openvpnselection.go +++ b/internal/configuration/settings/openvpnselection.go @@ -65,7 +65,7 @@ func (o OpenVPNSelection) validate(vpnProvider string) (err error) { switch vpnProvider { // no restriction on port case providers.Custom, providers.Cyberghost, providers.HideMyAss, - providers.Privatevpn, providers.Torguard: + providers.Ovpn, providers.Privatevpn, providers.Torguard: // no custom port allowed case providers.Expressvpn, providers.Fastestvpn, providers.Giganews, providers.Ipvanish, providers.Nordvpn, diff --git a/internal/configuration/settings/provider.go b/internal/configuration/settings/provider.go index 70b5d9486..c932a49db 100644 --- a/internal/configuration/settings/provider.go +++ b/internal/configuration/settings/provider.go @@ -39,6 +39,7 @@ func (p *Provider) validate(vpnType string, filterChoicesGetter FilterChoicesGet providers.Ivpn, providers.Mullvad, providers.Nordvpn, + providers.Ovpn, providers.Protonvpn, providers.Surfshark, providers.Windscribe, diff --git a/internal/configuration/settings/wireguard.go b/internal/configuration/settings/wireguard.go index c861e8e5f..78003154e 100644 --- a/internal/configuration/settings/wireguard.go +++ b/internal/configuration/settings/wireguard.go @@ -65,6 +65,7 @@ func (w Wireguard) validate(vpnProvider string, ipv6Supported bool) (err error) providers.Ivpn, providers.Mullvad, providers.Nordvpn, + providers.Ovpn, providers.Protonvpn, providers.Surfshark, providers.Windscribe, diff --git a/internal/configuration/settings/wireguardselection.go b/internal/configuration/settings/wireguardselection.go index 2f4bf115b..75cdd2489 100644 --- a/internal/configuration/settings/wireguardselection.go +++ b/internal/configuration/settings/wireguardselection.go @@ -4,6 +4,7 @@ import ( "fmt" "net/netip" + "github.com/qdm12/gluetun/internal/configuration/settings/helpers" "github.com/qdm12/gluetun/internal/constants/providers" "github.com/qdm12/gosettings" "github.com/qdm12/gosettings/reader" @@ -21,7 +22,7 @@ type WireguardSelection struct { // in the internal state. EndpointIP netip.Addr `json:"endpoint_ip"` // EndpointPort is a the server port to use for the VPN server. - // It is optional for VPN providers IVPN, Mullvad, Surfshark + // It is optional for VPN providers IVPN, Mullvad, Ovpn, Surfshark // and Windscribe, and compulsory for the others. // When optional, it can be set to 0 to indicate not use // a custom endpoint port. It cannot be nil in the internal @@ -39,8 +40,9 @@ func (w WireguardSelection) validate(vpnProvider string) (err error) { // Validate EndpointIP switch vpnProvider { case providers.Airvpn, providers.Fastestvpn, providers.Ivpn, - providers.Mullvad, providers.Nordvpn, providers.Protonvpn, - providers.Surfshark, providers.Windscribe: + providers.Mullvad, providers.Nordvpn, providers.Ovpn, + providers.Protonvpn, providers.Surfshark, + providers.Windscribe: // endpoint IP addresses are baked in case providers.Custom: if !w.EndpointIP.IsValid() || w.EndpointIP.IsUnspecified() { @@ -62,12 +64,16 @@ func (w WireguardSelection) validate(vpnProvider string) (err error) { if *w.EndpointPort != 0 { return fmt.Errorf("%w", ErrWireguardEndpointPortSet) } - case providers.Airvpn, providers.Ivpn, providers.Mullvad, providers.Windscribe: + case providers.Airvpn, providers.Ivpn, providers.Mullvad, + providers.Ovpn, providers.Windscribe: // EndpointPort is optional and can be 0 if *w.EndpointPort == 0 { break // no custom endpoint port set } - if vpnProvider == providers.Mullvad { + if helpers.IsOneOf(vpnProvider, + providers.Mullvad, + providers.Ovpn, + ) { break // no restriction on custom endpoint port value } var allowed []uint16 @@ -92,7 +98,7 @@ func (w WireguardSelection) validate(vpnProvider string) (err error) { // Validate PublicKey switch vpnProvider { case providers.Fastestvpn, providers.Ivpn, providers.Mullvad, - providers.Surfshark, providers.Windscribe: + providers.Ovpn, providers.Surfshark, providers.Windscribe: // public keys are baked in case providers.Custom: if w.PublicKey == "" { diff --git a/internal/constants/providers/providers.go b/internal/constants/providers/providers.go index 0c511e5ee..333c4563c 100644 --- a/internal/constants/providers/providers.go +++ b/internal/constants/providers/providers.go @@ -15,6 +15,7 @@ const ( Ivpn = "ivpn" Mullvad = "mullvad" Nordvpn = "nordvpn" + Ovpn = "ovpn" Perfectprivacy = "perfect privacy" Privado = "privado" PrivateInternetAccess = "private internet access" @@ -44,6 +45,7 @@ func All() []string { Ivpn, Mullvad, Nordvpn, + Ovpn, Perfectprivacy, Privado, PrivateInternetAccess, diff --git a/internal/models/server.go b/internal/models/server.go index 1ae92fb6a..2d406231f 100644 --- a/internal/models/server.go +++ b/internal/models/server.go @@ -36,6 +36,8 @@ type Server struct { PortForward bool `json:"port_forward,omitempty"` Keep bool `json:"keep,omitempty"` IPs []netip.Addr `json:"ips,omitempty"` + PortsTCP []uint16 `json:"ports_tcp,omitempty"` + PortsUDP []uint16 `json:"ports_udp,omitempty"` } var ( diff --git a/internal/provider/ovpn/connection.go b/internal/provider/ovpn/connection.go new file mode 100644 index 000000000..170591fd9 --- /dev/null +++ b/internal/provider/ovpn/connection.go @@ -0,0 +1,15 @@ +package ovpn + +import ( + "github.com/qdm12/gluetun/internal/configuration/settings" + "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" +) + +func (p *Provider) GetConnection(selection settings.ServerSelection, ipv6Supported bool) ( + connection models.Connection, err error, +) { + defaults := utils.NewConnectionDefaults(443, 1194, 9929) //nolint:mnd + return utils.GetConnection(p.Name(), + p.storage, selection, defaults, ipv6Supported, p.randSource) +} diff --git a/internal/provider/ovpn/connection_test.go b/internal/provider/ovpn/connection_test.go new file mode 100644 index 000000000..9bef0051a --- /dev/null +++ b/internal/provider/ovpn/connection_test.go @@ -0,0 +1,128 @@ +package ovpn + +import ( + "errors" + "math/rand" + "net/http" + "net/netip" + "testing" + + "github.com/golang/mock/gomock" + "github.com/qdm12/gluetun/internal/configuration/settings" + "github.com/qdm12/gluetun/internal/constants" + "github.com/qdm12/gluetun/internal/constants/providers" + "github.com/qdm12/gluetun/internal/constants/vpn" + "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/common" + "github.com/stretchr/testify/assert" +) + +func Test_Provider_GetConnection(t *testing.T) { + t.Parallel() + + const provider = providers.Ovpn + + errTest := errors.New("test error") + + testCases := map[string]struct { + filteredServers []models.Server + storageErr error + selection settings.ServerSelection + ipv6Supported bool + connection models.Connection + errWrapped error + errMessage string + }{ + "error": { + storageErr: errTest, + errWrapped: errTest, + errMessage: "filtering servers: test error", + }, + "default_openvpn_tcp_port": { + filteredServers: []models.Server{ + {IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 1, 1, 1})}}, + }, + selection: settings.ServerSelection{ + OpenVPN: settings.OpenVPNSelection{ + Protocol: constants.TCP, + }, + }.WithDefaults(provider), + connection: models.Connection{ + Type: vpn.OpenVPN, + IP: netip.AddrFrom4([4]byte{1, 1, 1, 1}), + Port: 443, + Protocol: constants.TCP, + }, + }, + "default_openvpn_udp_port": { + filteredServers: []models.Server{ + {IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 1, 1, 1})}}, + }, + selection: settings.ServerSelection{ + OpenVPN: settings.OpenVPNSelection{ + Protocol: constants.UDP, + }, + }.WithDefaults(provider), + connection: models.Connection{ + Type: vpn.OpenVPN, + IP: netip.AddrFrom4([4]byte{1, 1, 1, 1}), + Port: 1194, + Protocol: constants.UDP, + }, + }, + "default_wireguard_port": { + filteredServers: []models.Server{ + {IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 1, 1, 1})}, WgPubKey: "x"}, + }, + selection: settings.ServerSelection{ + VPN: vpn.Wireguard, + }.WithDefaults(provider), + connection: models.Connection{ + Type: vpn.Wireguard, + IP: netip.AddrFrom4([4]byte{1, 1, 1, 1}), + Port: 9929, + Protocol: constants.UDP, + PubKey: "x", + }, + }, + "default_multihop_port": { + filteredServers: []models.Server{ + {IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 1, 1, 1})}, WgPubKey: "x", PortsUDP: []uint16{30044}}, + }, + selection: settings.ServerSelection{ + VPN: vpn.Wireguard, + }.WithDefaults(provider), + connection: models.Connection{ + Type: vpn.Wireguard, + IP: netip.AddrFrom4([4]byte{1, 1, 1, 1}), + Port: 30044, + Protocol: constants.UDP, + PubKey: "x", + }, + }, + } + + for name, testCase := range testCases { + t.Run(name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + + storage := common.NewMockStorage(ctrl) + storage.EXPECT().FilterServers(provider, testCase.selection). + Return(testCase.filteredServers, testCase.storageErr) + randSource := rand.NewSource(0) + + client := (*http.Client)(nil) + provider := New(storage, randSource, client) + + connection, err := provider.GetConnection(testCase.selection, testCase.ipv6Supported) + + assert.ErrorIs(t, err, testCase.errWrapped) + if testCase.errWrapped != nil { + assert.EqualError(t, err, testCase.errMessage) + } + + assert.Equal(t, testCase.connection, connection) + }) + } +} diff --git a/internal/provider/ovpn/openvpnconf.go b/internal/provider/ovpn/openvpnconf.go new file mode 100644 index 000000000..3e09d54e0 --- /dev/null +++ b/internal/provider/ovpn/openvpnconf.go @@ -0,0 +1,23 @@ +package ovpn + +import ( + "github.com/qdm12/gluetun/internal/configuration/settings" + "github.com/qdm12/gluetun/internal/constants/openvpn" + "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/utils" +) + +func (p *Provider) OpenVPNConfig(connection models.Connection, + settings settings.OpenVPN, ipv6Supported bool, +) (lines []string) { + providerSettings := utils.OpenVPNProviderSettings{ + AuthUserPass: true, + Ciphers: []string{ + openvpn.Chacha20Poly1305, + openvpn.AES256gcm, + openvpn.AES256cbc, + openvpn.AES128gcm, + }, + } + return utils.OpenVPNConfig(providerSettings, connection, settings, ipv6Supported) +} diff --git a/internal/provider/ovpn/provider.go b/internal/provider/ovpn/provider.go new file mode 100644 index 000000000..8503b6681 --- /dev/null +++ b/internal/provider/ovpn/provider.go @@ -0,0 +1,30 @@ +package ovpn + +import ( + "math/rand" + "net/http" + + "github.com/qdm12/gluetun/internal/constants/providers" + "github.com/qdm12/gluetun/internal/provider/common" + "github.com/qdm12/gluetun/internal/provider/ovpn/updater" +) + +type Provider struct { + storage common.Storage + randSource rand.Source + common.Fetcher +} + +func New(storage common.Storage, randSource rand.Source, + client *http.Client, +) *Provider { + return &Provider{ + storage: storage, + randSource: randSource, + Fetcher: updater.New(client), + } +} + +func (p *Provider) Name() string { + return providers.Ovpn +} diff --git a/internal/provider/ovpn/updater/api.go b/internal/provider/ovpn/updater/api.go new file mode 100644 index 000000000..226665697 --- /dev/null +++ b/internal/provider/ovpn/updater/api.go @@ -0,0 +1,185 @@ +package updater + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "net/http" + "net/netip" + "strings" + + "github.com/qdm12/gluetun/internal/provider/common" +) + +type apiData struct { + Success bool `json:"success"` + DataCenters []apiDataCenter `json:"datacenters"` +} + +type apiDataCenter struct { + City string `json:"city"` + CountryName string `json:"country_name"` + Servers []apiServer `json:"servers"` +} + +type apiServer struct { + IP netip.Addr `json:"ip"` + Ptr string `json:"ptr"` // hostname + Online bool `json:"online"` + PublicKey string `json:"public_key"` + WireguardPorts []uint16 `json:"wireguard_ports"` + MultiHopOpenvpnPort uint16 `json:"multihop_openvpn_port"` + MultiHopWireguardPort uint16 `json:"multihop_wireguard_port"` +} + +func fetchAPI(ctx context.Context, client *http.Client) ( + data apiData, err error, +) { + const url = "https://www.ovpn.com/v2/api/client/entry" + + request, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) + if err != nil { + return data, err + } + + response, err := client.Do(request) + if err != nil { + return data, err + } + + if response.StatusCode != http.StatusOK { + _ = response.Body.Close() + return data, fmt.Errorf("%w: %d %s", common.ErrHTTPStatusCodeNotOK, + response.StatusCode, response.Status) + } + + decoder := json.NewDecoder(response.Body) + err = decoder.Decode(&data) + if err != nil { + _ = response.Body.Close() + return data, fmt.Errorf("decoding response body: %w", err) + } + + err = response.Body.Close() + if err != nil { + return data, fmt.Errorf("closing response body: %w", err) + } + + return data, nil +} + +var ( + ErrCityNotSet = errors.New("city is not set") + ErrCountryNameNotSet = errors.New("country name is not set") + ErrServersNotSet = errors.New("servers array is not set") +) + +func (a *apiDataCenter) validate() (err error) { + conditionalErrors := []conditionalError{ + {err: ErrCityNotSet, condition: a.City == ""}, + {err: ErrCountryNameNotSet, condition: a.CountryName == ""}, + {err: ErrServersNotSet, condition: len(a.Servers) == 0}, + } + err = collectErrors(conditionalErrors) + if err != nil { + var dataCenterSetFields []string + if a.CountryName != "" { + dataCenterSetFields = append(dataCenterSetFields, a.CountryName) + } + if a.City != "" { + dataCenterSetFields = append(dataCenterSetFields, a.City) + } + if len(dataCenterSetFields) == 0 { + return err + } + return fmt.Errorf("data center %s: %w", + strings.Join(dataCenterSetFields, ", "), err) + } + + for i, server := range a.Servers { + err = server.validate() + if err != nil { + return fmt.Errorf("datacenter %s, %s: server %d of %d: %w", + a.CountryName, a.City, i+1, len(a.Servers), err) + } + } + + return nil +} + +var ( + ErrIPFieldNotValid = errors.New("ip address is not set") + ErrHostnameFieldNotSet = errors.New("hostname field is not set") + ErrPublicKeyFieldNotSet = errors.New("public key field is not set") + ErrWireguardPortsNotSet = errors.New("wireguard ports array is not set") + ErrWireguardPortNotDefault = errors.New("wireguard port is not the default 9929") + ErrMultiHopOpenVPNPortNotSet = errors.New("multihop OpenVPN port is not set") + ErrMultiHopWireguardPortNotSet = errors.New("multihop WireGuard port is not set") +) + +func (a *apiServer) validate() (err error) { + const defaultWireguardPort = 9929 + conditionalErrors := []conditionalError{ + {err: ErrIPFieldNotValid, condition: !a.IP.IsValid()}, + {err: ErrHostnameFieldNotSet, condition: a.Ptr == ""}, + {err: ErrPublicKeyFieldNotSet, condition: a.PublicKey == ""}, + {err: ErrWireguardPortsNotSet, condition: len(a.WireguardPorts) == 0}, + { + err: ErrWireguardPortNotDefault, + condition: len(a.WireguardPorts) != 1 || a.WireguardPorts[0] != defaultWireguardPort, + }, + {err: ErrMultiHopOpenVPNPortNotSet, condition: a.MultiHopOpenvpnPort == 0}, + {err: ErrMultiHopWireguardPortNotSet, condition: a.MultiHopWireguardPort == 0}, + } + err = collectErrors(conditionalErrors) + switch { + case err == nil: + return nil + case a.Ptr != "": + return fmt.Errorf("server %s: %w", a.Ptr, err) + case a.IP.IsValid(): + return fmt.Errorf("server %s: %w", a.IP.String(), err) + default: + return err + } +} + +type conditionalError struct { + err error + condition bool +} + +type joinedError struct { + errs []error +} + +func (e *joinedError) Unwrap() []error { + return e.errs +} + +func (e *joinedError) Error() string { + errStrings := make([]string, len(e.errs)) + for i, err := range e.errs { + errStrings[i] = err.Error() + } + return strings.Join(errStrings, "; ") +} + +func collectErrors(conditionalErrors []conditionalError) (err error) { + errs := make([]error, 0, len(conditionalErrors)) + for _, conditionalError := range conditionalErrors { + if !conditionalError.condition { + continue + } + errs = append(errs, conditionalError.err) + } + + if len(errs) == 0 { + return nil + } + + return &joinedError{ + errs: errs, + } +} diff --git a/internal/provider/ovpn/updater/api_test.go b/internal/provider/ovpn/updater/api_test.go new file mode 100644 index 000000000..7fd95dd43 --- /dev/null +++ b/internal/provider/ovpn/updater/api_test.go @@ -0,0 +1,117 @@ +package updater + +import ( + "context" + "errors" + "io" + "net/http" + "net/netip" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func Test_fetchAPI(t *testing.T) { + t.Parallel() + + testCases := map[string]struct { + responseStatus int + responseBody io.ReadCloser + data apiData + err error + }{ + "http response status not ok": { + responseStatus: http.StatusNoContent, + err: errors.New("HTTP status code not OK: 204 No Content"), + }, + "nil body": { + responseStatus: http.StatusOK, + err: errors.New("decoding response body: EOF"), + }, + "no server": { + responseStatus: http.StatusOK, + responseBody: io.NopCloser(strings.NewReader(`{}`)), + }, + "success": { + responseStatus: http.StatusOK, + responseBody: io.NopCloser(strings.NewReader(`{ + "success": true, + "datacenters": [ + { + "slug": "vienna", + "city": "Vienna", + "country": "AT", + "country_name": "Austria", + "pools": [ + "pool-1.prd.at.vienna.ovpn.com" + ], + "ping_address": "37.120.212.227", + "servers": [ + { + "ip": "37.120.212.227", + "ptr": "vpn44.prd.vienna.ovpn.com", + "name": "VPN44 - Vienna", + "online": true, + "load": 8, + "public_key": "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", + "public_key_ipv4": "wFbSRyjSXBmkjJodlqz7DoYn3WNDPYFUIXyIUS2QU2A=", + "wireguard_ports": [ + 9929 + ], + "multihop_openvpn_port": 20044, + "multihop_wireguard_port": 30044 + } + ] + } + ] + }`)), + data: apiData{ + Success: true, + DataCenters: []apiDataCenter{ + {CountryName: "Austria", City: "Vienna", Servers: []apiServer{ + { + IP: netip.MustParseAddr("37.120.212.227"), + Ptr: "vpn44.prd.vienna.ovpn.com", + Online: true, + PublicKey: "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", + WireguardPorts: []uint16{9929}, + MultiHopOpenvpnPort: 20044, + MultiHopWireguardPort: 30044, + }, + }}, + }, + }, + }, + } + for name, testCase := range testCases { + t.Run(name, func(t *testing.T) { + t.Parallel() + + ctx := context.Background() + + client := &http.Client{ + Transport: roundTripFunc(func(r *http.Request) (*http.Response, error) { + assert.Equal(t, http.MethodGet, r.Method) + assert.Equal(t, r.URL.String(), "https://www.ovpn.com/v2/api/client/entry") + return &http.Response{ + StatusCode: testCase.responseStatus, + Status: http.StatusText(testCase.responseStatus), + Body: testCase.responseBody, + }, nil + }), + } + + data, err := fetchAPI(ctx, client) + + assert.Equal(t, testCase.data, data) + if testCase.err != nil { + require.Error(t, err) + assert.Equal(t, testCase.err.Error(), err.Error()) + } else { + assert.NoError(t, err) + } + }) + } +} diff --git a/internal/provider/ovpn/updater/roundtrip_test.go b/internal/provider/ovpn/updater/roundtrip_test.go new file mode 100644 index 000000000..9df237887 --- /dev/null +++ b/internal/provider/ovpn/updater/roundtrip_test.go @@ -0,0 +1,9 @@ +package updater + +import "net/http" + +type roundTripFunc func(r *http.Request) (*http.Response, error) + +func (f roundTripFunc) RoundTrip(r *http.Request) (*http.Response, error) { + return f(r) +} diff --git a/internal/provider/ovpn/updater/servers.go b/internal/provider/ovpn/updater/servers.go new file mode 100644 index 000000000..d3421e502 --- /dev/null +++ b/internal/provider/ovpn/updater/servers.go @@ -0,0 +1,73 @@ +package updater + +import ( + "context" + "errors" + "fmt" + "net/netip" + "sort" + + "github.com/qdm12/gluetun/internal/constants/vpn" + "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/common" +) + +var ErrResponseSuccessFalse = errors.New("response success field is false") + +func (u *Updater) FetchServers(ctx context.Context, minServers int) ( + servers []models.Server, err error, +) { + data, err := fetchAPI(ctx, u.client) + if err != nil { + return nil, fmt.Errorf("fetching API: %w", err) + } else if !data.Success { + return nil, fmt.Errorf("%w", ErrResponseSuccessFalse) + } + + for dataCenterIndex, dataCenter := range data.DataCenters { + err = dataCenter.validate() + if err != nil { + return nil, fmt.Errorf("validating data center %d of %d: %w", + dataCenterIndex+1, len(data.DataCenters), err) + } + + for _, apiServer := range dataCenter.Servers { + if !apiServer.Online { + continue + } + + baseServer := models.Server{ + Country: dataCenter.CountryName, + City: dataCenter.City, + Hostname: apiServer.Ptr, + IPs: []netip.Addr{apiServer.IP}, + } + openVPNServer := baseServer + openVPNServer.VPN = vpn.OpenVPN + openVPNServer.TCP = true + openVPNServer.UDP = true + multiHopOpenVPNServer := openVPNServer + multiHopOpenVPNServer.MultiHop = true + multiHopOpenVPNServer.PortsTCP = []uint16{apiServer.MultiHopOpenvpnPort} + multiHopOpenVPNServer.PortsUDP = []uint16{apiServer.MultiHopOpenvpnPort} + servers = append(servers, openVPNServer, multiHopOpenVPNServer) + + wireguardServer := baseServer + wireguardServer.VPN = vpn.Wireguard + wireguardServer.WgPubKey = apiServer.PublicKey + multiHopWireguardServer := wireguardServer + multiHopWireguardServer.MultiHop = true + multiHopWireguardServer.PortsUDP = []uint16{apiServer.MultiHopWireguardPort} + servers = append(servers, wireguardServer, multiHopWireguardServer) + } + } + + if len(servers) < minServers { + return nil, fmt.Errorf("%w: %d and expected at least %d", + common.ErrNotEnoughServers, len(servers), minServers) + } + + sort.Sort(models.SortableServers(servers)) + + return servers, nil +} diff --git a/internal/provider/ovpn/updater/servers_test.go b/internal/provider/ovpn/updater/servers_test.go new file mode 100644 index 000000000..23b439b9b --- /dev/null +++ b/internal/provider/ovpn/updater/servers_test.go @@ -0,0 +1,203 @@ +package updater + +import ( + "context" + "io" + "net/http" + "net/netip" + "strings" + "testing" + + "github.com/qdm12/gluetun/internal/constants/vpn" + "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/provider/common" + "github.com/stretchr/testify/assert" +) + +func Test_Updater_FetchServers(t *testing.T) { + t.Parallel() + + testCases := map[string]struct { + // Inputs + minServers int + + // From API + responseStatus int + responseBody string + + // Output + servers []models.Server + errWrapped error + errMessage string + }{ + "http_response_error": { + responseStatus: http.StatusNoContent, + errWrapped: common.ErrHTTPStatusCodeNotOK, + errMessage: "fetching API: HTTP status code not OK: 204 No Content", + }, + "success_field_false": { + responseStatus: http.StatusOK, + responseBody: `{"success": false}`, + errWrapped: ErrResponseSuccessFalse, + errMessage: "response success field is false", + }, + "validation_failed": { + responseStatus: http.StatusOK, + responseBody: `{ + "success": true, + "datacenters": [ + { + "city": "Vienna", + "servers": [ + {} + ] + } + ] +}`, + errWrapped: ErrCountryNameNotSet, + errMessage: "validating data center 1 of 1: data center Vienna: country name is not set", + }, + "not_enough_servers": { + minServers: 5, + responseStatus: http.StatusOK, + responseBody: `{ + "success": true, + "datacenters": [ + { + "city": "Vienna", + "country_name": "Austria", + "servers": [ + { + "ip": "37.120.212.227", + "ptr": "vpn44.prd.vienna.ovpn.com", + "online": true, + "public_key": "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", + "wireguard_ports": [9929], + "multihop_openvpn_port": 20044, + "multihop_wireguard_port": 30044 + } + ] + } + ] +}`, + errWrapped: common.ErrNotEnoughServers, + errMessage: "not enough servers found: 4 and expected at least 5", + }, + "success": { + minServers: 4, + responseBody: `{ + "success": true, + "datacenters": [ + { + "slug": "vienna", + "city": "Vienna", + "country": "AT", + "country_name": "Austria", + "pools": [ + "pool-1.prd.at.vienna.ovpn.com" + ], + "ping_address": "37.120.212.227", + "servers": [ + { + "ip": "37.120.212.227", + "ptr": "vpn44.prd.vienna.ovpn.com", + "name": "VPN44 - Vienna", + "online": true, + "load": 8, + "public_key": "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", + "public_key_ipv4": "wFbSRyjSXBmkjJodlqz7DoYn3WNDPYFUIXyIUS2QU2A=", + "wireguard_ports": [ + 9929 + ], + "multihop_openvpn_port": 20044, + "multihop_wireguard_port": 30044 + }, + { + "ip": "37.120.212.228", + "ptr": "vpn45.prd.vienna.ovpn.com", + "online": false, + "public_key": "r93LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", + "wireguard_ports": [9929], + "multihop_openvpn_port": 20045, + "multihop_wireguard_port": 30045 + } + ] + } + ] +}`, + responseStatus: http.StatusOK, + servers: []models.Server{ + { + Country: "Austria", + City: "Vienna", + Hostname: "vpn44.prd.vienna.ovpn.com", + IPs: []netip.Addr{netip.MustParseAddr("37.120.212.227")}, + VPN: vpn.OpenVPN, + UDP: true, + TCP: true, + }, + { + Country: "Austria", + City: "Vienna", + Hostname: "vpn44.prd.vienna.ovpn.com", + IPs: []netip.Addr{netip.MustParseAddr("37.120.212.227")}, + VPN: vpn.OpenVPN, + UDP: true, + TCP: true, + MultiHop: true, + PortsTCP: []uint16{20044}, + PortsUDP: []uint16{20044}, + }, + { + Country: "Austria", + City: "Vienna", + Hostname: "vpn44.prd.vienna.ovpn.com", + IPs: []netip.Addr{netip.MustParseAddr("37.120.212.227")}, + VPN: vpn.Wireguard, + WgPubKey: "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", + }, + { + Country: "Austria", + City: "Vienna", + Hostname: "vpn44.prd.vienna.ovpn.com", + IPs: []netip.Addr{netip.MustParseAddr("37.120.212.227")}, + VPN: vpn.Wireguard, + WgPubKey: "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", + MultiHop: true, + PortsUDP: []uint16{30044}, + }, + }, + }, + } + for name, testCase := range testCases { + t.Run(name, func(t *testing.T) { + t.Parallel() + + ctx := context.Background() + + client := &http.Client{ + Transport: roundTripFunc(func(r *http.Request) (*http.Response, error) { + assert.Equal(t, http.MethodGet, r.Method) + assert.Equal(t, r.URL.String(), "https://www.ovpn.com/v2/api/client/entry") + return &http.Response{ + StatusCode: testCase.responseStatus, + Status: http.StatusText(testCase.responseStatus), + Body: io.NopCloser(strings.NewReader(testCase.responseBody)), + }, nil + }), + } + + updater := &Updater{ + client: client, + } + + servers, err := updater.FetchServers(ctx, testCase.minServers) + + assert.Equal(t, testCase.servers, servers) + assert.ErrorIs(t, err, testCase.errWrapped) + if testCase.errWrapped != nil { + assert.EqualError(t, err, testCase.errMessage) + } + }) + } +} diff --git a/internal/provider/ovpn/updater/updater.go b/internal/provider/ovpn/updater/updater.go new file mode 100644 index 000000000..a987c0fd3 --- /dev/null +++ b/internal/provider/ovpn/updater/updater.go @@ -0,0 +1,15 @@ +package updater + +import ( + "net/http" +) + +type Updater struct { + client *http.Client +} + +func New(client *http.Client) *Updater { + return &Updater{ + client: client, + } +} diff --git a/internal/provider/providers.go b/internal/provider/providers.go index 576669f99..0b67750b5 100644 --- a/internal/provider/providers.go +++ b/internal/provider/providers.go @@ -21,6 +21,7 @@ import ( "github.com/qdm12/gluetun/internal/provider/ivpn" "github.com/qdm12/gluetun/internal/provider/mullvad" "github.com/qdm12/gluetun/internal/provider/nordvpn" + "github.com/qdm12/gluetun/internal/provider/ovpn" "github.com/qdm12/gluetun/internal/provider/perfectprivacy" "github.com/qdm12/gluetun/internal/provider/privado" "github.com/qdm12/gluetun/internal/provider/privateinternetaccess" @@ -71,6 +72,7 @@ func NewProviders(storage Storage, timeNow func() time.Time, providers.Ivpn: ivpn.New(storage, randSource, client, updaterWarner, parallelResolver), providers.Mullvad: mullvad.New(storage, randSource, client), providers.Nordvpn: nordvpn.New(storage, randSource, client, updaterWarner), + providers.Ovpn: ovpn.New(storage, randSource, client), providers.Perfectprivacy: perfectprivacy.New(storage, randSource, unzipper, updaterWarner), providers.Privado: privado.New(storage, randSource, ipFetcher, unzipper, updaterWarner, parallelResolver), providers.PrivateInternetAccess: privateinternetaccess.New(storage, randSource, timeNow, client), diff --git a/internal/provider/utils/connection.go b/internal/provider/utils/connection.go index 7e10d7397..dda6b0819 100644 --- a/internal/provider/utils/connection.go +++ b/internal/provider/utils/connection.go @@ -44,8 +44,6 @@ func GetConnection(provider string, } protocol := getProtocol(selection) - port := getPort(selection, defaults.OpenVPNTCPPort, - defaults.OpenVPNUDPPort, defaults.WireguardPort) connections := make([]models.Connection, 0, len(servers)) for _, server := range servers { @@ -61,6 +59,9 @@ func GetConnection(provider string, hostname = server.OvpnX509 } + port := getPort(selection, server, defaults.OpenVPNTCPPort, + defaults.OpenVPNUDPPort, defaults.WireguardPort) + connection := models.Connection{ Type: selection.VPN, IP: ip, diff --git a/internal/provider/utils/port.go b/internal/provider/utils/port.go index 1f32ef4a7..bdbea7c9b 100644 --- a/internal/provider/utils/port.go +++ b/internal/provider/utils/port.go @@ -6,29 +6,44 @@ import ( "github.com/qdm12/gluetun/internal/configuration/settings" "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/constants/vpn" + "github.com/qdm12/gluetun/internal/models" ) -func getPort(selection settings.ServerSelection, +func getPort(selection settings.ServerSelection, server models.Server, defaultOpenVPNTCP, defaultOpenVPNUDP, defaultWireguard uint16, ) (port uint16) { switch selection.VPN { case vpn.Wireguard: customPort := *selection.Wireguard.EndpointPort if customPort > 0 { + // Note: servers filtering ensures the custom port is within the + // server ports defined if any is set. return customPort } + + if len(server.PortsUDP) > 0 { + defaultWireguard = server.PortsUDP[0] + } checkDefined("Wireguard", defaultWireguard) return defaultWireguard default: // OpenVPN customPort := *selection.OpenVPN.CustomPort if customPort > 0 { + // Note: servers filtering ensures the custom port is within the + // server ports defined if any is set. return customPort } if selection.OpenVPN.Protocol == constants.TCP { + if len(server.PortsTCP) > 0 { + defaultOpenVPNTCP = server.PortsTCP[0] + } checkDefined("OpenVPN TCP", defaultOpenVPNTCP) return defaultOpenVPNTCP } + if len(server.PortsUDP) > 0 { + defaultOpenVPNUDP = server.PortsUDP[0] + } checkDefined("OpenVPN UDP", defaultOpenVPNUDP) return defaultOpenVPNUDP } diff --git a/internal/provider/utils/port_test.go b/internal/provider/utils/port_test.go index a0e4e5bc2..ef5800756 100644 --- a/internal/provider/utils/port_test.go +++ b/internal/provider/utils/port_test.go @@ -6,6 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/configuration/settings" "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/constants/vpn" + "github.com/qdm12/gluetun/internal/models" "github.com/stretchr/testify/assert" ) @@ -23,6 +24,7 @@ func Test_GetPort(t *testing.T) { testCases := map[string]struct { selection settings.ServerSelection + server models.Server defaultOpenVPNTCP uint16 defaultOpenVPNUDP uint16 defaultWireguard uint16 @@ -49,6 +51,20 @@ func Test_GetPort(t *testing.T) { defaultWireguard: defaultWireguard, port: defaultOpenVPNUDP, }, + "OpenVPN_server_port_udp": { + selection: settings.ServerSelection{ + VPN: vpn.OpenVPN, + OpenVPN: settings.OpenVPNSelection{ + CustomPort: uint16Ptr(0), + Protocol: constants.UDP, + }, + }, + server: models.Server{ + PortsUDP: []uint16{1234}, + }, + defaultOpenVPNUDP: defaultOpenVPNUDP, + port: 1234, + }, "OpenVPN UDP no default port defined": { selection: settings.ServerSelection{ VPN: vpn.OpenVPN, @@ -89,6 +105,20 @@ func Test_GetPort(t *testing.T) { }, port: 1234, }, + "OpenVPN_server_port_tcp": { + selection: settings.ServerSelection{ + VPN: vpn.OpenVPN, + OpenVPN: settings.OpenVPNSelection{ + CustomPort: uint16Ptr(0), + Protocol: constants.TCP, + }, + }, + server: models.Server{ + PortsTCP: []uint16{1234}, + }, + defaultOpenVPNTCP: defaultOpenVPNTCP, + port: 1234, + }, "Wireguard": { selection: settings.ServerSelection{ VPN: vpn.Wireguard, @@ -106,6 +136,19 @@ func Test_GetPort(t *testing.T) { defaultWireguard: defaultWireguard, port: 1234, }, + "Wireguard_server_port": { + selection: settings.ServerSelection{ + VPN: vpn.Wireguard, + Wireguard: settings.WireguardSelection{ + EndpointPort: uint16Ptr(0), + }, + }, + server: models.Server{ + PortsUDP: []uint16{1234}, + }, + defaultWireguard: defaultWireguard, + port: 1234, + }, "Wireguard no default port defined": { selection: settings.ServerSelection{ VPN: vpn.Wireguard, @@ -121,6 +164,7 @@ func Test_GetPort(t *testing.T) { if testCase.panics != "" { assert.PanicsWithValue(t, testCase.panics, func() { _ = getPort(testCase.selection, + testCase.server, testCase.defaultOpenVPNTCP, testCase.defaultOpenVPNUDP, testCase.defaultWireguard) @@ -129,6 +173,7 @@ func Test_GetPort(t *testing.T) { } port := getPort(testCase.selection, + testCase.server, testCase.defaultOpenVPNTCP, testCase.defaultOpenVPNUDP, testCase.defaultWireguard) diff --git a/internal/storage/filter.go b/internal/storage/filter.go index 4d74b6bc7..2252f775c 100644 --- a/internal/storage/filter.go +++ b/internal/storage/filter.go @@ -2,6 +2,7 @@ package storage import ( "fmt" + "slices" "strings" "github.com/qdm12/gluetun/internal/configuration/settings" @@ -121,6 +122,10 @@ func filterServer(server models.Server, return true } + if filterByPorts(selection, server.PortsTCP) { + return true + } + // TODO filter port forward server for PIA return false @@ -164,3 +169,21 @@ func filterByProtocol(selection settings.ServerSelection, return (wantTCP && !serverTCP) || (wantUDP && !serverUDP) } } + +func filterByPorts(selection settings.ServerSelection, + serverPorts []uint16, +) (filtered bool) { + if len(serverPorts) == 0 { + return false + } + + customPort := *selection.OpenVPN.CustomPort + if selection.VPN == vpn.Wireguard { + customPort = *selection.Wireguard.EndpointPort + } + if customPort == 0 { + return false + } + + return !slices.Contains(serverPorts, customPort) +} diff --git a/internal/storage/formatting.go b/internal/storage/formatting.go index aaebba806..1d3cea986 100644 --- a/internal/storage/formatting.go +++ b/internal/storage/formatting.go @@ -8,6 +8,7 @@ import ( "github.com/qdm12/gluetun/internal/configuration/settings" "github.com/qdm12/gluetun/internal/constants" + "github.com/qdm12/gluetun/internal/constants/vpn" ) func commaJoin(slice []string) string { @@ -16,7 +17,7 @@ func commaJoin(slice []string) string { var ErrNoServerFound = errors.New("no server found") -func noServerFoundError(selection settings.ServerSelection) (err error) { +func noServerFoundError(selection settings.ServerSelection) (err error) { //nolint:gocyclo var messageParts []string messageParts = append(messageParts, "VPN "+selection.VPN) @@ -153,6 +154,15 @@ func noServerFoundError(selection settings.ServerSelection) (err error) { "target ip address "+selection.TargetIP.String()) } + customPort := *selection.OpenVPN.CustomPort + if selection.VPN == vpn.Wireguard { + customPort = *selection.Wireguard.EndpointPort + } + if customPort > 0 { + messageParts = append(messageParts, + fmt.Sprintf("%s endpoint port %d", selection.VPN, customPort)) + } + message := "for " + strings.Join(messageParts, "; ") return fmt.Errorf("%w: %s", ErrNoServerFound, message) diff --git a/internal/storage/servers.json b/internal/storage/servers.json index 89e2ad9b4..3a362396b 100644 --- a/internal/storage/servers.json +++ b/internal/storage/servers.json @@ -251669,6 +251669,5100 @@ } ] }, + "ovpn": { + "version": 1, + "timestamp": 1729674302, + "servers": [ + { + "vpn": "openvpn", + "country": "Australia", + "city": "Sydney", + "hostname": "vpn26.prd.sydney.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.138.204.35" + ] + }, + { + "vpn": "openvpn", + "country": "Australia", + "city": "Sydney", + "hostname": "vpn26.prd.sydney.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.138.204.35" + ], + "ports_tcp": [ + 20026 + ], + "ports_udp": [ + 20026 + ] + }, + { + "vpn": "wireguard", + "country": "Australia", + "city": "Sydney", + "hostname": "vpn26.prd.sydney.ovpn.com", + "wgpubkey": "cZ/SWgQDt6hnJnTSeUIHVIb+hL9SSzmnMStKKimPUGM=", + "ips": [ + "217.138.204.35" + ] + }, + { + "vpn": "wireguard", + "country": "Australia", + "city": "Sydney", + "hostname": "vpn26.prd.sydney.ovpn.com", + "multihop": true, + "wgpubkey": "cZ/SWgQDt6hnJnTSeUIHVIb+hL9SSzmnMStKKimPUGM=", + "ips": [ + "217.138.204.35" + ], + "ports_udp": [ + 30026 + ] + }, + { + "vpn": "openvpn", + "country": "Austria", + "city": "Vienna", + "hostname": "vpn44.prd.vienna.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "37.120.212.227" + ] + }, + { + "vpn": "openvpn", + "country": "Austria", + "city": "Vienna", + "hostname": "vpn44.prd.vienna.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "37.120.212.227" + ], + "ports_tcp": [ + 20044 + ], + "ports_udp": [ + 20044 + ] + }, + { + "vpn": "wireguard", + "country": "Austria", + "city": "Vienna", + "hostname": "vpn44.prd.vienna.ovpn.com", + "wgpubkey": "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", + "ips": [ + "37.120.212.227" + ] + }, + { + "vpn": "wireguard", + "country": "Austria", + "city": "Vienna", + "hostname": "vpn44.prd.vienna.ovpn.com", + "multihop": true, + "wgpubkey": "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", + "ips": [ + "37.120.212.227" + ], + "ports_udp": [ + 30044 + ] + }, + { + "vpn": "openvpn", + "country": "Canada", + "city": "Toronto", + "hostname": "vpn25.prd.toronto.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "104.245.145.244" + ] + }, + { + "vpn": "openvpn", + "country": "Canada", + "city": "Toronto", + "hostname": "vpn25.prd.toronto.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "104.245.145.244" + ], + "ports_tcp": [ + 20025 + ], + "ports_udp": [ + 20025 + ] + }, + { + "vpn": "wireguard", + "country": "Canada", + "city": "Toronto", + "hostname": "vpn25.prd.toronto.ovpn.com", + "wgpubkey": "JQn/XgOlj+JHQK30jkEC68j9dQ02RCbk63jkASUQHFk=", + "ips": [ + "104.245.145.244" + ] + }, + { + "vpn": "wireguard", + "country": "Canada", + "city": "Toronto", + "hostname": "vpn25.prd.toronto.ovpn.com", + "multihop": true, + "wgpubkey": "JQn/XgOlj+JHQK30jkEC68j9dQ02RCbk63jkASUQHFk=", + "ips": [ + "104.245.145.244" + ], + "ports_udp": [ + 30025 + ] + }, + { + "vpn": "openvpn", + "country": "Denmark", + "city": "Copenhagen", + "hostname": "vpn27.prd.copenhagen.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.236.203.98" + ], + "ports_tcp": [ + 20027 + ], + "ports_udp": [ + 20027 + ] + }, + { + "vpn": "openvpn", + "country": "Denmark", + "city": "Copenhagen", + "hostname": "vpn27.prd.copenhagen.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.236.203.98" + ] + }, + { + "vpn": "wireguard", + "country": "Denmark", + "city": "Copenhagen", + "hostname": "vpn27.prd.copenhagen.ovpn.com", + "wgpubkey": "zuDP6UH60O3Wjj14Quqe/1utFe5GhUByTd9p/1mu70E=", + "ips": [ + "185.236.203.98" + ] + }, + { + "vpn": "wireguard", + "country": "Denmark", + "city": "Copenhagen", + "hostname": "vpn27.prd.copenhagen.ovpn.com", + "multihop": true, + "wgpubkey": "zuDP6UH60O3Wjj14Quqe/1utFe5GhUByTd9p/1mu70E=", + "ips": [ + "185.236.203.98" + ], + "ports_udp": [ + 30027 + ] + }, + { + "vpn": "openvpn", + "country": "Finland", + "city": "Helsinki", + "hostname": "vpn104.prd.helsinki.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "46.246.34.51" + ] + }, + { + "vpn": "openvpn", + "country": "Finland", + "city": "Helsinki", + "hostname": "vpn104.prd.helsinki.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "46.246.34.51" + ], + "ports_tcp": [ + 20104 + ], + "ports_udp": [ + 20104 + ] + }, + { + "vpn": "wireguard", + "country": "Finland", + "city": "Helsinki", + "hostname": "vpn104.prd.helsinki.ovpn.com", + "wgpubkey": "3WhYVP7YyoxZ/mgubIJHmAU4KDCu46qD6vWCwnl4/Vk=", + "ips": [ + "46.246.34.51" + ] + }, + { + "vpn": "wireguard", + "country": "Finland", + "city": "Helsinki", + "hostname": "vpn104.prd.helsinki.ovpn.com", + "multihop": true, + "wgpubkey": "3WhYVP7YyoxZ/mgubIJHmAU4KDCu46qD6vWCwnl4/Vk=", + "ips": [ + "46.246.34.51" + ], + "ports_udp": [ + 30104 + ] + }, + { + "vpn": "openvpn", + "country": "France", + "city": "Paris", + "hostname": "vpn69.prd.paris.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "139.28.219.35" + ], + "ports_tcp": [ + 20069 + ], + "ports_udp": [ + 20069 + ] + }, + { + "vpn": "openvpn", + "country": "France", + "city": "Paris", + "hostname": "vpn69.prd.paris.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "139.28.219.35" + ] + }, + { + "vpn": "wireguard", + "country": "France", + "city": "Paris", + "hostname": "vpn69.prd.paris.ovpn.com", + "multihop": true, + "wgpubkey": "JF+htf2Uj/FviIqLWD0sQyduR5qWOu/GvJ7p+fMockk=", + "ips": [ + "139.28.219.35" + ], + "ports_udp": [ + 30069 + ] + }, + { + "vpn": "wireguard", + "country": "France", + "city": "Paris", + "hostname": "vpn69.prd.paris.ovpn.com", + "wgpubkey": "JF+htf2Uj/FviIqLWD0sQyduR5qWOu/GvJ7p+fMockk=", + "ips": [ + "139.28.219.35" + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Erfurt", + "hostname": "vpn90.prd.erfurt.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "84.19.175.164" + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Erfurt", + "hostname": "vpn90.prd.erfurt.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "84.19.175.164" + ], + "ports_tcp": [ + 20090 + ], + "ports_udp": [ + 20090 + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Erfurt", + "hostname": "vpn90.prd.erfurt.ovpn.com", + "wgpubkey": "0CvxLBss+WQyJqidXRUnd5iO9gMJwMFNPidg09d4Onk=", + "ips": [ + "84.19.175.164" + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Erfurt", + "hostname": "vpn90.prd.erfurt.ovpn.com", + "multihop": true, + "wgpubkey": "0CvxLBss+WQyJqidXRUnd5iO9gMJwMFNPidg09d4Onk=", + "ips": [ + "84.19.175.164" + ], + "ports_udp": [ + 30090 + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Erfurt", + "hostname": "vpn93.prd.erfurt.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.114.215.130" + ], + "ports_tcp": [ + 20093 + ], + "ports_udp": [ + 20093 + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Erfurt", + "hostname": "vpn93.prd.erfurt.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.114.215.130" + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Erfurt", + "hostname": "vpn93.prd.erfurt.ovpn.com", + "wgpubkey": "Ud/RQsmt7FuaT6ODfsuDuzRwNm78imu0hOjx+b1FeCk=", + "ips": [ + "217.114.215.130" + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Erfurt", + "hostname": "vpn93.prd.erfurt.ovpn.com", + "multihop": true, + "wgpubkey": "Ud/RQsmt7FuaT6ODfsuDuzRwNm78imu0hOjx+b1FeCk=", + "ips": [ + "217.114.215.130" + ], + "ports_udp": [ + 30093 + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Frankfurt", + "hostname": "vpn94.prd.frankfurt.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.141.152.69" + ], + "ports_tcp": [ + 20094 + ], + "ports_udp": [ + 20094 + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Frankfurt", + "hostname": "vpn94.prd.frankfurt.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.141.152.69" + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Frankfurt", + "hostname": "vpn94.prd.frankfurt.ovpn.com", + "multihop": true, + "wgpubkey": "rn8HkSrQBE1BtZo2FzM1SF1BK1/9cmaRx2P9+ikpvBA=", + "ips": [ + "45.141.152.69" + ], + "ports_udp": [ + 30094 + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Frankfurt", + "hostname": "vpn94.prd.frankfurt.ovpn.com", + "wgpubkey": "rn8HkSrQBE1BtZo2FzM1SF1BK1/9cmaRx2P9+ikpvBA=", + "ips": [ + "45.141.152.69" + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Frankfurt", + "hostname": "vpn98.prd.frankfurt.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.141.152.68" + ], + "ports_tcp": [ + 20098 + ], + "ports_udp": [ + 20098 + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Frankfurt", + "hostname": "vpn98.prd.frankfurt.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.141.152.68" + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Frankfurt", + "hostname": "vpn98.prd.frankfurt.ovpn.com", + "wgpubkey": "dbdpgpQig2RTDaNHhRmmHZfcplgbVia/VihZGUNSAVc=", + "ips": [ + "45.141.152.68" + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Frankfurt", + "hostname": "vpn98.prd.frankfurt.ovpn.com", + "multihop": true, + "wgpubkey": "dbdpgpQig2RTDaNHhRmmHZfcplgbVia/VihZGUNSAVc=", + "ips": [ + "45.141.152.68" + ], + "ports_udp": [ + 30098 + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Offenbach", + "hostname": "vpn101.prd.offenbach.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "138.199.38.149" + ], + "ports_tcp": [ + 20101 + ], + "ports_udp": [ + 20101 + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Offenbach", + "hostname": "vpn101.prd.offenbach.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "138.199.38.149" + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Offenbach", + "hostname": "vpn101.prd.offenbach.ovpn.com", + "wgpubkey": "KTuStBzb0QhCMZbbGagokTqAtHOXnKcPVscG0zwNllY=", + "ips": [ + "138.199.38.149" + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Offenbach", + "hostname": "vpn101.prd.offenbach.ovpn.com", + "multihop": true, + "wgpubkey": "KTuStBzb0QhCMZbbGagokTqAtHOXnKcPVscG0zwNllY=", + "ips": [ + "138.199.38.149" + ], + "ports_udp": [ + 30101 + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Offenbach", + "hostname": "vpn92.prd.offenbach.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "138.199.38.131" + ], + "ports_tcp": [ + 20092 + ], + "ports_udp": [ + 20092 + ] + }, + { + "vpn": "openvpn", + "country": "Germany", + "city": "Offenbach", + "hostname": "vpn92.prd.offenbach.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "138.199.38.131" + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Offenbach", + "hostname": "vpn92.prd.offenbach.ovpn.com", + "wgpubkey": "9rFxHjpLsoCZyRSoNSyMjc+JvCZ9q+GyaNHK4Onm6C8=", + "ips": [ + "138.199.38.131" + ] + }, + { + "vpn": "wireguard", + "country": "Germany", + "city": "Offenbach", + "hostname": "vpn92.prd.offenbach.ovpn.com", + "multihop": true, + "wgpubkey": "9rFxHjpLsoCZyRSoNSyMjc+JvCZ9q+GyaNHK4Onm6C8=", + "ips": [ + "138.199.38.131" + ], + "ports_udp": [ + 30092 + ] + }, + { + "vpn": "openvpn", + "country": "Great Britain", + "city": "London", + "hostname": "vpn68.prd.london.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "89.238.176.3" + ], + "ports_tcp": [ + 20068 + ], + "ports_udp": [ + 20068 + ] + }, + { + "vpn": "openvpn", + "country": "Great Britain", + "city": "London", + "hostname": "vpn68.prd.london.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "89.238.176.3" + ] + }, + { + "vpn": "wireguard", + "country": "Great Britain", + "city": "London", + "hostname": "vpn68.prd.london.ovpn.com", + "multihop": true, + "wgpubkey": "eKbpjpGMDzt0zb0i2i7aBLtvFlBTOx6cK+rVVwhtTwA=", + "ips": [ + "89.238.176.3" + ], + "ports_udp": [ + 30068 + ] + }, + { + "vpn": "wireguard", + "country": "Great Britain", + "city": "London", + "hostname": "vpn68.prd.london.ovpn.com", + "wgpubkey": "eKbpjpGMDzt0zb0i2i7aBLtvFlBTOx6cK+rVVwhtTwA=", + "ips": [ + "89.238.176.3" + ] + }, + { + "vpn": "openvpn", + "country": "Italy", + "city": "Milan", + "hostname": "vpn100.prd.milan.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "94.198.96.163" + ], + "ports_tcp": [ + 20100 + ], + "ports_udp": [ + 20100 + ] + }, + { + "vpn": "openvpn", + "country": "Italy", + "city": "Milan", + "hostname": "vpn100.prd.milan.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "94.198.96.163" + ] + }, + { + "vpn": "wireguard", + "country": "Italy", + "city": "Milan", + "hostname": "vpn100.prd.milan.ovpn.com", + "multihop": true, + "wgpubkey": "oS3feK/+EjX8wkYjywQOiPCrLONplMeotpNuRTZhmj0=", + "ips": [ + "94.198.96.163" + ], + "ports_udp": [ + 30100 + ] + }, + { + "vpn": "wireguard", + "country": "Italy", + "city": "Milan", + "hostname": "vpn100.prd.milan.ovpn.com", + "wgpubkey": "oS3feK/+EjX8wkYjywQOiPCrLONplMeotpNuRTZhmj0=", + "ips": [ + "94.198.96.163" + ] + }, + { + "vpn": "openvpn", + "country": "Japan", + "city": "Tokyo", + "hostname": "vpn89.prd.tokyo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.138.212.51" + ] + }, + { + "vpn": "openvpn", + "country": "Japan", + "city": "Tokyo", + "hostname": "vpn89.prd.tokyo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.138.212.51" + ], + "ports_tcp": [ + 20089 + ], + "ports_udp": [ + 20089 + ] + }, + { + "vpn": "wireguard", + "country": "Japan", + "city": "Tokyo", + "hostname": "vpn89.prd.tokyo.ovpn.com", + "multihop": true, + "wgpubkey": "kYH8bsx1a2A7AIiagGki+mVOOrVX1tIWcKZg1zqnQEg=", + "ips": [ + "217.138.212.51" + ], + "ports_udp": [ + 30089 + ] + }, + { + "vpn": "wireguard", + "country": "Japan", + "city": "Tokyo", + "hostname": "vpn89.prd.tokyo.ovpn.com", + "wgpubkey": "kYH8bsx1a2A7AIiagGki+mVOOrVX1tIWcKZg1zqnQEg=", + "ips": [ + "217.138.212.51" + ] + }, + { + "vpn": "openvpn", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn28.prd.amsterdam.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.162.6" + ], + "ports_tcp": [ + 20028 + ], + "ports_udp": [ + 20028 + ] + }, + { + "vpn": "openvpn", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn28.prd.amsterdam.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.162.6" + ] + }, + { + "vpn": "wireguard", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn28.prd.amsterdam.ovpn.com", + "wgpubkey": "r8ObkfADlsEAMvsi1Cog4mF6h+g9pPLLWdZSFHdVk1I=", + "ips": [ + "185.157.162.6" + ] + }, + { + "vpn": "wireguard", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn28.prd.amsterdam.ovpn.com", + "multihop": true, + "wgpubkey": "r8ObkfADlsEAMvsi1Cog4mF6h+g9pPLLWdZSFHdVk1I=", + "ips": [ + "185.157.162.6" + ], + "ports_udp": [ + 30028 + ] + }, + { + "vpn": "openvpn", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn29.prd.amsterdam.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.162.7" + ], + "ports_tcp": [ + 20029 + ], + "ports_udp": [ + 20029 + ] + }, + { + "vpn": "openvpn", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn29.prd.amsterdam.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.162.7" + ] + }, + { + "vpn": "wireguard", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn29.prd.amsterdam.ovpn.com", + "multihop": true, + "wgpubkey": "wTlz3u1egzUrx4Ho02cL7Ht1BBa/C8bULzXStn5f+zk=", + "ips": [ + "185.157.162.7" + ], + "ports_udp": [ + 30029 + ] + }, + { + "vpn": "wireguard", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn29.prd.amsterdam.ovpn.com", + "wgpubkey": "wTlz3u1egzUrx4Ho02cL7Ht1BBa/C8bULzXStn5f+zk=", + "ips": [ + "185.157.162.7" + ] + }, + { + "vpn": "openvpn", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn30.prd.amsterdam.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.162.8" + ], + "ports_tcp": [ + 20030 + ], + "ports_udp": [ + 20030 + ] + }, + { + "vpn": "openvpn", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn30.prd.amsterdam.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.162.8" + ] + }, + { + "vpn": "wireguard", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn30.prd.amsterdam.ovpn.com", + "wgpubkey": "UlWOCYQ7kSvqdGyUfQ06ayh4xg0FejtRTT5oD774En4=", + "ips": [ + "185.157.162.8" + ] + }, + { + "vpn": "wireguard", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn30.prd.amsterdam.ovpn.com", + "multihop": true, + "wgpubkey": "UlWOCYQ7kSvqdGyUfQ06ayh4xg0FejtRTT5oD774En4=", + "ips": [ + "185.157.162.8" + ], + "ports_udp": [ + 30030 + ] + }, + { + "vpn": "openvpn", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn35.prd.amsterdam.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.162.9" + ], + "ports_tcp": [ + 20035 + ], + "ports_udp": [ + 20035 + ] + }, + { + "vpn": "openvpn", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn35.prd.amsterdam.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.162.9" + ] + }, + { + "vpn": "wireguard", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn35.prd.amsterdam.ovpn.com", + "multihop": true, + "wgpubkey": "ltl5WNkl0xMOMoMWFJKb8CoE7yUiixTVSrs5rO/jYAI=", + "ips": [ + "185.157.162.9" + ], + "ports_udp": [ + 30035 + ] + }, + { + "vpn": "wireguard", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn35.prd.amsterdam.ovpn.com", + "wgpubkey": "ltl5WNkl0xMOMoMWFJKb8CoE7yUiixTVSrs5rO/jYAI=", + "ips": [ + "185.157.162.9" + ] + }, + { + "vpn": "openvpn", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn36.prd.amsterdam.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.162.10" + ], + "ports_tcp": [ + 20036 + ], + "ports_udp": [ + 20036 + ] + }, + { + "vpn": "openvpn", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn36.prd.amsterdam.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.162.10" + ] + }, + { + "vpn": "wireguard", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn36.prd.amsterdam.ovpn.com", + "wgpubkey": "pCbGsSXcJHVSr9UeAbE5IiBtD/m2z1e9zlF9Nospf3o=", + "ips": [ + "185.157.162.10" + ] + }, + { + "vpn": "wireguard", + "country": "Netherlands", + "city": "Amsterdam", + "hostname": "vpn36.prd.amsterdam.ovpn.com", + "multihop": true, + "wgpubkey": "pCbGsSXcJHVSr9UeAbE5IiBtD/m2z1e9zlF9Nospf3o=", + "ips": [ + "185.157.162.10" + ], + "ports_udp": [ + 30036 + ] + }, + { + "vpn": "openvpn", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn37.prd.oslo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.148.18.35" + ], + "ports_tcp": [ + 20037 + ], + "ports_udp": [ + 20037 + ] + }, + { + "vpn": "openvpn", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn37.prd.oslo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.148.18.35" + ] + }, + { + "vpn": "wireguard", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn37.prd.oslo.ovpn.com", + "multihop": true, + "wgpubkey": "f9Fmp1yhGo9lEsMwf9kGBXsBP4CAD031n5C4D5I/US4=", + "ips": [ + "45.148.18.35" + ], + "ports_udp": [ + 30037 + ] + }, + { + "vpn": "wireguard", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn37.prd.oslo.ovpn.com", + "wgpubkey": "f9Fmp1yhGo9lEsMwf9kGBXsBP4CAD031n5C4D5I/US4=", + "ips": [ + "45.148.18.35" + ] + }, + { + "vpn": "openvpn", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn38.prd.oslo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.148.18.36" + ] + }, + { + "vpn": "openvpn", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn38.prd.oslo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.148.18.36" + ], + "ports_tcp": [ + 20038 + ], + "ports_udp": [ + 20038 + ] + }, + { + "vpn": "wireguard", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn38.prd.oslo.ovpn.com", + "multihop": true, + "wgpubkey": "aDrSOhL5NALmlt05g+3yYxWpQpqj3g5jj2TRLsscjS4=", + "ips": [ + "45.148.18.36" + ], + "ports_udp": [ + 30038 + ] + }, + { + "vpn": "wireguard", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn38.prd.oslo.ovpn.com", + "wgpubkey": "aDrSOhL5NALmlt05g+3yYxWpQpqj3g5jj2TRLsscjS4=", + "ips": [ + "45.148.18.36" + ] + }, + { + "vpn": "openvpn", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn39.prd.oslo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.148.18.37" + ], + "ports_tcp": [ + 20039 + ], + "ports_udp": [ + 20039 + ] + }, + { + "vpn": "openvpn", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn39.prd.oslo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.148.18.37" + ] + }, + { + "vpn": "wireguard", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn39.prd.oslo.ovpn.com", + "wgpubkey": "vYXHNpAA1/TvnWHPDbBQTThkYBRGvzcanE/EYngavAw=", + "ips": [ + "45.148.18.37" + ] + }, + { + "vpn": "wireguard", + "country": "Norway", + "city": "Oslo", + "hostname": "vpn39.prd.oslo.ovpn.com", + "multihop": true, + "wgpubkey": "vYXHNpAA1/TvnWHPDbBQTThkYBRGvzcanE/EYngavAw=", + "ips": [ + "45.148.18.37" + ], + "ports_udp": [ + 30039 + ] + }, + { + "vpn": "openvpn", + "country": "Poland", + "city": "Warsaw", + "hostname": "vpn95.prd.warsaw.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "138.199.59.3" + ] + }, + { + "vpn": "openvpn", + "country": "Poland", + "city": "Warsaw", + "hostname": "vpn95.prd.warsaw.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "138.199.59.3" + ], + "ports_tcp": [ + 20095 + ], + "ports_udp": [ + 20095 + ] + }, + { + "vpn": "wireguard", + "country": "Poland", + "city": "Warsaw", + "hostname": "vpn95.prd.warsaw.ovpn.com", + "multihop": true, + "wgpubkey": "7W4M+AEUAROco6oGCVwipKZ5gODe29eKjSP0jFXuOUU=", + "ips": [ + "138.199.59.3" + ], + "ports_udp": [ + 30095 + ] + }, + { + "vpn": "wireguard", + "country": "Poland", + "city": "Warsaw", + "hostname": "vpn95.prd.warsaw.ovpn.com", + "wgpubkey": "7W4M+AEUAROco6oGCVwipKZ5gODe29eKjSP0jFXuOUU=", + "ips": [ + "138.199.59.3" + ] + }, + { + "vpn": "openvpn", + "country": "Romania", + "city": "Bucharest", + "hostname": "vpn45.prd.bucharest.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "37.120.206.163" + ], + "ports_tcp": [ + 20045 + ], + "ports_udp": [ + 20045 + ] + }, + { + "vpn": "openvpn", + "country": "Romania", + "city": "Bucharest", + "hostname": "vpn45.prd.bucharest.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "37.120.206.163" + ] + }, + { + "vpn": "wireguard", + "country": "Romania", + "city": "Bucharest", + "hostname": "vpn45.prd.bucharest.ovpn.com", + "wgpubkey": "jBqo1nW4nT/PfElG+ZSlOg92TjqZ85WAM8vmVuCHWTo=", + "ips": [ + "37.120.206.163" + ] + }, + { + "vpn": "wireguard", + "country": "Romania", + "city": "Bucharest", + "hostname": "vpn45.prd.bucharest.ovpn.com", + "multihop": true, + "wgpubkey": "jBqo1nW4nT/PfElG+ZSlOg92TjqZ85WAM8vmVuCHWTo=", + "ips": [ + "37.120.206.163" + ], + "ports_udp": [ + 30045 + ] + }, + { + "vpn": "openvpn", + "country": "Singapore", + "city": "Singapore", + "hostname": "vpn77.prd.singapore.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "37.120.208.35" + ], + "ports_tcp": [ + 20077 + ], + "ports_udp": [ + 20077 + ] + }, + { + "vpn": "openvpn", + "country": "Singapore", + "city": "Singapore", + "hostname": "vpn77.prd.singapore.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "37.120.208.35" + ] + }, + { + "vpn": "wireguard", + "country": "Singapore", + "city": "Singapore", + "hostname": "vpn77.prd.singapore.ovpn.com", + "wgpubkey": "DVgF3RC6y0WapyrpHldfXK3cqa3PaixOpXf9tBWLu34=", + "ips": [ + "37.120.208.35" + ] + }, + { + "vpn": "wireguard", + "country": "Singapore", + "city": "Singapore", + "hostname": "vpn77.prd.singapore.ovpn.com", + "multihop": true, + "wgpubkey": "DVgF3RC6y0WapyrpHldfXK3cqa3PaixOpXf9tBWLu34=", + "ips": [ + "37.120.208.35" + ], + "ports_udp": [ + 30077 + ] + }, + { + "vpn": "openvpn", + "country": "Spain", + "city": "Madrid", + "hostname": "vpn70.prd.madrid.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "192.145.124.3" + ], + "ports_tcp": [ + 20070 + ], + "ports_udp": [ + 20070 + ] + }, + { + "vpn": "openvpn", + "country": "Spain", + "city": "Madrid", + "hostname": "vpn70.prd.madrid.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "192.145.124.3" + ] + }, + { + "vpn": "wireguard", + "country": "Spain", + "city": "Madrid", + "hostname": "vpn70.prd.madrid.ovpn.com", + "multihop": true, + "wgpubkey": "a4Vryn0AWvXomuQ7FWQR8yrHQ9mFx/+Bw5zVkXvi/1I=", + "ips": [ + "192.145.124.3" + ], + "ports_udp": [ + 30070 + ] + }, + { + "vpn": "wireguard", + "country": "Spain", + "city": "Madrid", + "hostname": "vpn70.prd.madrid.ovpn.com", + "wgpubkey": "a4Vryn0AWvXomuQ7FWQR8yrHQ9mFx/+Bw5zVkXvi/1I=", + "ips": [ + "192.145.124.3" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn57.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.195" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn57.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.195" + ], + "ports_tcp": [ + 20057 + ], + "ports_udp": [ + 20057 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn57.prd.gothenburg.ovpn.com", + "wgpubkey": "CukQxZVavBWSOdrxBuCRYnVLapi4rx73G7nV6wo3LG0=", + "ips": [ + "193.187.91.195" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn57.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "CukQxZVavBWSOdrxBuCRYnVLapi4rx73G7nV6wo3LG0=", + "ips": [ + "193.187.91.195" + ], + "ports_udp": [ + 30057 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn58.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.196" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn58.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.196" + ], + "ports_tcp": [ + 20058 + ], + "ports_udp": [ + 20058 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn58.prd.gothenburg.ovpn.com", + "wgpubkey": "fhJEw6AzQ/LEqwtNQEmZLWQfSMVtTIvCLOAimN3J9l0=", + "ips": [ + "193.187.91.196" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn58.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "fhJEw6AzQ/LEqwtNQEmZLWQfSMVtTIvCLOAimN3J9l0=", + "ips": [ + "193.187.91.196" + ], + "ports_udp": [ + 30058 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn59.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.197" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn59.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.197" + ], + "ports_tcp": [ + 20059 + ], + "ports_udp": [ + 20059 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn59.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "wag3xc3UEkmn3kRiw49vRh8Nyk7cZCPy0s2t3/M1dxI=", + "ips": [ + "193.187.91.197" + ], + "ports_udp": [ + 30059 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn59.prd.gothenburg.ovpn.com", + "wgpubkey": "wag3xc3UEkmn3kRiw49vRh8Nyk7cZCPy0s2t3/M1dxI=", + "ips": [ + "193.187.91.197" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn65.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.198" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn65.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.198" + ], + "ports_tcp": [ + 20065 + ], + "ports_udp": [ + 20065 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn65.prd.gothenburg.ovpn.com", + "wgpubkey": "zJwQIAIgv6zvLNzwsYBilUHArs9vrmbejZZpJsHB7V8=", + "ips": [ + "193.187.91.198" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn65.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "zJwQIAIgv6zvLNzwsYBilUHArs9vrmbejZZpJsHB7V8=", + "ips": [ + "193.187.91.198" + ], + "ports_udp": [ + 30065 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn66.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.199" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn66.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.199" + ], + "ports_tcp": [ + 20066 + ], + "ports_udp": [ + 20066 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn66.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "DxlR+Lj9f9I/zz7Ubhu6YODWe4UokZHsA/XlrHyD+zI=", + "ips": [ + "193.187.91.199" + ], + "ports_udp": [ + 30066 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn66.prd.gothenburg.ovpn.com", + "wgpubkey": "DxlR+Lj9f9I/zz7Ubhu6YODWe4UokZHsA/XlrHyD+zI=", + "ips": [ + "193.187.91.199" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn67.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.200" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn67.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.200" + ], + "ports_tcp": [ + 20067 + ], + "ports_udp": [ + 20067 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn67.prd.gothenburg.ovpn.com", + "wgpubkey": "+aZG3UEfMPdseeieAk6iuNJ4g0URoRMCXpu4+wg4FQ8=", + "ips": [ + "193.187.91.200" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn67.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "+aZG3UEfMPdseeieAk6iuNJ4g0URoRMCXpu4+wg4FQ8=", + "ips": [ + "193.187.91.200" + ], + "ports_udp": [ + 30067 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn78.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.201" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn78.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.201" + ], + "ports_tcp": [ + 20078 + ], + "ports_udp": [ + 20078 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn78.prd.gothenburg.ovpn.com", + "wgpubkey": "De9k8c8ka4QPShagnuhg0sj7xo6vMlY1CYKC1HQ/HH0=", + "ips": [ + "193.187.91.201" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn78.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "De9k8c8ka4QPShagnuhg0sj7xo6vMlY1CYKC1HQ/HH0=", + "ips": [ + "193.187.91.201" + ], + "ports_udp": [ + 30078 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn79.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.202" + ], + "ports_tcp": [ + 20079 + ], + "ports_udp": [ + 20079 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn79.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.202" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn79.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "ovb4H71UzVPhmJqsYVN7CmYDohCSKqaoi/nv+iHTpCU=", + "ips": [ + "193.187.91.202" + ], + "ports_udp": [ + 30079 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn79.prd.gothenburg.ovpn.com", + "wgpubkey": "ovb4H71UzVPhmJqsYVN7CmYDohCSKqaoi/nv+iHTpCU=", + "ips": [ + "193.187.91.202" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn80.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.203" + ], + "ports_tcp": [ + 20080 + ], + "ports_udp": [ + 20080 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn80.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.203" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn80.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "PWFRJyaocA/10ICGHhVZuV+AtNRYByAUKqCZHH5drgQ=", + "ips": [ + "193.187.91.203" + ], + "ports_udp": [ + 30080 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn80.prd.gothenburg.ovpn.com", + "wgpubkey": "PWFRJyaocA/10ICGHhVZuV+AtNRYByAUKqCZHH5drgQ=", + "ips": [ + "193.187.91.203" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn81.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.204" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn81.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.204" + ], + "ports_tcp": [ + 20081 + ], + "ports_udp": [ + 20081 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn81.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "V8zAe+78UaeqgHU16Twxrpo8LhHVVcOE8RqqGARVwHA=", + "ips": [ + "193.187.91.204" + ], + "ports_udp": [ + 30081 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn81.prd.gothenburg.ovpn.com", + "wgpubkey": "V8zAe+78UaeqgHU16Twxrpo8LhHVVcOE8RqqGARVwHA=", + "ips": [ + "193.187.91.204" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn82.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.205" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn82.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.205" + ], + "ports_tcp": [ + 20082 + ], + "ports_udp": [ + 20082 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn82.prd.gothenburg.ovpn.com", + "wgpubkey": "LCCiLqQ/7Zr+ZFLTRZNG3D2wqXrM6JJZxbXdvadAM1I=", + "ips": [ + "193.187.91.205" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn82.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "LCCiLqQ/7Zr+ZFLTRZNG3D2wqXrM6JJZxbXdvadAM1I=", + "ips": [ + "193.187.91.205" + ], + "ports_udp": [ + 30082 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn83.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "193.187.91.206" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn83.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "193.187.91.206" + ], + "ports_tcp": [ + 20083 + ], + "ports_udp": [ + 20083 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn83.prd.gothenburg.ovpn.com", + "wgpubkey": "E8JiXrDs8zikrQt9v4IqBUJnjk0LCnLLt+tFUY12Hjs=", + "ips": [ + "193.187.91.206" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Gothenburg", + "hostname": "vpn83.prd.gothenburg.ovpn.com", + "multihop": true, + "wgpubkey": "E8JiXrDs8zikrQt9v4IqBUJnjk0LCnLLt+tFUY12Hjs=", + "ips": [ + "193.187.91.206" + ], + "ports_udp": [ + 30083 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn01.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.3" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn01.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.3" + ], + "ports_tcp": [ + 20001 + ], + "ports_udp": [ + 20001 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn01.prd.malmo.ovpn.com", + "wgpubkey": "e8Lkh1zZYbHmljDMMmvErVpvfRnrB4bWrHCvQmDvUDE=", + "ips": [ + "185.157.163.3" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn01.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "e8Lkh1zZYbHmljDMMmvErVpvfRnrB4bWrHCvQmDvUDE=", + "ips": [ + "185.157.163.3" + ], + "ports_udp": [ + 30001 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn06.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.4" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn06.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.4" + ], + "ports_tcp": [ + 20006 + ], + "ports_udp": [ + 20006 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn06.prd.malmo.ovpn.com", + "wgpubkey": "6+Xf8SLGPsEPAG3c2o4IUX3GeCpwJqJQS6IvsmzSSQ4=", + "ips": [ + "185.157.163.4" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn06.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "6+Xf8SLGPsEPAG3c2o4IUX3GeCpwJqJQS6IvsmzSSQ4=", + "ips": [ + "185.157.163.4" + ], + "ports_udp": [ + 30006 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn07.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.5" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn07.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.5" + ], + "ports_tcp": [ + 20007 + ], + "ports_udp": [ + 20007 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn07.prd.malmo.ovpn.com", + "wgpubkey": "LXImhA5/P158L0BRYaYrdIw3kEpaNG94I+o0Qs5lFg8=", + "ips": [ + "185.157.163.5" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn07.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "LXImhA5/P158L0BRYaYrdIw3kEpaNG94I+o0Qs5lFg8=", + "ips": [ + "185.157.163.5" + ], + "ports_udp": [ + 30007 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn08.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.6" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn08.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.6" + ], + "ports_tcp": [ + 20008 + ], + "ports_udp": [ + 20008 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn08.prd.malmo.ovpn.com", + "wgpubkey": "TJxkuwDGemYZ11AANCMB5V7GWaXoim1xpttGxqXiDWs=", + "ips": [ + "185.157.163.6" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn08.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "TJxkuwDGemYZ11AANCMB5V7GWaXoim1xpttGxqXiDWs=", + "ips": [ + "185.157.163.6" + ], + "ports_udp": [ + 30008 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn40.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.7" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn40.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.7" + ], + "ports_tcp": [ + 20040 + ], + "ports_udp": [ + 20040 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn40.prd.malmo.ovpn.com", + "wgpubkey": "cQ502fzOND0Z30gvL052TyfexOUJSVhxe0LqVlPnHl8=", + "ips": [ + "185.157.163.7" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn40.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "cQ502fzOND0Z30gvL052TyfexOUJSVhxe0LqVlPnHl8=", + "ips": [ + "185.157.163.7" + ], + "ports_udp": [ + 30040 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn41.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.8" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn41.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.8" + ], + "ports_tcp": [ + 20041 + ], + "ports_udp": [ + 20041 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn41.prd.malmo.ovpn.com", + "wgpubkey": "SsrnMUxqpJmL+Wt3R7qzI+N2yorKdIN0Uczc+pI0Lgw=", + "ips": [ + "185.157.163.8" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn41.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "SsrnMUxqpJmL+Wt3R7qzI+N2yorKdIN0Uczc+pI0Lgw=", + "ips": [ + "185.157.163.8" + ], + "ports_udp": [ + 30041 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn42.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.9" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn42.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.9" + ], + "ports_tcp": [ + 20042 + ], + "ports_udp": [ + 20042 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn42.prd.malmo.ovpn.com", + "wgpubkey": "+IBCelFHGdhCbdQF4DcgrTX5Qrd0rEtFfILFFbhdFAQ=", + "ips": [ + "185.157.163.9" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn42.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "+IBCelFHGdhCbdQF4DcgrTX5Qrd0rEtFfILFFbhdFAQ=", + "ips": [ + "185.157.163.9" + ], + "ports_udp": [ + 30042 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn49.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.10" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn49.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.10" + ], + "ports_tcp": [ + 20049 + ], + "ports_udp": [ + 20049 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn49.prd.malmo.ovpn.com", + "wgpubkey": "NYGEZ/jzfFHytINUM1LfNMluzCs8L7bo5C5ElaLavX8=", + "ips": [ + "185.157.163.10" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn49.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "NYGEZ/jzfFHytINUM1LfNMluzCs8L7bo5C5ElaLavX8=", + "ips": [ + "185.157.163.10" + ], + "ports_udp": [ + 30049 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn50.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.11" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn50.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.11" + ], + "ports_tcp": [ + 20050 + ], + "ports_udp": [ + 20050 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn50.prd.malmo.ovpn.com", + "wgpubkey": "wpckCrUUmi8x6Lp2Vac+4rMcCZtfFo0i1z0XlisITWY=", + "ips": [ + "185.157.163.11" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn50.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "wpckCrUUmi8x6Lp2Vac+4rMcCZtfFo0i1z0XlisITWY=", + "ips": [ + "185.157.163.11" + ], + "ports_udp": [ + 30050 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn51.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.12" + ], + "ports_tcp": [ + 20051 + ], + "ports_udp": [ + 20051 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn51.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.12" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn51.prd.malmo.ovpn.com", + "wgpubkey": "A87Mi+WRAFgVRnbPUQSAgAYHVDkCOIKxV0ymB6mKh2c=", + "ips": [ + "185.157.163.12" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn51.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "A87Mi+WRAFgVRnbPUQSAgAYHVDkCOIKxV0ymB6mKh2c=", + "ips": [ + "185.157.163.12" + ], + "ports_udp": [ + 30051 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn52.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.13" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn52.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.13" + ], + "ports_tcp": [ + 20052 + ], + "ports_udp": [ + 20052 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn52.prd.malmo.ovpn.com", + "wgpubkey": "ELx+DGi+E4Y+4m7Y7Bn2Y3Zo/4LuQJDR2U+WEskVigM=", + "ips": [ + "185.157.163.13" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn52.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "ELx+DGi+E4Y+4m7Y7Bn2Y3Zo/4LuQJDR2U+WEskVigM=", + "ips": [ + "185.157.163.13" + ], + "ports_udp": [ + 30052 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn53.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.14" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn53.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.14" + ], + "ports_tcp": [ + 20053 + ], + "ports_udp": [ + 20053 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn53.prd.malmo.ovpn.com", + "wgpubkey": "n3N0PnicxbfBrU8WtRmLvvnNJOniFk9z5ZZB/x2JAhM=", + "ips": [ + "185.157.163.14" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn53.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "n3N0PnicxbfBrU8WtRmLvvnNJOniFk9z5ZZB/x2JAhM=", + "ips": [ + "185.157.163.14" + ], + "ports_udp": [ + 30053 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn54.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.15" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn54.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.15" + ], + "ports_tcp": [ + 20054 + ], + "ports_udp": [ + 20054 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn54.prd.malmo.ovpn.com", + "wgpubkey": "ObyXywvMAwZuEr2kTvSNINdMI1USfjm0RY/X2LyNqCI=", + "ips": [ + "185.157.163.15" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn54.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "ObyXywvMAwZuEr2kTvSNINdMI1USfjm0RY/X2LyNqCI=", + "ips": [ + "185.157.163.15" + ], + "ports_udp": [ + 30054 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn55.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.16" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn55.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.16" + ], + "ports_tcp": [ + 20055 + ], + "ports_udp": [ + 20055 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn55.prd.malmo.ovpn.com", + "wgpubkey": "9c+vXcUewpf7OvTqxaXurpiSHLXHxAE6NjlWOI1wljE=", + "ips": [ + "185.157.163.16" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn55.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "9c+vXcUewpf7OvTqxaXurpiSHLXHxAE6NjlWOI1wljE=", + "ips": [ + "185.157.163.16" + ], + "ports_udp": [ + 30055 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn56.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "185.157.163.17" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn56.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "185.157.163.17" + ], + "ports_tcp": [ + 20056 + ], + "ports_udp": [ + 20056 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn56.prd.malmo.ovpn.com", + "wgpubkey": "1Wap+VGJRmMWBwcJLI2Zck56aN4rMzC6G4Em4X+h12g=", + "ips": [ + "185.157.163.17" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Malmö", + "hostname": "vpn56.prd.malmo.ovpn.com", + "multihop": true, + "wgpubkey": "1Wap+VGJRmMWBwcJLI2Zck56aN4rMzC6G4Em4X+h12g=", + "ips": [ + "185.157.163.17" + ], + "ports_udp": [ + 30056 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn02.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.46" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn02.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.46" + ], + "ports_tcp": [ + 20002 + ], + "ports_udp": [ + 20002 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn02.prd.kista.ovpn.com", + "wgpubkey": "X/9VAN4UImquYNAAh6WGzMhKPJMF1OSVp2aL2JGoml0=", + "ips": [ + "217.64.148.46" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn02.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "X/9VAN4UImquYNAAh6WGzMhKPJMF1OSVp2aL2JGoml0=", + "ips": [ + "217.64.148.46" + ], + "ports_udp": [ + 30002 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn03.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.47" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn03.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.47" + ], + "ports_tcp": [ + 20003 + ], + "ports_udp": [ + 20003 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn03.prd.kista.ovpn.com", + "wgpubkey": "stszvFCGUipu/kj28KC5merEmfhwjteFokZS+L3JR0A=", + "ips": [ + "217.64.148.47" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn03.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "stszvFCGUipu/kj28KC5merEmfhwjteFokZS+L3JR0A=", + "ips": [ + "217.64.148.47" + ], + "ports_udp": [ + 30003 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn04.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.48" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn04.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.48" + ], + "ports_tcp": [ + 20004 + ], + "ports_udp": [ + 20004 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn04.prd.kista.ovpn.com", + "wgpubkey": "ORHZz0byiajHB8cuA8Ss7UszWYTy9H+mzVR9GAioBiQ=", + "ips": [ + "217.64.148.48" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn04.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "ORHZz0byiajHB8cuA8Ss7UszWYTy9H+mzVR9GAioBiQ=", + "ips": [ + "217.64.148.48" + ], + "ports_udp": [ + 30004 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn05.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.49" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn05.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.49" + ], + "ports_tcp": [ + 20005 + ], + "ports_udp": [ + 20005 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn05.prd.kista.ovpn.com", + "wgpubkey": "TC/ASkCkJrk9UkOkQffY4TXn6dEtFEkahe3xxakb6VU=", + "ips": [ + "217.64.148.49" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn05.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "TC/ASkCkJrk9UkOkQffY4TXn6dEtFEkahe3xxakb6VU=", + "ips": [ + "217.64.148.49" + ], + "ports_udp": [ + 30005 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn09.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.50" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn09.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.50" + ], + "ports_tcp": [ + 20009 + ], + "ports_udp": [ + 20009 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn09.prd.kista.ovpn.com", + "wgpubkey": "T0Sd0czAhbArVNNd84OLCwhrYCeLipPmXhKzh99UCzw=", + "ips": [ + "217.64.148.50" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn09.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "T0Sd0czAhbArVNNd84OLCwhrYCeLipPmXhKzh99UCzw=", + "ips": [ + "217.64.148.50" + ], + "ports_udp": [ + 30009 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn10.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.51" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn10.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.51" + ], + "ports_tcp": [ + 20010 + ], + "ports_udp": [ + 20010 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn10.prd.kista.ovpn.com", + "wgpubkey": "KKCpXL20GjRtC8ADvYna/pTsrFAtML/ndWxbVifg8Uw=", + "ips": [ + "217.64.148.51" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn10.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "KKCpXL20GjRtC8ADvYna/pTsrFAtML/ndWxbVifg8Uw=", + "ips": [ + "217.64.148.51" + ], + "ports_udp": [ + 30010 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn11.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.52" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn11.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.52" + ], + "ports_tcp": [ + 20011 + ], + "ports_udp": [ + 20011 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn11.prd.kista.ovpn.com", + "wgpubkey": "p4s2SuFgKgWnV56Uh3yCx6ZWnaVyFXegV9FQqv670So=", + "ips": [ + "217.64.148.52" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn11.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "p4s2SuFgKgWnV56Uh3yCx6ZWnaVyFXegV9FQqv670So=", + "ips": [ + "217.64.148.52" + ], + "ports_udp": [ + 30011 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn12.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.53" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn12.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.53" + ], + "ports_tcp": [ + 20012 + ], + "ports_udp": [ + 20012 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn12.prd.kista.ovpn.com", + "wgpubkey": "UPKLcNO8+oav7Bsc8afNeN482pnieYLOBAh4vXdWFT0=", + "ips": [ + "217.64.148.53" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn12.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "UPKLcNO8+oav7Bsc8afNeN482pnieYLOBAh4vXdWFT0=", + "ips": [ + "217.64.148.53" + ], + "ports_udp": [ + 30012 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn13.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.54" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn13.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.54" + ], + "ports_tcp": [ + 20013 + ], + "ports_udp": [ + 20013 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn13.prd.kista.ovpn.com", + "wgpubkey": "HM+hbHGs2XZvKrY/cffcpVMNUIulaw+OFkgh6pT5ew0=", + "ips": [ + "217.64.148.54" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn13.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "HM+hbHGs2XZvKrY/cffcpVMNUIulaw+OFkgh6pT5ew0=", + "ips": [ + "217.64.148.54" + ], + "ports_udp": [ + 30013 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn14.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.55" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn14.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.55" + ], + "ports_tcp": [ + 20014 + ], + "ports_udp": [ + 20014 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn14.prd.kista.ovpn.com", + "wgpubkey": "0HRXO+7503LmhmEQmZOF1pqdaHaLA6qRuqXdX9yRInY=", + "ips": [ + "217.64.148.55" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn14.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "0HRXO+7503LmhmEQmZOF1pqdaHaLA6qRuqXdX9yRInY=", + "ips": [ + "217.64.148.55" + ], + "ports_udp": [ + 30014 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn15.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.56" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn15.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.56" + ], + "ports_tcp": [ + 20015 + ], + "ports_udp": [ + 20015 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn15.prd.kista.ovpn.com", + "wgpubkey": "FY1bA/jZI3PszkX1gapkXkleTwn4t/bRUNgDqDNhNxc=", + "ips": [ + "217.64.148.56" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn15.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "FY1bA/jZI3PszkX1gapkXkleTwn4t/bRUNgDqDNhNxc=", + "ips": [ + "217.64.148.56" + ], + "ports_udp": [ + 30015 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn16.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.57" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn16.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.57" + ], + "ports_tcp": [ + 20016 + ], + "ports_udp": [ + 20016 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn16.prd.kista.ovpn.com", + "wgpubkey": "mU72dBkCkhDTO0soVNOC9k3kCwvR5ok8khyq5bGEIQo=", + "ips": [ + "217.64.148.57" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn16.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "mU72dBkCkhDTO0soVNOC9k3kCwvR5ok8khyq5bGEIQo=", + "ips": [ + "217.64.148.57" + ], + "ports_udp": [ + 30016 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn20.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.58" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn20.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.58" + ], + "ports_tcp": [ + 20020 + ], + "ports_udp": [ + 20020 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn20.prd.kista.ovpn.com", + "wgpubkey": "Aeof2T0Bm7m84QXc8m+gRsh8vnPYTff/N2+AL5dEQD8=", + "ips": [ + "217.64.148.58" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn20.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "Aeof2T0Bm7m84QXc8m+gRsh8vnPYTff/N2+AL5dEQD8=", + "ips": [ + "217.64.148.58" + ], + "ports_udp": [ + 30020 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn21.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.59" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn21.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.59" + ], + "ports_tcp": [ + 20021 + ], + "ports_udp": [ + 20021 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn21.prd.kista.ovpn.com", + "wgpubkey": "FGUnScNCZsfUwC4GnBy0ngsv8a3JA5XzY09JRnILiUM=", + "ips": [ + "217.64.148.59" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn21.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "FGUnScNCZsfUwC4GnBy0ngsv8a3JA5XzY09JRnILiUM=", + "ips": [ + "217.64.148.59" + ], + "ports_udp": [ + 30021 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn22.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.60" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn22.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.60" + ], + "ports_tcp": [ + 20022 + ], + "ports_udp": [ + 20022 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn22.prd.kista.ovpn.com", + "wgpubkey": "Igv1l0dPkoYUsBs3I9h3gowP/2KyKQ33EjhBV+ePcRE=", + "ips": [ + "217.64.148.60" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn22.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "Igv1l0dPkoYUsBs3I9h3gowP/2KyKQ33EjhBV+ePcRE=", + "ips": [ + "217.64.148.60" + ], + "ports_udp": [ + 30022 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn23.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.61" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn23.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.61" + ], + "ports_tcp": [ + 20023 + ], + "ports_udp": [ + 20023 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn23.prd.kista.ovpn.com", + "wgpubkey": "RLsdj6aAifM6DBy8SIuEgQhUpnKG1100t9AsS6qjVyw=", + "ips": [ + "217.64.148.61" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn23.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "RLsdj6aAifM6DBy8SIuEgQhUpnKG1100t9AsS6qjVyw=", + "ips": [ + "217.64.148.61" + ], + "ports_udp": [ + 30023 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn24.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.62" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn24.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.62" + ], + "ports_tcp": [ + 20024 + ], + "ports_udp": [ + 20024 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn24.prd.kista.ovpn.com", + "wgpubkey": "NreXVQ561FNrarCTBBbkKlbWhTktSNtghgjFYzbFsWY=", + "ips": [ + "217.64.148.62" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn24.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "NreXVQ561FNrarCTBBbkKlbWhTktSNtghgjFYzbFsWY=", + "ips": [ + "217.64.148.62" + ], + "ports_udp": [ + 30024 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn46.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.63" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn46.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.63" + ], + "ports_tcp": [ + 20046 + ], + "ports_udp": [ + 20046 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn46.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "YRePpnEzsm1qm/k+9+CElm/hrvnERiGkgTaujaLwlyw=", + "ips": [ + "217.64.148.63" + ], + "ports_udp": [ + 30046 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn46.prd.kista.ovpn.com", + "wgpubkey": "YRePpnEzsm1qm/k+9+CElm/hrvnERiGkgTaujaLwlyw=", + "ips": [ + "217.64.148.63" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn47.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.64" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn47.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.64" + ], + "ports_tcp": [ + 20047 + ], + "ports_udp": [ + 20047 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn47.prd.kista.ovpn.com", + "wgpubkey": "QoAlHNWv5wPbInedS9EfZR60pyVScdQuYCp5BQxH2jg=", + "ips": [ + "217.64.148.64" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn47.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "QoAlHNWv5wPbInedS9EfZR60pyVScdQuYCp5BQxH2jg=", + "ips": [ + "217.64.148.64" + ], + "ports_udp": [ + 30047 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn48.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.65" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn48.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.65" + ], + "ports_tcp": [ + 20048 + ], + "ports_udp": [ + 20048 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn48.prd.kista.ovpn.com", + "wgpubkey": "m/LC0Y4eI5f5qF8ND/0dYMyPQB9wNLtWkyT/vYCnCkI=", + "ips": [ + "217.64.148.65" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn48.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "m/LC0Y4eI5f5qF8ND/0dYMyPQB9wNLtWkyT/vYCnCkI=", + "ips": [ + "217.64.148.65" + ], + "ports_udp": [ + 30048 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn60.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.66" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn60.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.66" + ], + "ports_tcp": [ + 20060 + ], + "ports_udp": [ + 20060 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn60.prd.kista.ovpn.com", + "wgpubkey": "ARxCW8r9U5KxsDgo5U7qWxsLF5sNIYV+rC7KAi/nNB0=", + "ips": [ + "217.64.148.66" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn60.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "ARxCW8r9U5KxsDgo5U7qWxsLF5sNIYV+rC7KAi/nNB0=", + "ips": [ + "217.64.148.66" + ], + "ports_udp": [ + 30060 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn61.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.67" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn61.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.67" + ], + "ports_tcp": [ + 20061 + ], + "ports_udp": [ + 20061 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn61.prd.kista.ovpn.com", + "wgpubkey": "aAFzYcp/M6rpQoxryEI8RAdmTquYzFeKNRET2g1RDwk=", + "ips": [ + "217.64.148.67" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn61.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "aAFzYcp/M6rpQoxryEI8RAdmTquYzFeKNRET2g1RDwk=", + "ips": [ + "217.64.148.67" + ], + "ports_udp": [ + 30061 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn62.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.68" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn62.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.68" + ], + "ports_tcp": [ + 20062 + ], + "ports_udp": [ + 20062 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn62.prd.kista.ovpn.com", + "wgpubkey": "ro8quDIMsn9tSLSffCsSx0qwZyKzAgVf4kMI7qTqxSs=", + "ips": [ + "217.64.148.68" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn62.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "ro8quDIMsn9tSLSffCsSx0qwZyKzAgVf4kMI7qTqxSs=", + "ips": [ + "217.64.148.68" + ], + "ports_udp": [ + 30062 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn63.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.69" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn63.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.69" + ], + "ports_tcp": [ + 20063 + ], + "ports_udp": [ + 20063 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn63.prd.kista.ovpn.com", + "wgpubkey": "vDhfsF9JrrcKdcWlX+fv0LDZT8k+TalxGObtdWHo8iU=", + "ips": [ + "217.64.148.69" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn63.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "vDhfsF9JrrcKdcWlX+fv0LDZT8k+TalxGObtdWHo8iU=", + "ips": [ + "217.64.148.69" + ], + "ports_udp": [ + 30063 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn64.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.70" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn64.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.70" + ], + "ports_tcp": [ + 20064 + ], + "ports_udp": [ + 20064 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn64.prd.kista.ovpn.com", + "wgpubkey": "jLwfeVIUOpAjOzrMC74DPouet1L59zgqed/YmCTa3y0=", + "ips": [ + "217.64.148.70" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn64.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "jLwfeVIUOpAjOzrMC74DPouet1L59zgqed/YmCTa3y0=", + "ips": [ + "217.64.148.70" + ], + "ports_udp": [ + 30064 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn74.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.71" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn74.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.71" + ], + "ports_tcp": [ + 20074 + ], + "ports_udp": [ + 20074 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn74.prd.kista.ovpn.com", + "wgpubkey": "i6ejwlJ3Qz9woJeypdOXgPVlnl7Kr3TNKZa9NyGlgFw=", + "ips": [ + "217.64.148.71" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn74.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "i6ejwlJ3Qz9woJeypdOXgPVlnl7Kr3TNKZa9NyGlgFw=", + "ips": [ + "217.64.148.71" + ], + "ports_udp": [ + 30074 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn75.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.72" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn75.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.72" + ], + "ports_tcp": [ + 20075 + ], + "ports_udp": [ + 20075 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn75.prd.kista.ovpn.com", + "wgpubkey": "xK/gtbtCdACJ9geWMAfCRoRXYFBDmbr8Y3VfuovzvHw=", + "ips": [ + "217.64.148.72" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn75.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "xK/gtbtCdACJ9geWMAfCRoRXYFBDmbr8Y3VfuovzvHw=", + "ips": [ + "217.64.148.72" + ], + "ports_udp": [ + 30075 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn76.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "217.64.148.73" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn76.prd.kista.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "217.64.148.73" + ], + "ports_tcp": [ + 20076 + ], + "ports_udp": [ + 20076 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn76.prd.kista.ovpn.com", + "wgpubkey": "zfZsLj1yQLC7q2ZA4hVqdl8G5h24VbcmP3VOTxrqwko=", + "ips": [ + "217.64.148.73" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Stockholm", + "hostname": "vpn76.prd.kista.ovpn.com", + "multihop": true, + "wgpubkey": "zfZsLj1yQLC7q2ZA4hVqdl8G5h24VbcmP3VOTxrqwko=", + "ips": [ + "217.64.148.73" + ], + "ports_udp": [ + 30076 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn85.prd.sundsvall.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.148.17.36" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn85.prd.sundsvall.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.148.17.36" + ], + "ports_tcp": [ + 20085 + ], + "ports_udp": [ + 20085 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn85.prd.sundsvall.ovpn.com", + "wgpubkey": "uppQOT0dl31VG4ziHQ9U2JLZ2Hz8J8Or7k5VYrcoXkk=", + "ips": [ + "45.148.17.36" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn85.prd.sundsvall.ovpn.com", + "multihop": true, + "wgpubkey": "uppQOT0dl31VG4ziHQ9U2JLZ2Hz8J8Or7k5VYrcoXkk=", + "ips": [ + "45.148.17.36" + ], + "ports_udp": [ + 30085 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn86.prd.sundsvall.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.148.17.37" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn86.prd.sundsvall.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.148.17.37" + ], + "ports_tcp": [ + 20086 + ], + "ports_udp": [ + 20086 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn86.prd.sundsvall.ovpn.com", + "multihop": true, + "wgpubkey": "Sgl5cXkX0FzEMtqUWmVpuIPyG/njXLKNJVlbvZVU7Dg=", + "ips": [ + "45.148.17.37" + ], + "ports_udp": [ + 30086 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn86.prd.sundsvall.ovpn.com", + "wgpubkey": "Sgl5cXkX0FzEMtqUWmVpuIPyG/njXLKNJVlbvZVU7Dg=", + "ips": [ + "45.148.17.37" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn87.prd.sundsvall.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.148.17.38" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn87.prd.sundsvall.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.148.17.38" + ], + "ports_tcp": [ + 20087 + ], + "ports_udp": [ + 20087 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn87.prd.sundsvall.ovpn.com", + "wgpubkey": "24r2AFrY1pmhcTR5DE5jx4mcwNsnNCT+ro1Z3hjXyik=", + "ips": [ + "45.148.17.38" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn87.prd.sundsvall.ovpn.com", + "multihop": true, + "wgpubkey": "24r2AFrY1pmhcTR5DE5jx4mcwNsnNCT+ro1Z3hjXyik=", + "ips": [ + "45.148.17.38" + ], + "ports_udp": [ + 30087 + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn88.prd.sundsvall.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.148.17.39" + ] + }, + { + "vpn": "openvpn", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn88.prd.sundsvall.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.148.17.39" + ], + "ports_tcp": [ + 20088 + ], + "ports_udp": [ + 20088 + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn88.prd.sundsvall.ovpn.com", + "wgpubkey": "oYhExIe8PAvSZLwh9Xcy9MAhwpjK/tgb8dHjY+l5w0M=", + "ips": [ + "45.148.17.39" + ] + }, + { + "vpn": "wireguard", + "country": "Sweden", + "city": "Sundsvall", + "hostname": "vpn88.prd.sundsvall.ovpn.com", + "multihop": true, + "wgpubkey": "oYhExIe8PAvSZLwh9Xcy9MAhwpjK/tgb8dHjY+l5w0M=", + "ips": [ + "45.148.17.39" + ], + "ports_udp": [ + 30088 + ] + }, + { + "vpn": "openvpn", + "country": "Switzerland", + "city": "Zurich", + "hostname": "vpn43.prd.zurich.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "152.89.162.4" + ] + }, + { + "vpn": "openvpn", + "country": "Switzerland", + "city": "Zurich", + "hostname": "vpn43.prd.zurich.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "152.89.162.4" + ], + "ports_tcp": [ + 20043 + ], + "ports_udp": [ + 20043 + ] + }, + { + "vpn": "wireguard", + "country": "Switzerland", + "city": "Zurich", + "hostname": "vpn43.prd.zurich.ovpn.com", + "wgpubkey": "BH/TUFM8TPoYqpry4o2ZF+rgW3DPTZHsB886Wq6aaCc=", + "ips": [ + "152.89.162.4" + ] + }, + { + "vpn": "wireguard", + "country": "Switzerland", + "city": "Zurich", + "hostname": "vpn43.prd.zurich.ovpn.com", + "multihop": true, + "wgpubkey": "BH/TUFM8TPoYqpry4o2ZF+rgW3DPTZHsB886Wq6aaCc=", + "ips": [ + "152.89.162.4" + ], + "ports_udp": [ + 30043 + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Atlanta", + "hostname": "vpn18.prd.atlanta.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.134.140.67" + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Atlanta", + "hostname": "vpn18.prd.atlanta.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.134.140.67" + ], + "ports_tcp": [ + 20018 + ], + "ports_udp": [ + 20018 + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Atlanta", + "hostname": "vpn18.prd.atlanta.ovpn.com", + "wgpubkey": "Dpg/4v5s9u0YbrXukfrMpkA+XQqKIFpf8ZFgyw0IkE0=", + "ips": [ + "45.134.140.67" + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Atlanta", + "hostname": "vpn18.prd.atlanta.ovpn.com", + "multihop": true, + "wgpubkey": "Dpg/4v5s9u0YbrXukfrMpkA+XQqKIFpf8ZFgyw0IkE0=", + "ips": [ + "45.134.140.67" + ], + "ports_udp": [ + 30018 + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Chicago", + "hostname": "vpn32.prd.chicago.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "87.249.134.67" + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Chicago", + "hostname": "vpn32.prd.chicago.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "87.249.134.67" + ], + "ports_tcp": [ + 20032 + ], + "ports_udp": [ + 20032 + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Chicago", + "hostname": "vpn32.prd.chicago.ovpn.com", + "wgpubkey": "f6diOpTYBzutXhnmXvP3D/9oT0S5SPlGwOJGa9HXfGY=", + "ips": [ + "87.249.134.67" + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Chicago", + "hostname": "vpn32.prd.chicago.ovpn.com", + "multihop": true, + "wgpubkey": "f6diOpTYBzutXhnmXvP3D/9oT0S5SPlGwOJGa9HXfGY=", + "ips": [ + "87.249.134.67" + ], + "ports_udp": [ + 30032 + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Dallas", + "hostname": "vpn33.prd.dallas.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "194.37.97.35" + ], + "ports_tcp": [ + 20033 + ], + "ports_udp": [ + 20033 + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Dallas", + "hostname": "vpn33.prd.dallas.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "194.37.97.35" + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Dallas", + "hostname": "vpn33.prd.dallas.ovpn.com", + "wgpubkey": "uxkKXVGjzXsDKbkxMGuN98F6N1BzgJnSzGseEgG7t3o=", + "ips": [ + "194.37.97.35" + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Dallas", + "hostname": "vpn33.prd.dallas.ovpn.com", + "multihop": true, + "wgpubkey": "uxkKXVGjzXsDKbkxMGuN98F6N1BzgJnSzGseEgG7t3o=", + "ips": [ + "194.37.97.35" + ], + "ports_udp": [ + 30033 + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Denver", + "hostname": "vpn103.prd.denver.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "169.150.231.243" + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Denver", + "hostname": "vpn103.prd.denver.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "169.150.231.243" + ], + "ports_tcp": [ + 20103 + ], + "ports_udp": [ + 20103 + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Denver", + "hostname": "vpn103.prd.denver.ovpn.com", + "wgpubkey": "gj9gAte4VKy3cY8HL3hb6IM5zdYtVQOSwNtMMpdDX3U=", + "ips": [ + "169.150.231.243" + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Denver", + "hostname": "vpn103.prd.denver.ovpn.com", + "multihop": true, + "wgpubkey": "gj9gAte4VKy3cY8HL3hb6IM5zdYtVQOSwNtMMpdDX3U=", + "ips": [ + "169.150.231.243" + ], + "ports_udp": [ + 30103 + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Los Angeles", + "hostname": "vpn31.prd.losangeles.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.83.89.131" + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Los Angeles", + "hostname": "vpn31.prd.losangeles.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.83.89.131" + ], + "ports_tcp": [ + 20031 + ], + "ports_udp": [ + 20031 + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Los Angeles", + "hostname": "vpn31.prd.losangeles.ovpn.com", + "wgpubkey": "VW6bEWMOlOneta1bf6YFE25N/oMGh1E1UFBCfyggd0k=", + "ips": [ + "45.83.89.131" + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Los Angeles", + "hostname": "vpn31.prd.losangeles.ovpn.com", + "multihop": true, + "wgpubkey": "VW6bEWMOlOneta1bf6YFE25N/oMGh1E1UFBCfyggd0k=", + "ips": [ + "45.83.89.131" + ], + "ports_udp": [ + 30031 + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Miami", + "hostname": "vpn34.prd.miami.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "45.134.142.3" + ], + "ports_tcp": [ + 20034 + ], + "ports_udp": [ + 20034 + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Miami", + "hostname": "vpn34.prd.miami.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "45.134.142.3" + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Miami", + "hostname": "vpn34.prd.miami.ovpn.com", + "wgpubkey": "VtJz2irbu8mdkIQvzlsYhU+k9d55or9mx4A2a14t0V0=", + "ips": [ + "45.134.142.3" + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Miami", + "hostname": "vpn34.prd.miami.ovpn.com", + "multihop": true, + "wgpubkey": "VtJz2irbu8mdkIQvzlsYhU+k9d55or9mx4A2a14t0V0=", + "ips": [ + "45.134.142.3" + ], + "ports_udp": [ + 30034 + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "New York", + "hostname": "vpn71.prd.newyork.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "5.181.234.131" + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "New York", + "hostname": "vpn71.prd.newyork.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "5.181.234.131" + ], + "ports_tcp": [ + 20071 + ], + "ports_udp": [ + 20071 + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "New York", + "hostname": "vpn71.prd.newyork.ovpn.com", + "multihop": true, + "wgpubkey": "xMbLX2Xtbp87E1vP7OButafaZBD4KHgjsa52Kc1FaTk=", + "ips": [ + "5.181.234.131" + ], + "ports_udp": [ + 30071 + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "New York", + "hostname": "vpn71.prd.newyork.ovpn.com", + "wgpubkey": "xMbLX2Xtbp87E1vP7OButafaZBD4KHgjsa52Kc1FaTk=", + "ips": [ + "5.181.234.131" + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Seattle", + "hostname": "vpn102.prd.seattle.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "156.146.51.227" + ] + }, + { + "vpn": "openvpn", + "country": "USA", + "city": "Seattle", + "hostname": "vpn102.prd.seattle.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "156.146.51.227" + ], + "ports_tcp": [ + 20102 + ], + "ports_udp": [ + 20102 + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Seattle", + "hostname": "vpn102.prd.seattle.ovpn.com", + "wgpubkey": "aDi7CV3ueV3XCRNHOjlo6AxCLyS4s8maKgL9MbwF9W8=", + "ips": [ + "156.146.51.227" + ] + }, + { + "vpn": "wireguard", + "country": "USA", + "city": "Seattle", + "hostname": "vpn102.prd.seattle.ovpn.com", + "multihop": true, + "wgpubkey": "aDi7CV3ueV3XCRNHOjlo6AxCLyS4s8maKgL9MbwF9W8=", + "ips": [ + "156.146.51.227" + ], + "ports_udp": [ + 30102 + ] + }, + { + "vpn": "openvpn", + "country": "Ukraine", + "city": "Kyiv", + "hostname": "vpn96.prd.kyiv.ovpn.com", + "tcp": true, + "udp": true, + "ips": [ + "143.244.46.147" + ] + }, + { + "vpn": "openvpn", + "country": "Ukraine", + "city": "Kyiv", + "hostname": "vpn96.prd.kyiv.ovpn.com", + "tcp": true, + "udp": true, + "multihop": true, + "ips": [ + "143.244.46.147" + ], + "ports_tcp": [ + 20096 + ], + "ports_udp": [ + 20096 + ] + }, + { + "vpn": "wireguard", + "country": "Ukraine", + "city": "Kyiv", + "hostname": "vpn96.prd.kyiv.ovpn.com", + "wgpubkey": "CjZcXDxaaKpW8b5As1EcNbI6+42A6BjWahwXDCwfVFg=", + "ips": [ + "143.244.46.147" + ] + }, + { + "vpn": "wireguard", + "country": "Ukraine", + "city": "Kyiv", + "hostname": "vpn96.prd.kyiv.ovpn.com", + "multihop": true, + "wgpubkey": "CjZcXDxaaKpW8b5As1EcNbI6+42A6BjWahwXDCwfVFg=", + "ips": [ + "143.244.46.147" + ], + "ports_udp": [ + 30096 + ] + } + ] + }, "perfect privacy": { "version": 1, "timestamp": 1682032240, From ff93ea6bacb8c63a4d8733d6561105cf8b570c1d Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Sun, 27 Oct 2024 12:53:50 +0000 Subject: [PATCH 2/6] Add missing openvpn options - CA - TLS auth - TLS crypt (for singapore) - `allow-compression asym` - `replay-window 256` - remote-cert-tls server - move aes256gcm as preferred cipher --- internal/provider/ovpn/openvpnconf.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/internal/provider/ovpn/openvpnconf.go b/internal/provider/ovpn/openvpnconf.go index 3e09d54e0..e86793c74 100644 --- a/internal/provider/ovpn/openvpnconf.go +++ b/internal/provider/ovpn/openvpnconf.go @@ -11,12 +11,22 @@ func (p *Provider) OpenVPNConfig(connection models.Connection, settings settings.OpenVPN, ipv6Supported bool, ) (lines []string) { providerSettings := utils.OpenVPNProviderSettings{ - AuthUserPass: true, + AuthUserPass: true, + RemoteCertTLS: true, Ciphers: []string{ - openvpn.Chacha20Poly1305, openvpn.AES256gcm, openvpn.AES256cbc, openvpn.AES128gcm, + openvpn.Chacha20Poly1305, + }, + CAs: []string{ + "MIIEfTCCA2WgAwIBAgIJAK2aIWqpLj1/MA0GCSqGSIb3DQEBBQUAMIGFMQswCQYDVQQGEwJTRTESMBAGA1UECBMJU3RvY2tob2xtMRIwEAYDVQQHEwlTdG9ja2hvbG0xHDAaBgNVBAsTE0Zpcm1hIERhdmlkIFdpYmVyZ2gxEzARBgNVBAMTCm92cG4uc2UgY2ExGzAZBgkqhkiG9w0BCQEWDGluZm9Ab3Zwbi5zZTAeFw0xNDA4MTcxODIxMjlaFw0zNDA4MTIxODIxMjlaMIGFMQswCQYDVQQGEwJTRTESMBAGA1UECBMJU3RvY2tob2xtMRIwEAYDVQQHEwlTdG9ja2hvbG0xHDAaBgNVBAsTE0Zpcm1hIERhdmlkIFdpYmVyZ2gxEzARBgNVBAMTCm92cG4uc2UgY2ExGzAZBgkqhkiG9w0BCQEWDGluZm9Ab3Zwbi5zZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMR+aP4GTuZwurZuOA2NYzMfqKyZi/TJcLEPlGTB/b4CWA9bTd8f0pHPrDAZsXIEayxxB58BIFNDNiybnbO15JN/QwlsqmA+aZX6mCSkScs/rRwasM6LDo8iGx+KmYEqAgzziONGbCMnlO+OaarXte7LhZ9X6Z/bryu4xq/i1v3raak13kXsrogtu4iDzxqJE/QhbNOi0yhCdlm5RYQjmlKGdPB9pNTgcakVI4HcngRYMzBlrGin0YkvWCdpx5FrDNeld7BSWrJMNYyvd+buaid0Fu1T9/P/Srj/8AiabKoaDyiGFbZdTnGfK+04lWRvwAmvazpqbUt5Omw634jJDuMCAwEAAaOB7TCB6jAdBgNVHQ4EFgQUEvJcHHcTiDtu7bAyZw+xaqg+xdIwgboGA1UdIwSBsjCBr4AUEvJcHHcTiDtu7bAyZw+xaqg+xdKhgYukgYgwgYUxCzAJBgNVBAYTAlNFMRIwEAYDVQQIEwlTdG9ja2hvbG0xEjAQBgNVBAcTCVN0b2NraG9sbTEcMBoGA1UECxMTRmlybWEgRGF2aWQgV2liZXJnaDETMBEGA1UEAxMKb3Zwbi5zZSBjYTEbMBkGCSqGSIb3DQEJARYMaW5mb0BvdnBuLnNlggkArZohaqkuPX8wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAJmID6OyBJbV7ayPPgquojF+FICuDdOfGVKP828cyISxcbVA04VpD0QLYVb0k9pFUx0NbgX2SvRTiFhP7LcyS1HV9s+XLCb2WItPPsrdRTwtqU2n3TlCEzWA3WOcOCtT6JSkv1eelmx1JnP0gYJrDvDvRYBFctwWhtE0bineSQkZwN6980zkknADLAiHpeZSu/AMx7CGTwA6SmoFvpNBmHXDcfe/9ZqbbYfUfyPNe+0JbMrcv1elKi+6wlEkHFaEBphiZwGEbOX1CjUMcQFgW/cIp3n50Eiyx6ktuqimhyb59P4Nw8gqH452tTtE4MM/brA5y0Q0WFBRBojfZIbGWWQ==", //nolint:lll + }, + TLSAuth: "81782767e4d59c4464cc5d1896f1cf6015017d53ac62e2e3b94b889e00b2c69ddc01944fe1c6d895b4d80540502eb71910b8d785c9efa9e3182343532adffe1cfbb7bb6eae39c502da2748edf0fb89b8a20b0a1085cc1f06135037881bc0c4ad8f2c0f4f72d2ab466fb54af3d8264c5fddeb0f21aa0ca41863678f5fc4c44de4ca0926b36dfddc42c6f2fabd1694bdc8215b2d223b9c21dc6734c2c778093187afb8c33403b228b9af68b540c284f6d183bcc88bd41d47bd717996e499ce1cbbfa768a9723c19c58314c4d19cfed82e543ee92e73d38ad26d4fbec231c0f9f3b30773a5c87792e9bc7c34e8d7611002ebedd044e48a0f1f96527bfdcc940aa09", //nolint:lll + TLSCrypt: "81782767e4d59c4464cc5d1896f1cf6015017d53ac62e2e3b94b889e00b2c69ddc01944fe1c6d895b4d80540502eb71910b8d785c9efa9e3182343532adffe1cfbb7bb6eae39c502da2748edf0fb89b8a20b0a1085cc1f06135037881bc0c4ad8f2c0f4f72d2ab466fb54af3d8264c5fddeb0f21aa0ca41863678f5fc4c44de4ca0926b36dfddc42c6f2fabd1694bdc8215b2d223b9c21dc6734c2c778093187afb8c33403b228b9af68b540c284f6d183bcc88bd41d47bd717996e499ce1cbbfa768a9723c19c58314c4d19cfed82e543ee92e73d38ad26d4fbec231c0f9f3b30773a5c87792e9bc7c34e8d7611002ebedd044e48a0f1f96527bfdcc940aa09", //nolint:lll + ExtraLines: []string{ + "allow-compression asym", + "replay-window 256", }, } return utils.OpenVPNConfig(providerSettings, connection, settings, ipv6Supported) From 355cb950c3b31ca7fdc84891e5c6b81c3df7861d Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Fri, 8 Nov 2024 16:19:57 +0000 Subject: [PATCH 3/6] Set TLS crypt for Singapore hostnames only --- internal/provider/ovpn/openvpnconf.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/provider/ovpn/openvpnconf.go b/internal/provider/ovpn/openvpnconf.go index e86793c74..1bcb1b93c 100644 --- a/internal/provider/ovpn/openvpnconf.go +++ b/internal/provider/ovpn/openvpnconf.go @@ -1,6 +1,8 @@ package ovpn import ( + "strings" + "github.com/qdm12/gluetun/internal/configuration/settings" "github.com/qdm12/gluetun/internal/constants/openvpn" "github.com/qdm12/gluetun/internal/models" @@ -22,12 +24,17 @@ func (p *Provider) OpenVPNConfig(connection models.Connection, CAs: []string{ "MIIEfTCCA2WgAwIBAgIJAK2aIWqpLj1/MA0GCSqGSIb3DQEBBQUAMIGFMQswCQYDVQQGEwJTRTESMBAGA1UECBMJU3RvY2tob2xtMRIwEAYDVQQHEwlTdG9ja2hvbG0xHDAaBgNVBAsTE0Zpcm1hIERhdmlkIFdpYmVyZ2gxEzARBgNVBAMTCm92cG4uc2UgY2ExGzAZBgkqhkiG9w0BCQEWDGluZm9Ab3Zwbi5zZTAeFw0xNDA4MTcxODIxMjlaFw0zNDA4MTIxODIxMjlaMIGFMQswCQYDVQQGEwJTRTESMBAGA1UECBMJU3RvY2tob2xtMRIwEAYDVQQHEwlTdG9ja2hvbG0xHDAaBgNVBAsTE0Zpcm1hIERhdmlkIFdpYmVyZ2gxEzARBgNVBAMTCm92cG4uc2UgY2ExGzAZBgkqhkiG9w0BCQEWDGluZm9Ab3Zwbi5zZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMR+aP4GTuZwurZuOA2NYzMfqKyZi/TJcLEPlGTB/b4CWA9bTd8f0pHPrDAZsXIEayxxB58BIFNDNiybnbO15JN/QwlsqmA+aZX6mCSkScs/rRwasM6LDo8iGx+KmYEqAgzziONGbCMnlO+OaarXte7LhZ9X6Z/bryu4xq/i1v3raak13kXsrogtu4iDzxqJE/QhbNOi0yhCdlm5RYQjmlKGdPB9pNTgcakVI4HcngRYMzBlrGin0YkvWCdpx5FrDNeld7BSWrJMNYyvd+buaid0Fu1T9/P/Srj/8AiabKoaDyiGFbZdTnGfK+04lWRvwAmvazpqbUt5Omw634jJDuMCAwEAAaOB7TCB6jAdBgNVHQ4EFgQUEvJcHHcTiDtu7bAyZw+xaqg+xdIwgboGA1UdIwSBsjCBr4AUEvJcHHcTiDtu7bAyZw+xaqg+xdKhgYukgYgwgYUxCzAJBgNVBAYTAlNFMRIwEAYDVQQIEwlTdG9ja2hvbG0xEjAQBgNVBAcTCVN0b2NraG9sbTEcMBoGA1UECxMTRmlybWEgRGF2aWQgV2liZXJnaDETMBEGA1UEAxMKb3Zwbi5zZSBjYTEbMBkGCSqGSIb3DQEJARYMaW5mb0BvdnBuLnNlggkArZohaqkuPX8wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAJmID6OyBJbV7ayPPgquojF+FICuDdOfGVKP828cyISxcbVA04VpD0QLYVb0k9pFUx0NbgX2SvRTiFhP7LcyS1HV9s+XLCb2WItPPsrdRTwtqU2n3TlCEzWA3WOcOCtT6JSkv1eelmx1JnP0gYJrDvDvRYBFctwWhtE0bineSQkZwN6980zkknADLAiHpeZSu/AMx7CGTwA6SmoFvpNBmHXDcfe/9ZqbbYfUfyPNe+0JbMrcv1elKi+6wlEkHFaEBphiZwGEbOX1CjUMcQFgW/cIp3n50Eiyx6ktuqimhyb59P4Nw8gqH452tTtE4MM/brA5y0Q0WFBRBojfZIbGWWQ==", //nolint:lll }, - TLSAuth: "81782767e4d59c4464cc5d1896f1cf6015017d53ac62e2e3b94b889e00b2c69ddc01944fe1c6d895b4d80540502eb71910b8d785c9efa9e3182343532adffe1cfbb7bb6eae39c502da2748edf0fb89b8a20b0a1085cc1f06135037881bc0c4ad8f2c0f4f72d2ab466fb54af3d8264c5fddeb0f21aa0ca41863678f5fc4c44de4ca0926b36dfddc42c6f2fabd1694bdc8215b2d223b9c21dc6734c2c778093187afb8c33403b228b9af68b540c284f6d183bcc88bd41d47bd717996e499ce1cbbfa768a9723c19c58314c4d19cfed82e543ee92e73d38ad26d4fbec231c0f9f3b30773a5c87792e9bc7c34e8d7611002ebedd044e48a0f1f96527bfdcc940aa09", //nolint:lll - TLSCrypt: "81782767e4d59c4464cc5d1896f1cf6015017d53ac62e2e3b94b889e00b2c69ddc01944fe1c6d895b4d80540502eb71910b8d785c9efa9e3182343532adffe1cfbb7bb6eae39c502da2748edf0fb89b8a20b0a1085cc1f06135037881bc0c4ad8f2c0f4f72d2ab466fb54af3d8264c5fddeb0f21aa0ca41863678f5fc4c44de4ca0926b36dfddc42c6f2fabd1694bdc8215b2d223b9c21dc6734c2c778093187afb8c33403b228b9af68b540c284f6d183bcc88bd41d47bd717996e499ce1cbbfa768a9723c19c58314c4d19cfed82e543ee92e73d38ad26d4fbec231c0f9f3b30773a5c87792e9bc7c34e8d7611002ebedd044e48a0f1f96527bfdcc940aa09", //nolint:lll + TLSAuth: "81782767e4d59c4464cc5d1896f1cf6015017d53ac62e2e3b94b889e00b2c69ddc01944fe1c6d895b4d80540502eb71910b8d785c9efa9e3182343532adffe1cfbb7bb6eae39c502da2748edf0fb89b8a20b0a1085cc1f06135037881bc0c4ad8f2c0f4f72d2ab466fb54af3d8264c5fddeb0f21aa0ca41863678f5fc4c44de4ca0926b36dfddc42c6f2fabd1694bdc8215b2d223b9c21dc6734c2c778093187afb8c33403b228b9af68b540c284f6d183bcc88bd41d47bd717996e499ce1cbbfa768a9723c19c58314c4d19cfed82e543ee92e73d38ad26d4fbec231c0f9f3b30773a5c87792e9bc7c34e8d7611002ebedd044e48a0f1f96527bfdcc940aa09", //nolint:lll ExtraLines: []string{ "allow-compression asym", "replay-window 256", }, } + + if strings.HasSuffix(connection.Hostname, "singapore.ovpn.com") { + providerSettings.TLSCrypt = providerSettings.TLSAuth + providerSettings.TLSAuth = "" + } + return utils.OpenVPNConfig(providerSettings, connection, settings, ipv6Supported) } From 9c514bf6613bed78709d8fc021f6f6e4aa832ea8 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Wed, 25 Dec 2024 12:49:22 +0000 Subject: [PATCH 4/6] Add missing "key-direction 1" --- internal/provider/ovpn/openvpnconf.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/provider/ovpn/openvpnconf.go b/internal/provider/ovpn/openvpnconf.go index 1bcb1b93c..4a723b08b 100644 --- a/internal/provider/ovpn/openvpnconf.go +++ b/internal/provider/ovpn/openvpnconf.go @@ -24,7 +24,8 @@ func (p *Provider) OpenVPNConfig(connection models.Connection, CAs: []string{ "MIIEfTCCA2WgAwIBAgIJAK2aIWqpLj1/MA0GCSqGSIb3DQEBBQUAMIGFMQswCQYDVQQGEwJTRTESMBAGA1UECBMJU3RvY2tob2xtMRIwEAYDVQQHEwlTdG9ja2hvbG0xHDAaBgNVBAsTE0Zpcm1hIERhdmlkIFdpYmVyZ2gxEzARBgNVBAMTCm92cG4uc2UgY2ExGzAZBgkqhkiG9w0BCQEWDGluZm9Ab3Zwbi5zZTAeFw0xNDA4MTcxODIxMjlaFw0zNDA4MTIxODIxMjlaMIGFMQswCQYDVQQGEwJTRTESMBAGA1UECBMJU3RvY2tob2xtMRIwEAYDVQQHEwlTdG9ja2hvbG0xHDAaBgNVBAsTE0Zpcm1hIERhdmlkIFdpYmVyZ2gxEzARBgNVBAMTCm92cG4uc2UgY2ExGzAZBgkqhkiG9w0BCQEWDGluZm9Ab3Zwbi5zZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMR+aP4GTuZwurZuOA2NYzMfqKyZi/TJcLEPlGTB/b4CWA9bTd8f0pHPrDAZsXIEayxxB58BIFNDNiybnbO15JN/QwlsqmA+aZX6mCSkScs/rRwasM6LDo8iGx+KmYEqAgzziONGbCMnlO+OaarXte7LhZ9X6Z/bryu4xq/i1v3raak13kXsrogtu4iDzxqJE/QhbNOi0yhCdlm5RYQjmlKGdPB9pNTgcakVI4HcngRYMzBlrGin0YkvWCdpx5FrDNeld7BSWrJMNYyvd+buaid0Fu1T9/P/Srj/8AiabKoaDyiGFbZdTnGfK+04lWRvwAmvazpqbUt5Omw634jJDuMCAwEAAaOB7TCB6jAdBgNVHQ4EFgQUEvJcHHcTiDtu7bAyZw+xaqg+xdIwgboGA1UdIwSBsjCBr4AUEvJcHHcTiDtu7bAyZw+xaqg+xdKhgYukgYgwgYUxCzAJBgNVBAYTAlNFMRIwEAYDVQQIEwlTdG9ja2hvbG0xEjAQBgNVBAcTCVN0b2NraG9sbTEcMBoGA1UECxMTRmlybWEgRGF2aWQgV2liZXJnaDETMBEGA1UEAxMKb3Zwbi5zZSBjYTEbMBkGCSqGSIb3DQEJARYMaW5mb0BvdnBuLnNlggkArZohaqkuPX8wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAJmID6OyBJbV7ayPPgquojF+FICuDdOfGVKP828cyISxcbVA04VpD0QLYVb0k9pFUx0NbgX2SvRTiFhP7LcyS1HV9s+XLCb2WItPPsrdRTwtqU2n3TlCEzWA3WOcOCtT6JSkv1eelmx1JnP0gYJrDvDvRYBFctwWhtE0bineSQkZwN6980zkknADLAiHpeZSu/AMx7CGTwA6SmoFvpNBmHXDcfe/9ZqbbYfUfyPNe+0JbMrcv1elKi+6wlEkHFaEBphiZwGEbOX1CjUMcQFgW/cIp3n50Eiyx6ktuqimhyb59P4Nw8gqH452tTtE4MM/brA5y0Q0WFBRBojfZIbGWWQ==", //nolint:lll }, - TLSAuth: "81782767e4d59c4464cc5d1896f1cf6015017d53ac62e2e3b94b889e00b2c69ddc01944fe1c6d895b4d80540502eb71910b8d785c9efa9e3182343532adffe1cfbb7bb6eae39c502da2748edf0fb89b8a20b0a1085cc1f06135037881bc0c4ad8f2c0f4f72d2ab466fb54af3d8264c5fddeb0f21aa0ca41863678f5fc4c44de4ca0926b36dfddc42c6f2fabd1694bdc8215b2d223b9c21dc6734c2c778093187afb8c33403b228b9af68b540c284f6d183bcc88bd41d47bd717996e499ce1cbbfa768a9723c19c58314c4d19cfed82e543ee92e73d38ad26d4fbec231c0f9f3b30773a5c87792e9bc7c34e8d7611002ebedd044e48a0f1f96527bfdcc940aa09", //nolint:lll + TLSAuth: "81782767e4d59c4464cc5d1896f1cf6015017d53ac62e2e3b94b889e00b2c69ddc01944fe1c6d895b4d80540502eb71910b8d785c9efa9e3182343532adffe1cfbb7bb6eae39c502da2748edf0fb89b8a20b0a1085cc1f06135037881bc0c4ad8f2c0f4f72d2ab466fb54af3d8264c5fddeb0f21aa0ca41863678f5fc4c44de4ca0926b36dfddc42c6f2fabd1694bdc8215b2d223b9c21dc6734c2c778093187afb8c33403b228b9af68b540c284f6d183bcc88bd41d47bd717996e499ce1cbbfa768a9723c19c58314c4d19cfed82e543ee92e73d38ad26d4fbec231c0f9f3b30773a5c87792e9bc7c34e8d7611002ebedd044e48a0f1f96527bfdcc940aa09", //nolint:lll + KeyDirection: "1", ExtraLines: []string{ "allow-compression asym", "replay-window 256", @@ -34,6 +35,7 @@ func (p *Provider) OpenVPNConfig(connection models.Connection, if strings.HasSuffix(connection.Hostname, "singapore.ovpn.com") { providerSettings.TLSCrypt = providerSettings.TLSAuth providerSettings.TLSAuth = "" + providerSettings.KeyDirection = "" } return utils.OpenVPNConfig(providerSettings, connection, settings, ipv6Supported) From 8f386dd91ea334e92df504e7309f7e0d3af07a1a Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Fri, 27 Dec 2024 20:05:35 +0000 Subject: [PATCH 5/6] Remove support for multihop --- internal/provider/ovpn/updater/api.go | 26 +- internal/provider/ovpn/updater/api_test.go | 12 +- internal/provider/ovpn/updater/servers.go | 11 +- .../provider/ovpn/updater/servers_test.go | 28 +- internal/storage/servers.json | 3856 ++--------------- 5 files changed, 412 insertions(+), 3521 deletions(-) diff --git a/internal/provider/ovpn/updater/api.go b/internal/provider/ovpn/updater/api.go index 226665697..1f5e89f5c 100644 --- a/internal/provider/ovpn/updater/api.go +++ b/internal/provider/ovpn/updater/api.go @@ -24,13 +24,11 @@ type apiDataCenter struct { } type apiServer struct { - IP netip.Addr `json:"ip"` - Ptr string `json:"ptr"` // hostname - Online bool `json:"online"` - PublicKey string `json:"public_key"` - WireguardPorts []uint16 `json:"wireguard_ports"` - MultiHopOpenvpnPort uint16 `json:"multihop_openvpn_port"` - MultiHopWireguardPort uint16 `json:"multihop_wireguard_port"` + IP netip.Addr `json:"ip"` + Ptr string `json:"ptr"` // hostname + Online bool `json:"online"` + PublicKey string `json:"public_key"` + WireguardPorts []uint16 `json:"wireguard_ports"` } func fetchAPI(ctx context.Context, client *http.Client) ( @@ -109,13 +107,11 @@ func (a *apiDataCenter) validate() (err error) { } var ( - ErrIPFieldNotValid = errors.New("ip address is not set") - ErrHostnameFieldNotSet = errors.New("hostname field is not set") - ErrPublicKeyFieldNotSet = errors.New("public key field is not set") - ErrWireguardPortsNotSet = errors.New("wireguard ports array is not set") - ErrWireguardPortNotDefault = errors.New("wireguard port is not the default 9929") - ErrMultiHopOpenVPNPortNotSet = errors.New("multihop OpenVPN port is not set") - ErrMultiHopWireguardPortNotSet = errors.New("multihop WireGuard port is not set") + ErrIPFieldNotValid = errors.New("ip address is not set") + ErrHostnameFieldNotSet = errors.New("hostname field is not set") + ErrPublicKeyFieldNotSet = errors.New("public key field is not set") + ErrWireguardPortsNotSet = errors.New("wireguard ports array is not set") + ErrWireguardPortNotDefault = errors.New("wireguard port is not the default 9929") ) func (a *apiServer) validate() (err error) { @@ -129,8 +125,6 @@ func (a *apiServer) validate() (err error) { err: ErrWireguardPortNotDefault, condition: len(a.WireguardPorts) != 1 || a.WireguardPorts[0] != defaultWireguardPort, }, - {err: ErrMultiHopOpenVPNPortNotSet, condition: a.MultiHopOpenvpnPort == 0}, - {err: ErrMultiHopWireguardPortNotSet, condition: a.MultiHopWireguardPort == 0}, } err = collectErrors(conditionalErrors) switch { diff --git a/internal/provider/ovpn/updater/api_test.go b/internal/provider/ovpn/updater/api_test.go index 7fd95dd43..c20581971 100644 --- a/internal/provider/ovpn/updater/api_test.go +++ b/internal/provider/ovpn/updater/api_test.go @@ -72,13 +72,11 @@ func Test_fetchAPI(t *testing.T) { DataCenters: []apiDataCenter{ {CountryName: "Austria", City: "Vienna", Servers: []apiServer{ { - IP: netip.MustParseAddr("37.120.212.227"), - Ptr: "vpn44.prd.vienna.ovpn.com", - Online: true, - PublicKey: "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", - WireguardPorts: []uint16{9929}, - MultiHopOpenvpnPort: 20044, - MultiHopWireguardPort: 30044, + IP: netip.MustParseAddr("37.120.212.227"), + Ptr: "vpn44.prd.vienna.ovpn.com", + Online: true, + PublicKey: "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", + WireguardPorts: []uint16{9929}, }, }}, }, diff --git a/internal/provider/ovpn/updater/servers.go b/internal/provider/ovpn/updater/servers.go index d3421e502..9ec82463d 100644 --- a/internal/provider/ovpn/updater/servers.go +++ b/internal/provider/ovpn/updater/servers.go @@ -46,19 +46,12 @@ func (u *Updater) FetchServers(ctx context.Context, minServers int) ( openVPNServer.VPN = vpn.OpenVPN openVPNServer.TCP = true openVPNServer.UDP = true - multiHopOpenVPNServer := openVPNServer - multiHopOpenVPNServer.MultiHop = true - multiHopOpenVPNServer.PortsTCP = []uint16{apiServer.MultiHopOpenvpnPort} - multiHopOpenVPNServer.PortsUDP = []uint16{apiServer.MultiHopOpenvpnPort} - servers = append(servers, openVPNServer, multiHopOpenVPNServer) + servers = append(servers, openVPNServer) wireguardServer := baseServer wireguardServer.VPN = vpn.Wireguard wireguardServer.WgPubKey = apiServer.PublicKey - multiHopWireguardServer := wireguardServer - multiHopWireguardServer.MultiHop = true - multiHopWireguardServer.PortsUDP = []uint16{apiServer.MultiHopWireguardPort} - servers = append(servers, wireguardServer, multiHopWireguardServer) + servers = append(servers, wireguardServer) } } diff --git a/internal/provider/ovpn/updater/servers_test.go b/internal/provider/ovpn/updater/servers_test.go index 23b439b9b..4d0d0eb90 100644 --- a/internal/provider/ovpn/updater/servers_test.go +++ b/internal/provider/ovpn/updater/servers_test.go @@ -58,7 +58,7 @@ func Test_Updater_FetchServers(t *testing.T) { errMessage: "validating data center 1 of 1: data center Vienna: country name is not set", }, "not_enough_servers": { - minServers: 5, + minServers: 3, responseStatus: http.StatusOK, responseBody: `{ "success": true, @@ -81,10 +81,10 @@ func Test_Updater_FetchServers(t *testing.T) { ] }`, errWrapped: common.ErrNotEnoughServers, - errMessage: "not enough servers found: 4 and expected at least 5", + errMessage: "not enough servers found: 2 and expected at least 3", }, "success": { - minServers: 4, + minServers: 2, responseBody: `{ "success": true, "datacenters": [ @@ -136,26 +136,6 @@ func Test_Updater_FetchServers(t *testing.T) { UDP: true, TCP: true, }, - { - Country: "Austria", - City: "Vienna", - Hostname: "vpn44.prd.vienna.ovpn.com", - IPs: []netip.Addr{netip.MustParseAddr("37.120.212.227")}, - VPN: vpn.OpenVPN, - UDP: true, - TCP: true, - MultiHop: true, - PortsTCP: []uint16{20044}, - PortsUDP: []uint16{20044}, - }, - { - Country: "Austria", - City: "Vienna", - Hostname: "vpn44.prd.vienna.ovpn.com", - IPs: []netip.Addr{netip.MustParseAddr("37.120.212.227")}, - VPN: vpn.Wireguard, - WgPubKey: "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", - }, { Country: "Austria", City: "Vienna", @@ -163,8 +143,6 @@ func Test_Updater_FetchServers(t *testing.T) { IPs: []netip.Addr{netip.MustParseAddr("37.120.212.227")}, VPN: vpn.Wireguard, WgPubKey: "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", - MultiHop: true, - PortsUDP: []uint16{30044}, }, }, }, diff --git a/internal/storage/servers.json b/internal/storage/servers.json index 3a362396b..04c83c2ed 100644 --- a/internal/storage/servers.json +++ b/internal/storage/servers.json @@ -251671,7 +251671,7 @@ }, "ovpn": { "version": 1, - "timestamp": 1729674302, + "timestamp": 1735329840, "servers": [ { "vpn": "openvpn", @@ -251684,57 +251684,14 @@ "217.138.204.35" ] }, - { - "vpn": "openvpn", - "country": "Australia", - "city": "Sydney", - "hostname": "vpn26.prd.sydney.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.138.204.35" - ], - "ports_tcp": [ - 20026 - ], - "ports_udp": [ - 20026 - ] - }, - { - "vpn": "wireguard", - "country": "Australia", - "city": "Sydney", - "hostname": "vpn26.prd.sydney.ovpn.com", - "wgpubkey": "cZ/SWgQDt6hnJnTSeUIHVIb+hL9SSzmnMStKKimPUGM=", - "ips": [ - "217.138.204.35" - ] - }, { "vpn": "wireguard", "country": "Australia", "city": "Sydney", "hostname": "vpn26.prd.sydney.ovpn.com", - "multihop": true, "wgpubkey": "cZ/SWgQDt6hnJnTSeUIHVIb+hL9SSzmnMStKKimPUGM=", "ips": [ "217.138.204.35" - ], - "ports_udp": [ - 30026 - ] - }, - { - "vpn": "openvpn", - "country": "Austria", - "city": "Vienna", - "hostname": "vpn44.prd.vienna.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "37.120.212.227" ] }, { @@ -251744,23 +251701,6 @@ "hostname": "vpn44.prd.vienna.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "37.120.212.227" - ], - "ports_tcp": [ - 20044 - ], - "ports_udp": [ - 20044 - ] - }, - { - "vpn": "wireguard", - "country": "Austria", - "city": "Vienna", - "hostname": "vpn44.prd.vienna.ovpn.com", - "wgpubkey": "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", "ips": [ "37.120.212.227" ] @@ -251770,13 +251710,9 @@ "country": "Austria", "city": "Vienna", "hostname": "vpn44.prd.vienna.ovpn.com", - "multihop": true, "wgpubkey": "r83LIc0Q2F8s3dY9x5y17Yz8wTADJc7giW1t5eSmoXc=", "ips": [ "37.120.212.227" - ], - "ports_udp": [ - 30044 ] }, { @@ -251790,64 +251726,14 @@ "104.245.145.244" ] }, - { - "vpn": "openvpn", - "country": "Canada", - "city": "Toronto", - "hostname": "vpn25.prd.toronto.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "104.245.145.244" - ], - "ports_tcp": [ - 20025 - ], - "ports_udp": [ - 20025 - ] - }, - { - "vpn": "wireguard", - "country": "Canada", - "city": "Toronto", - "hostname": "vpn25.prd.toronto.ovpn.com", - "wgpubkey": "JQn/XgOlj+JHQK30jkEC68j9dQ02RCbk63jkASUQHFk=", - "ips": [ - "104.245.145.244" - ] - }, { "vpn": "wireguard", "country": "Canada", "city": "Toronto", "hostname": "vpn25.prd.toronto.ovpn.com", - "multihop": true, "wgpubkey": "JQn/XgOlj+JHQK30jkEC68j9dQ02RCbk63jkASUQHFk=", "ips": [ "104.245.145.244" - ], - "ports_udp": [ - 30025 - ] - }, - { - "vpn": "openvpn", - "country": "Denmark", - "city": "Copenhagen", - "hostname": "vpn27.prd.copenhagen.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.236.203.98" - ], - "ports_tcp": [ - 20027 - ], - "ports_udp": [ - 20027 ] }, { @@ -251871,20 +251757,6 @@ "185.236.203.98" ] }, - { - "vpn": "wireguard", - "country": "Denmark", - "city": "Copenhagen", - "hostname": "vpn27.prd.copenhagen.ovpn.com", - "multihop": true, - "wgpubkey": "zuDP6UH60O3Wjj14Quqe/1utFe5GhUByTd9p/1mu70E=", - "ips": [ - "185.236.203.98" - ], - "ports_udp": [ - 30027 - ] - }, { "vpn": "openvpn", "country": "Finland", @@ -251896,64 +251768,14 @@ "46.246.34.51" ] }, - { - "vpn": "openvpn", - "country": "Finland", - "city": "Helsinki", - "hostname": "vpn104.prd.helsinki.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "46.246.34.51" - ], - "ports_tcp": [ - 20104 - ], - "ports_udp": [ - 20104 - ] - }, - { - "vpn": "wireguard", - "country": "Finland", - "city": "Helsinki", - "hostname": "vpn104.prd.helsinki.ovpn.com", - "wgpubkey": "3WhYVP7YyoxZ/mgubIJHmAU4KDCu46qD6vWCwnl4/Vk=", - "ips": [ - "46.246.34.51" - ] - }, { "vpn": "wireguard", "country": "Finland", "city": "Helsinki", "hostname": "vpn104.prd.helsinki.ovpn.com", - "multihop": true, "wgpubkey": "3WhYVP7YyoxZ/mgubIJHmAU4KDCu46qD6vWCwnl4/Vk=", "ips": [ "46.246.34.51" - ], - "ports_udp": [ - 30104 - ] - }, - { - "vpn": "openvpn", - "country": "France", - "city": "Paris", - "hostname": "vpn69.prd.paris.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "139.28.219.35" - ], - "ports_tcp": [ - 20069 - ], - "ports_udp": [ - 20069 ] }, { @@ -251967,20 +251789,6 @@ "139.28.219.35" ] }, - { - "vpn": "wireguard", - "country": "France", - "city": "Paris", - "hostname": "vpn69.prd.paris.ovpn.com", - "multihop": true, - "wgpubkey": "JF+htf2Uj/FviIqLWD0sQyduR5qWOu/GvJ7p+fMockk=", - "ips": [ - "139.28.219.35" - ], - "ports_udp": [ - 30069 - ] - }, { "vpn": "wireguard", "country": "France", @@ -252002,64 +251810,14 @@ "84.19.175.164" ] }, - { - "vpn": "openvpn", - "country": "Germany", - "city": "Erfurt", - "hostname": "vpn90.prd.erfurt.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "84.19.175.164" - ], - "ports_tcp": [ - 20090 - ], - "ports_udp": [ - 20090 - ] - }, - { - "vpn": "wireguard", - "country": "Germany", - "city": "Erfurt", - "hostname": "vpn90.prd.erfurt.ovpn.com", - "wgpubkey": "0CvxLBss+WQyJqidXRUnd5iO9gMJwMFNPidg09d4Onk=", - "ips": [ - "84.19.175.164" - ] - }, { "vpn": "wireguard", "country": "Germany", "city": "Erfurt", "hostname": "vpn90.prd.erfurt.ovpn.com", - "multihop": true, "wgpubkey": "0CvxLBss+WQyJqidXRUnd5iO9gMJwMFNPidg09d4Onk=", "ips": [ "84.19.175.164" - ], - "ports_udp": [ - 30090 - ] - }, - { - "vpn": "openvpn", - "country": "Germany", - "city": "Erfurt", - "hostname": "vpn93.prd.erfurt.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.114.215.130" - ], - "ports_tcp": [ - 20093 - ], - "ports_udp": [ - 20093 ] }, { @@ -252083,20 +251841,6 @@ "217.114.215.130" ] }, - { - "vpn": "wireguard", - "country": "Germany", - "city": "Erfurt", - "hostname": "vpn93.prd.erfurt.ovpn.com", - "multihop": true, - "wgpubkey": "Ud/RQsmt7FuaT6ODfsuDuzRwNm78imu0hOjx+b1FeCk=", - "ips": [ - "217.114.215.130" - ], - "ports_udp": [ - 30093 - ] - }, { "vpn": "openvpn", "country": "Germany", @@ -252104,40 +251848,8 @@ "hostname": "vpn94.prd.frankfurt.ovpn.com", "tcp": true, "udp": true, - "multihop": true, "ips": [ "45.141.152.69" - ], - "ports_tcp": [ - 20094 - ], - "ports_udp": [ - 20094 - ] - }, - { - "vpn": "openvpn", - "country": "Germany", - "city": "Frankfurt", - "hostname": "vpn94.prd.frankfurt.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.141.152.69" - ] - }, - { - "vpn": "wireguard", - "country": "Germany", - "city": "Frankfurt", - "hostname": "vpn94.prd.frankfurt.ovpn.com", - "multihop": true, - "wgpubkey": "rn8HkSrQBE1BtZo2FzM1SF1BK1/9cmaRx2P9+ikpvBA=", - "ips": [ - "45.141.152.69" - ], - "ports_udp": [ - 30094 ] }, { @@ -252157,34 +251869,6 @@ "hostname": "vpn98.prd.frankfurt.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "45.141.152.68" - ], - "ports_tcp": [ - 20098 - ], - "ports_udp": [ - 20098 - ] - }, - { - "vpn": "openvpn", - "country": "Germany", - "city": "Frankfurt", - "hostname": "vpn98.prd.frankfurt.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.141.152.68" - ] - }, - { - "vpn": "wireguard", - "country": "Germany", - "city": "Frankfurt", - "hostname": "vpn98.prd.frankfurt.ovpn.com", - "wgpubkey": "dbdpgpQig2RTDaNHhRmmHZfcplgbVia/VihZGUNSAVc=", "ips": [ "45.141.152.68" ] @@ -252194,13 +251878,9 @@ "country": "Germany", "city": "Frankfurt", "hostname": "vpn98.prd.frankfurt.ovpn.com", - "multihop": true, "wgpubkey": "dbdpgpQig2RTDaNHhRmmHZfcplgbVia/VihZGUNSAVc=", "ips": [ "45.141.152.68" - ], - "ports_udp": [ - 30098 ] }, { @@ -252210,89 +251890,29 @@ "hostname": "vpn101.prd.offenbach.ovpn.com", "tcp": true, "udp": true, - "multihop": true, "ips": [ "138.199.38.149" - ], - "ports_tcp": [ - 20101 - ], - "ports_udp": [ - 20101 ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Germany", "city": "Offenbach", "hostname": "vpn101.prd.offenbach.ovpn.com", - "tcp": true, - "udp": true, + "wgpubkey": "KTuStBzb0QhCMZbbGagokTqAtHOXnKcPVscG0zwNllY=", "ips": [ "138.199.38.149" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Germany", "city": "Offenbach", - "hostname": "vpn101.prd.offenbach.ovpn.com", - "wgpubkey": "KTuStBzb0QhCMZbbGagokTqAtHOXnKcPVscG0zwNllY=", + "hostname": "vpn92.prd.offenbach.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "138.199.38.149" - ] - }, - { - "vpn": "wireguard", - "country": "Germany", - "city": "Offenbach", - "hostname": "vpn101.prd.offenbach.ovpn.com", - "multihop": true, - "wgpubkey": "KTuStBzb0QhCMZbbGagokTqAtHOXnKcPVscG0zwNllY=", - "ips": [ - "138.199.38.149" - ], - "ports_udp": [ - 30101 - ] - }, - { - "vpn": "openvpn", - "country": "Germany", - "city": "Offenbach", - "hostname": "vpn92.prd.offenbach.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "138.199.38.131" - ], - "ports_tcp": [ - 20092 - ], - "ports_udp": [ - 20092 - ] - }, - { - "vpn": "openvpn", - "country": "Germany", - "city": "Offenbach", - "hostname": "vpn92.prd.offenbach.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "138.199.38.131" - ] - }, - { - "vpn": "wireguard", - "country": "Germany", - "city": "Offenbach", - "hostname": "vpn92.prd.offenbach.ovpn.com", - "wgpubkey": "9rFxHjpLsoCZyRSoNSyMjc+JvCZ9q+GyaNHK4Onm6C8=", - "ips": [ - "138.199.38.131" + "138.199.38.131" ] }, { @@ -252300,31 +251920,9 @@ "country": "Germany", "city": "Offenbach", "hostname": "vpn92.prd.offenbach.ovpn.com", - "multihop": true, "wgpubkey": "9rFxHjpLsoCZyRSoNSyMjc+JvCZ9q+GyaNHK4Onm6C8=", "ips": [ "138.199.38.131" - ], - "ports_udp": [ - 30092 - ] - }, - { - "vpn": "openvpn", - "country": "Great Britain", - "city": "London", - "hostname": "vpn68.prd.london.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "89.238.176.3" - ], - "ports_tcp": [ - 20068 - ], - "ports_udp": [ - 20068 ] }, { @@ -252338,20 +251936,6 @@ "89.238.176.3" ] }, - { - "vpn": "wireguard", - "country": "Great Britain", - "city": "London", - "hostname": "vpn68.prd.london.ovpn.com", - "multihop": true, - "wgpubkey": "eKbpjpGMDzt0zb0i2i7aBLtvFlBTOx6cK+rVVwhtTwA=", - "ips": [ - "89.238.176.3" - ], - "ports_udp": [ - 30068 - ] - }, { "vpn": "wireguard", "country": "Great Britain", @@ -252369,40 +251953,8 @@ "hostname": "vpn100.prd.milan.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "94.198.96.163" - ], - "ports_tcp": [ - 20100 - ], - "ports_udp": [ - 20100 - ] - }, - { - "vpn": "openvpn", - "country": "Italy", - "city": "Milan", - "hostname": "vpn100.prd.milan.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "94.198.96.163" - ] - }, - { - "vpn": "wireguard", - "country": "Italy", - "city": "Milan", - "hostname": "vpn100.prd.milan.ovpn.com", - "multihop": true, - "wgpubkey": "oS3feK/+EjX8wkYjywQOiPCrLONplMeotpNuRTZhmj0=", "ips": [ "94.198.96.163" - ], - "ports_udp": [ - 30100 ] }, { @@ -252426,38 +251978,6 @@ "217.138.212.51" ] }, - { - "vpn": "openvpn", - "country": "Japan", - "city": "Tokyo", - "hostname": "vpn89.prd.tokyo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.138.212.51" - ], - "ports_tcp": [ - 20089 - ], - "ports_udp": [ - 20089 - ] - }, - { - "vpn": "wireguard", - "country": "Japan", - "city": "Tokyo", - "hostname": "vpn89.prd.tokyo.ovpn.com", - "multihop": true, - "wgpubkey": "kYH8bsx1a2A7AIiagGki+mVOOrVX1tIWcKZg1zqnQEg=", - "ips": [ - "217.138.212.51" - ], - "ports_udp": [ - 30089 - ] - }, { "vpn": "wireguard", "country": "Japan", @@ -252475,34 +251995,6 @@ "hostname": "vpn28.prd.amsterdam.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "185.157.162.6" - ], - "ports_tcp": [ - 20028 - ], - "ports_udp": [ - 20028 - ] - }, - { - "vpn": "openvpn", - "country": "Netherlands", - "city": "Amsterdam", - "hostname": "vpn28.prd.amsterdam.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.162.6" - ] - }, - { - "vpn": "wireguard", - "country": "Netherlands", - "city": "Amsterdam", - "hostname": "vpn28.prd.amsterdam.ovpn.com", - "wgpubkey": "r8ObkfADlsEAMvsi1Cog4mF6h+g9pPLLWdZSFHdVk1I=", "ips": [ "185.157.162.6" ] @@ -252512,31 +252004,9 @@ "country": "Netherlands", "city": "Amsterdam", "hostname": "vpn28.prd.amsterdam.ovpn.com", - "multihop": true, "wgpubkey": "r8ObkfADlsEAMvsi1Cog4mF6h+g9pPLLWdZSFHdVk1I=", "ips": [ "185.157.162.6" - ], - "ports_udp": [ - 30028 - ] - }, - { - "vpn": "openvpn", - "country": "Netherlands", - "city": "Amsterdam", - "hostname": "vpn29.prd.amsterdam.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.162.7" - ], - "ports_tcp": [ - 20029 - ], - "ports_udp": [ - 20029 ] }, { @@ -252550,20 +252020,6 @@ "185.157.162.7" ] }, - { - "vpn": "wireguard", - "country": "Netherlands", - "city": "Amsterdam", - "hostname": "vpn29.prd.amsterdam.ovpn.com", - "multihop": true, - "wgpubkey": "wTlz3u1egzUrx4Ho02cL7Ht1BBa/C8bULzXStn5f+zk=", - "ips": [ - "185.157.162.7" - ], - "ports_udp": [ - 30029 - ] - }, { "vpn": "wireguard", "country": "Netherlands", @@ -252581,34 +252037,6 @@ "hostname": "vpn30.prd.amsterdam.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "185.157.162.8" - ], - "ports_tcp": [ - 20030 - ], - "ports_udp": [ - 20030 - ] - }, - { - "vpn": "openvpn", - "country": "Netherlands", - "city": "Amsterdam", - "hostname": "vpn30.prd.amsterdam.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.162.8" - ] - }, - { - "vpn": "wireguard", - "country": "Netherlands", - "city": "Amsterdam", - "hostname": "vpn30.prd.amsterdam.ovpn.com", - "wgpubkey": "UlWOCYQ7kSvqdGyUfQ06ayh4xg0FejtRTT5oD774En4=", "ips": [ "185.157.162.8" ] @@ -252618,31 +252046,9 @@ "country": "Netherlands", "city": "Amsterdam", "hostname": "vpn30.prd.amsterdam.ovpn.com", - "multihop": true, "wgpubkey": "UlWOCYQ7kSvqdGyUfQ06ayh4xg0FejtRTT5oD774En4=", "ips": [ "185.157.162.8" - ], - "ports_udp": [ - 30030 - ] - }, - { - "vpn": "openvpn", - "country": "Netherlands", - "city": "Amsterdam", - "hostname": "vpn35.prd.amsterdam.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.162.9" - ], - "ports_tcp": [ - 20035 - ], - "ports_udp": [ - 20035 ] }, { @@ -252656,20 +252062,6 @@ "185.157.162.9" ] }, - { - "vpn": "wireguard", - "country": "Netherlands", - "city": "Amsterdam", - "hostname": "vpn35.prd.amsterdam.ovpn.com", - "multihop": true, - "wgpubkey": "ltl5WNkl0xMOMoMWFJKb8CoE7yUiixTVSrs5rO/jYAI=", - "ips": [ - "185.157.162.9" - ], - "ports_udp": [ - 30035 - ] - }, { "vpn": "wireguard", "country": "Netherlands", @@ -252687,34 +252079,6 @@ "hostname": "vpn36.prd.amsterdam.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "185.157.162.10" - ], - "ports_tcp": [ - 20036 - ], - "ports_udp": [ - 20036 - ] - }, - { - "vpn": "openvpn", - "country": "Netherlands", - "city": "Amsterdam", - "hostname": "vpn36.prd.amsterdam.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.162.10" - ] - }, - { - "vpn": "wireguard", - "country": "Netherlands", - "city": "Amsterdam", - "hostname": "vpn36.prd.amsterdam.ovpn.com", - "wgpubkey": "pCbGsSXcJHVSr9UeAbE5IiBtD/m2z1e9zlF9Nospf3o=", "ips": [ "185.157.162.10" ] @@ -252724,13 +252088,9 @@ "country": "Netherlands", "city": "Amsterdam", "hostname": "vpn36.prd.amsterdam.ovpn.com", - "multihop": true, "wgpubkey": "pCbGsSXcJHVSr9UeAbE5IiBtD/m2z1e9zlF9Nospf3o=", "ips": [ "185.157.162.10" - ], - "ports_udp": [ - 30036 ] }, { @@ -252740,93 +252100,29 @@ "hostname": "vpn37.prd.oslo.ovpn.com", "tcp": true, "udp": true, - "multihop": true, "ips": [ "45.148.18.35" - ], - "ports_tcp": [ - 20037 - ], - "ports_udp": [ - 20037 ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Norway", "city": "Oslo", "hostname": "vpn37.prd.oslo.ovpn.com", - "tcp": true, - "udp": true, + "wgpubkey": "f9Fmp1yhGo9lEsMwf9kGBXsBP4CAD031n5C4D5I/US4=", "ips": [ "45.148.18.35" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Norway", "city": "Oslo", - "hostname": "vpn37.prd.oslo.ovpn.com", - "multihop": true, - "wgpubkey": "f9Fmp1yhGo9lEsMwf9kGBXsBP4CAD031n5C4D5I/US4=", + "hostname": "vpn38.prd.oslo.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "45.148.18.35" - ], - "ports_udp": [ - 30037 - ] - }, - { - "vpn": "wireguard", - "country": "Norway", - "city": "Oslo", - "hostname": "vpn37.prd.oslo.ovpn.com", - "wgpubkey": "f9Fmp1yhGo9lEsMwf9kGBXsBP4CAD031n5C4D5I/US4=", - "ips": [ - "45.148.18.35" - ] - }, - { - "vpn": "openvpn", - "country": "Norway", - "city": "Oslo", - "hostname": "vpn38.prd.oslo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.148.18.36" - ] - }, - { - "vpn": "openvpn", - "country": "Norway", - "city": "Oslo", - "hostname": "vpn38.prd.oslo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "45.148.18.36" - ], - "ports_tcp": [ - 20038 - ], - "ports_udp": [ - 20038 - ] - }, - { - "vpn": "wireguard", - "country": "Norway", - "city": "Oslo", - "hostname": "vpn38.prd.oslo.ovpn.com", - "multihop": true, - "wgpubkey": "aDrSOhL5NALmlt05g+3yYxWpQpqj3g5jj2TRLsscjS4=", - "ips": [ - "45.148.18.36" - ], - "ports_udp": [ - 30038 + "45.148.18.36" ] }, { @@ -252846,34 +252142,6 @@ "hostname": "vpn39.prd.oslo.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "45.148.18.37" - ], - "ports_tcp": [ - 20039 - ], - "ports_udp": [ - 20039 - ] - }, - { - "vpn": "openvpn", - "country": "Norway", - "city": "Oslo", - "hostname": "vpn39.prd.oslo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.148.18.37" - ] - }, - { - "vpn": "wireguard", - "country": "Norway", - "city": "Oslo", - "hostname": "vpn39.prd.oslo.ovpn.com", - "wgpubkey": "vYXHNpAA1/TvnWHPDbBQTThkYBRGvzcanE/EYngavAw=", "ips": [ "45.148.18.37" ] @@ -252883,24 +252151,9 @@ "country": "Norway", "city": "Oslo", "hostname": "vpn39.prd.oslo.ovpn.com", - "multihop": true, "wgpubkey": "vYXHNpAA1/TvnWHPDbBQTThkYBRGvzcanE/EYngavAw=", "ips": [ "45.148.18.37" - ], - "ports_udp": [ - 30039 - ] - }, - { - "vpn": "openvpn", - "country": "Poland", - "city": "Warsaw", - "hostname": "vpn95.prd.warsaw.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "138.199.59.3" ] }, { @@ -252910,29 +252163,8 @@ "hostname": "vpn95.prd.warsaw.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "138.199.59.3" - ], - "ports_tcp": [ - 20095 - ], - "ports_udp": [ - 20095 - ] - }, - { - "vpn": "wireguard", - "country": "Poland", - "city": "Warsaw", - "hostname": "vpn95.prd.warsaw.ovpn.com", - "multihop": true, - "wgpubkey": "7W4M+AEUAROco6oGCVwipKZ5gODe29eKjSP0jFXuOUU=", "ips": [ "138.199.59.3" - ], - "ports_udp": [ - 30095 ] }, { @@ -252952,34 +252184,6 @@ "hostname": "vpn45.prd.bucharest.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "37.120.206.163" - ], - "ports_tcp": [ - 20045 - ], - "ports_udp": [ - 20045 - ] - }, - { - "vpn": "openvpn", - "country": "Romania", - "city": "Bucharest", - "hostname": "vpn45.prd.bucharest.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "37.120.206.163" - ] - }, - { - "vpn": "wireguard", - "country": "Romania", - "city": "Bucharest", - "hostname": "vpn45.prd.bucharest.ovpn.com", - "wgpubkey": "jBqo1nW4nT/PfElG+ZSlOg92TjqZ85WAM8vmVuCHWTo=", "ips": [ "37.120.206.163" ] @@ -252989,31 +252193,9 @@ "country": "Romania", "city": "Bucharest", "hostname": "vpn45.prd.bucharest.ovpn.com", - "multihop": true, "wgpubkey": "jBqo1nW4nT/PfElG+ZSlOg92TjqZ85WAM8vmVuCHWTo=", "ips": [ "37.120.206.163" - ], - "ports_udp": [ - 30045 - ] - }, - { - "vpn": "openvpn", - "country": "Singapore", - "city": "Singapore", - "hostname": "vpn77.prd.singapore.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "37.120.208.35" - ], - "ports_tcp": [ - 20077 - ], - "ports_udp": [ - 20077 ] }, { @@ -253037,38 +252219,6 @@ "37.120.208.35" ] }, - { - "vpn": "wireguard", - "country": "Singapore", - "city": "Singapore", - "hostname": "vpn77.prd.singapore.ovpn.com", - "multihop": true, - "wgpubkey": "DVgF3RC6y0WapyrpHldfXK3cqa3PaixOpXf9tBWLu34=", - "ips": [ - "37.120.208.35" - ], - "ports_udp": [ - 30077 - ] - }, - { - "vpn": "openvpn", - "country": "Spain", - "city": "Madrid", - "hostname": "vpn70.prd.madrid.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "192.145.124.3" - ], - "ports_tcp": [ - 20070 - ], - "ports_udp": [ - 20070 - ] - }, { "vpn": "openvpn", "country": "Spain", @@ -253080,20 +252230,6 @@ "192.145.124.3" ] }, - { - "vpn": "wireguard", - "country": "Spain", - "city": "Madrid", - "hostname": "vpn70.prd.madrid.ovpn.com", - "multihop": true, - "wgpubkey": "a4Vryn0AWvXomuQ7FWQR8yrHQ9mFx/+Bw5zVkXvi/1I=", - "ips": [ - "192.145.124.3" - ], - "ports_udp": [ - 30070 - ] - }, { "vpn": "wireguard", "country": "Spain", @@ -253116,2838 +252252,1114 @@ ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", "hostname": "vpn57.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "wgpubkey": "CukQxZVavBWSOdrxBuCRYnVLapi4rx73G7nV6wo3LG0=", "ips": [ "193.187.91.195" - ], - "ports_tcp": [ - 20057 - ], - "ports_udp": [ - 20057 ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn57.prd.gothenburg.ovpn.com", - "wgpubkey": "CukQxZVavBWSOdrxBuCRYnVLapi4rx73G7nV6wo3LG0=", + "hostname": "vpn58.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "193.187.91.195" + "193.187.91.196" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn57.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "CukQxZVavBWSOdrxBuCRYnVLapi4rx73G7nV6wo3LG0=", + "hostname": "vpn58.prd.gothenburg.ovpn.com", + "wgpubkey": "fhJEw6AzQ/LEqwtNQEmZLWQfSMVtTIvCLOAimN3J9l0=", "ips": [ - "193.187.91.195" - ], - "ports_udp": [ - 30057 + "193.187.91.196" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn58.prd.gothenburg.ovpn.com", + "hostname": "vpn59.prd.gothenburg.ovpn.com", "tcp": true, "udp": true, "ips": [ - "193.187.91.196" + "193.187.91.197" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn58.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn59.prd.gothenburg.ovpn.com", + "wgpubkey": "wag3xc3UEkmn3kRiw49vRh8Nyk7cZCPy0s2t3/M1dxI=", "ips": [ - "193.187.91.196" - ], - "ports_tcp": [ - 20058 - ], - "ports_udp": [ - 20058 + "193.187.91.197" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn58.prd.gothenburg.ovpn.com", - "wgpubkey": "fhJEw6AzQ/LEqwtNQEmZLWQfSMVtTIvCLOAimN3J9l0=", + "hostname": "vpn65.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "193.187.91.196" + "193.187.91.198" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn58.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "fhJEw6AzQ/LEqwtNQEmZLWQfSMVtTIvCLOAimN3J9l0=", + "hostname": "vpn65.prd.gothenburg.ovpn.com", + "wgpubkey": "zJwQIAIgv6zvLNzwsYBilUHArs9vrmbejZZpJsHB7V8=", "ips": [ - "193.187.91.196" - ], - "ports_udp": [ - 30058 + "193.187.91.198" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn59.prd.gothenburg.ovpn.com", + "hostname": "vpn66.prd.gothenburg.ovpn.com", "tcp": true, "udp": true, "ips": [ - "193.187.91.197" + "193.187.91.199" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn59.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn66.prd.gothenburg.ovpn.com", + "wgpubkey": "DxlR+Lj9f9I/zz7Ubhu6YODWe4UokZHsA/XlrHyD+zI=", "ips": [ - "193.187.91.197" - ], - "ports_tcp": [ - 20059 - ], - "ports_udp": [ - 20059 + "193.187.91.199" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn59.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "wag3xc3UEkmn3kRiw49vRh8Nyk7cZCPy0s2t3/M1dxI=", + "hostname": "vpn67.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "193.187.91.197" - ], - "ports_udp": [ - 30059 + "193.187.91.200" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn59.prd.gothenburg.ovpn.com", - "wgpubkey": "wag3xc3UEkmn3kRiw49vRh8Nyk7cZCPy0s2t3/M1dxI=", + "hostname": "vpn67.prd.gothenburg.ovpn.com", + "wgpubkey": "+aZG3UEfMPdseeieAk6iuNJ4g0URoRMCXpu4+wg4FQ8=", "ips": [ - "193.187.91.197" + "193.187.91.200" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn65.prd.gothenburg.ovpn.com", + "hostname": "vpn78.prd.gothenburg.ovpn.com", "tcp": true, "udp": true, "ips": [ - "193.187.91.198" + "193.187.91.201" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn65.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn78.prd.gothenburg.ovpn.com", + "wgpubkey": "De9k8c8ka4QPShagnuhg0sj7xo6vMlY1CYKC1HQ/HH0=", "ips": [ - "193.187.91.198" - ], - "ports_tcp": [ - 20065 - ], - "ports_udp": [ - 20065 + "193.187.91.201" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn65.prd.gothenburg.ovpn.com", - "wgpubkey": "zJwQIAIgv6zvLNzwsYBilUHArs9vrmbejZZpJsHB7V8=", + "hostname": "vpn79.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "193.187.91.198" + "193.187.91.202" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn65.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "zJwQIAIgv6zvLNzwsYBilUHArs9vrmbejZZpJsHB7V8=", + "hostname": "vpn79.prd.gothenburg.ovpn.com", + "wgpubkey": "ovb4H71UzVPhmJqsYVN7CmYDohCSKqaoi/nv+iHTpCU=", "ips": [ - "193.187.91.198" - ], - "ports_udp": [ - 30065 + "193.187.91.202" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn66.prd.gothenburg.ovpn.com", + "hostname": "vpn80.prd.gothenburg.ovpn.com", "tcp": true, "udp": true, "ips": [ - "193.187.91.199" + "193.187.91.203" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn66.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn80.prd.gothenburg.ovpn.com", + "wgpubkey": "PWFRJyaocA/10ICGHhVZuV+AtNRYByAUKqCZHH5drgQ=", "ips": [ - "193.187.91.199" - ], - "ports_tcp": [ - 20066 - ], - "ports_udp": [ - 20066 + "193.187.91.203" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn66.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "DxlR+Lj9f9I/zz7Ubhu6YODWe4UokZHsA/XlrHyD+zI=", + "hostname": "vpn81.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "193.187.91.199" - ], - "ports_udp": [ - 30066 + "193.187.91.204" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn66.prd.gothenburg.ovpn.com", - "wgpubkey": "DxlR+Lj9f9I/zz7Ubhu6YODWe4UokZHsA/XlrHyD+zI=", + "hostname": "vpn81.prd.gothenburg.ovpn.com", + "wgpubkey": "V8zAe+78UaeqgHU16Twxrpo8LhHVVcOE8RqqGARVwHA=", "ips": [ - "193.187.91.199" + "193.187.91.204" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn67.prd.gothenburg.ovpn.com", + "hostname": "vpn82.prd.gothenburg.ovpn.com", "tcp": true, "udp": true, "ips": [ - "193.187.91.200" + "193.187.91.205" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn67.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn82.prd.gothenburg.ovpn.com", + "wgpubkey": "LCCiLqQ/7Zr+ZFLTRZNG3D2wqXrM6JJZxbXdvadAM1I=", "ips": [ - "193.187.91.200" - ], - "ports_tcp": [ - 20067 - ], - "ports_udp": [ - 20067 + "193.187.91.205" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn67.prd.gothenburg.ovpn.com", - "wgpubkey": "+aZG3UEfMPdseeieAk6iuNJ4g0URoRMCXpu4+wg4FQ8=", + "hostname": "vpn83.prd.gothenburg.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "193.187.91.200" + "193.187.91.206" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Gothenburg", - "hostname": "vpn67.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "+aZG3UEfMPdseeieAk6iuNJ4g0URoRMCXpu4+wg4FQ8=", + "hostname": "vpn83.prd.gothenburg.ovpn.com", + "wgpubkey": "E8JiXrDs8zikrQt9v4IqBUJnjk0LCnLLt+tFUY12Hjs=", "ips": [ - "193.187.91.200" - ], - "ports_udp": [ - 30067 + "193.187.91.206" ] }, { "vpn": "openvpn", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn78.prd.gothenburg.ovpn.com", + "city": "Malmö", + "hostname": "vpn01.prd.malmo.ovpn.com", "tcp": true, "udp": true, "ips": [ - "193.187.91.201" + "185.157.163.3" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn78.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "city": "Malmö", + "hostname": "vpn01.prd.malmo.ovpn.com", + "wgpubkey": "e8Lkh1zZYbHmljDMMmvErVpvfRnrB4bWrHCvQmDvUDE=", "ips": [ - "193.187.91.201" - ], - "ports_tcp": [ - 20078 - ], - "ports_udp": [ - 20078 + "185.157.163.3" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn78.prd.gothenburg.ovpn.com", - "wgpubkey": "De9k8c8ka4QPShagnuhg0sj7xo6vMlY1CYKC1HQ/HH0=", + "city": "Malmö", + "hostname": "vpn06.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "193.187.91.201" + "185.157.163.4" ] }, { "vpn": "wireguard", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn78.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "De9k8c8ka4QPShagnuhg0sj7xo6vMlY1CYKC1HQ/HH0=", + "city": "Malmö", + "hostname": "vpn06.prd.malmo.ovpn.com", + "wgpubkey": "6+Xf8SLGPsEPAG3c2o4IUX3GeCpwJqJQS6IvsmzSSQ4=", "ips": [ - "193.187.91.201" - ], - "ports_udp": [ - 30078 + "185.157.163.4" ] }, { "vpn": "openvpn", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn79.prd.gothenburg.ovpn.com", + "city": "Malmö", + "hostname": "vpn07.prd.malmo.ovpn.com", "tcp": true, "udp": true, - "multihop": true, "ips": [ - "193.187.91.202" - ], - "ports_tcp": [ - 20079 - ], - "ports_udp": [ - 20079 + "185.157.163.5" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn79.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, + "city": "Malmö", + "hostname": "vpn07.prd.malmo.ovpn.com", + "wgpubkey": "LXImhA5/P158L0BRYaYrdIw3kEpaNG94I+o0Qs5lFg8=", "ips": [ - "193.187.91.202" + "185.157.163.5" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn79.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "ovb4H71UzVPhmJqsYVN7CmYDohCSKqaoi/nv+iHTpCU=", + "city": "Malmö", + "hostname": "vpn08.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "193.187.91.202" - ], - "ports_udp": [ - 30079 + "185.157.163.6" ] }, { "vpn": "wireguard", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn79.prd.gothenburg.ovpn.com", - "wgpubkey": "ovb4H71UzVPhmJqsYVN7CmYDohCSKqaoi/nv+iHTpCU=", + "city": "Malmö", + "hostname": "vpn08.prd.malmo.ovpn.com", + "wgpubkey": "TJxkuwDGemYZ11AANCMB5V7GWaXoim1xpttGxqXiDWs=", "ips": [ - "193.187.91.202" + "185.157.163.6" ] }, { "vpn": "openvpn", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn80.prd.gothenburg.ovpn.com", + "city": "Malmö", + "hostname": "vpn40.prd.malmo.ovpn.com", "tcp": true, "udp": true, - "multihop": true, "ips": [ - "193.187.91.203" - ], - "ports_tcp": [ - 20080 - ], - "ports_udp": [ - 20080 + "185.157.163.7" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn80.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, + "city": "Malmö", + "hostname": "vpn40.prd.malmo.ovpn.com", + "wgpubkey": "cQ502fzOND0Z30gvL052TyfexOUJSVhxe0LqVlPnHl8=", "ips": [ - "193.187.91.203" + "185.157.163.7" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn80.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "PWFRJyaocA/10ICGHhVZuV+AtNRYByAUKqCZHH5drgQ=", + "city": "Malmö", + "hostname": "vpn41.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "193.187.91.203" - ], - "ports_udp": [ - 30080 + "185.157.163.8" ] }, { "vpn": "wireguard", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn80.prd.gothenburg.ovpn.com", - "wgpubkey": "PWFRJyaocA/10ICGHhVZuV+AtNRYByAUKqCZHH5drgQ=", + "city": "Malmö", + "hostname": "vpn41.prd.malmo.ovpn.com", + "wgpubkey": "SsrnMUxqpJmL+Wt3R7qzI+N2yorKdIN0Uczc+pI0Lgw=", "ips": [ - "193.187.91.203" + "185.157.163.8" ] }, { "vpn": "openvpn", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn81.prd.gothenburg.ovpn.com", + "city": "Malmö", + "hostname": "vpn42.prd.malmo.ovpn.com", "tcp": true, "udp": true, "ips": [ - "193.187.91.204" + "185.157.163.9" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn81.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "city": "Malmö", + "hostname": "vpn42.prd.malmo.ovpn.com", + "wgpubkey": "+IBCelFHGdhCbdQF4DcgrTX5Qrd0rEtFfILFFbhdFAQ=", "ips": [ - "193.187.91.204" - ], - "ports_tcp": [ - 20081 - ], - "ports_udp": [ - 20081 + "185.157.163.9" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn81.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "V8zAe+78UaeqgHU16Twxrpo8LhHVVcOE8RqqGARVwHA=", + "city": "Malmö", + "hostname": "vpn49.prd.malmo.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "193.187.91.204" - ], - "ports_udp": [ - 30081 + "185.157.163.10" ] }, { "vpn": "wireguard", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn81.prd.gothenburg.ovpn.com", - "wgpubkey": "V8zAe+78UaeqgHU16Twxrpo8LhHVVcOE8RqqGARVwHA=", + "city": "Malmö", + "hostname": "vpn49.prd.malmo.ovpn.com", + "wgpubkey": "NYGEZ/jzfFHytINUM1LfNMluzCs8L7bo5C5ElaLavX8=", "ips": [ - "193.187.91.204" + "185.157.163.10" ] }, { "vpn": "openvpn", "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn82.prd.gothenburg.ovpn.com", + "city": "Malmö", + "hostname": "vpn50.prd.malmo.ovpn.com", "tcp": true, "udp": true, "ips": [ - "193.187.91.205" + "185.157.163.11" ] }, { - "vpn": "openvpn", - "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn82.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "193.187.91.205" - ], - "ports_tcp": [ - 20082 - ], - "ports_udp": [ - 20082 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn82.prd.gothenburg.ovpn.com", - "wgpubkey": "LCCiLqQ/7Zr+ZFLTRZNG3D2wqXrM6JJZxbXdvadAM1I=", - "ips": [ - "193.187.91.205" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn82.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "LCCiLqQ/7Zr+ZFLTRZNG3D2wqXrM6JJZxbXdvadAM1I=", - "ips": [ - "193.187.91.205" - ], - "ports_udp": [ - 30082 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn83.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "193.187.91.206" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn83.prd.gothenburg.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "193.187.91.206" - ], - "ports_tcp": [ - 20083 - ], - "ports_udp": [ - 20083 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn83.prd.gothenburg.ovpn.com", - "wgpubkey": "E8JiXrDs8zikrQt9v4IqBUJnjk0LCnLLt+tFUY12Hjs=", - "ips": [ - "193.187.91.206" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Gothenburg", - "hostname": "vpn83.prd.gothenburg.ovpn.com", - "multihop": true, - "wgpubkey": "E8JiXrDs8zikrQt9v4IqBUJnjk0LCnLLt+tFUY12Hjs=", - "ips": [ - "193.187.91.206" - ], - "ports_udp": [ - 30083 - ] - }, - { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Malmö", - "hostname": "vpn01.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, + "hostname": "vpn50.prd.malmo.ovpn.com", + "wgpubkey": "wpckCrUUmi8x6Lp2Vac+4rMcCZtfFo0i1z0XlisITWY=", "ips": [ - "185.157.163.3" + "185.157.163.11" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Malmö", - "hostname": "vpn01.prd.malmo.ovpn.com", + "hostname": "vpn51.prd.malmo.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "185.157.163.3" - ], - "ports_tcp": [ - 20001 - ], - "ports_udp": [ - 20001 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn01.prd.malmo.ovpn.com", - "wgpubkey": "e8Lkh1zZYbHmljDMMmvErVpvfRnrB4bWrHCvQmDvUDE=", "ips": [ - "185.157.163.3" + "185.157.163.12" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Malmö", - "hostname": "vpn01.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "e8Lkh1zZYbHmljDMMmvErVpvfRnrB4bWrHCvQmDvUDE=", - "ips": [ - "185.157.163.3" - ], - "ports_udp": [ - 30001 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn06.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, + "hostname": "vpn51.prd.malmo.ovpn.com", + "wgpubkey": "A87Mi+WRAFgVRnbPUQSAgAYHVDkCOIKxV0ymB6mKh2c=", "ips": [ - "185.157.163.4" + "185.157.163.12" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Malmö", - "hostname": "vpn06.prd.malmo.ovpn.com", + "hostname": "vpn52.prd.malmo.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "185.157.163.4" - ], - "ports_tcp": [ - 20006 - ], - "ports_udp": [ - 20006 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn06.prd.malmo.ovpn.com", - "wgpubkey": "6+Xf8SLGPsEPAG3c2o4IUX3GeCpwJqJQS6IvsmzSSQ4=", "ips": [ - "185.157.163.4" + "185.157.163.13" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Malmö", - "hostname": "vpn06.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "6+Xf8SLGPsEPAG3c2o4IUX3GeCpwJqJQS6IvsmzSSQ4=", - "ips": [ - "185.157.163.4" - ], - "ports_udp": [ - 30006 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn07.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, + "hostname": "vpn52.prd.malmo.ovpn.com", + "wgpubkey": "ELx+DGi+E4Y+4m7Y7Bn2Y3Zo/4LuQJDR2U+WEskVigM=", "ips": [ - "185.157.163.5" + "185.157.163.13" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Malmö", - "hostname": "vpn07.prd.malmo.ovpn.com", + "hostname": "vpn53.prd.malmo.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "185.157.163.5" - ], - "ports_tcp": [ - 20007 - ], - "ports_udp": [ - 20007 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn07.prd.malmo.ovpn.com", - "wgpubkey": "LXImhA5/P158L0BRYaYrdIw3kEpaNG94I+o0Qs5lFg8=", "ips": [ - "185.157.163.5" + "185.157.163.14" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Malmö", - "hostname": "vpn07.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "LXImhA5/P158L0BRYaYrdIw3kEpaNG94I+o0Qs5lFg8=", - "ips": [ - "185.157.163.5" - ], - "ports_udp": [ - 30007 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn08.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, + "hostname": "vpn53.prd.malmo.ovpn.com", + "wgpubkey": "n3N0PnicxbfBrU8WtRmLvvnNJOniFk9z5ZZB/x2JAhM=", "ips": [ - "185.157.163.6" + "185.157.163.14" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Malmö", - "hostname": "vpn08.prd.malmo.ovpn.com", + "hostname": "vpn54.prd.malmo.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "185.157.163.6" - ], - "ports_tcp": [ - 20008 - ], - "ports_udp": [ - 20008 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn08.prd.malmo.ovpn.com", - "wgpubkey": "TJxkuwDGemYZ11AANCMB5V7GWaXoim1xpttGxqXiDWs=", "ips": [ - "185.157.163.6" + "185.157.163.15" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Malmö", - "hostname": "vpn08.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "TJxkuwDGemYZ11AANCMB5V7GWaXoim1xpttGxqXiDWs=", - "ips": [ - "185.157.163.6" - ], - "ports_udp": [ - 30008 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn40.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, + "hostname": "vpn54.prd.malmo.ovpn.com", + "wgpubkey": "ObyXywvMAwZuEr2kTvSNINdMI1USfjm0RY/X2LyNqCI=", "ips": [ - "185.157.163.7" + "185.157.163.15" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Malmö", - "hostname": "vpn40.prd.malmo.ovpn.com", + "hostname": "vpn55.prd.malmo.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "185.157.163.7" - ], - "ports_tcp": [ - 20040 - ], - "ports_udp": [ - 20040 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn40.prd.malmo.ovpn.com", - "wgpubkey": "cQ502fzOND0Z30gvL052TyfexOUJSVhxe0LqVlPnHl8=", "ips": [ - "185.157.163.7" + "185.157.163.16" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Malmö", - "hostname": "vpn40.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "cQ502fzOND0Z30gvL052TyfexOUJSVhxe0LqVlPnHl8=", + "hostname": "vpn55.prd.malmo.ovpn.com", + "wgpubkey": "9c+vXcUewpf7OvTqxaXurpiSHLXHxAE6NjlWOI1wljE=", "ips": [ - "185.157.163.7" - ], - "ports_udp": [ - 30040 + "185.157.163.16" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Malmö", - "hostname": "vpn41.prd.malmo.ovpn.com", + "hostname": "vpn56.prd.malmo.ovpn.com", "tcp": true, "udp": true, "ips": [ - "185.157.163.8" + "185.157.163.17" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Malmö", - "hostname": "vpn41.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn56.prd.malmo.ovpn.com", + "wgpubkey": "1Wap+VGJRmMWBwcJLI2Zck56aN4rMzC6G4Em4X+h12g=", "ips": [ - "185.157.163.8" - ], - "ports_tcp": [ - 20041 - ], - "ports_udp": [ - 20041 + "185.157.163.17" ] }, { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn41.prd.malmo.ovpn.com", - "wgpubkey": "SsrnMUxqpJmL+Wt3R7qzI+N2yorKdIN0Uczc+pI0Lgw=", - "ips": [ - "185.157.163.8" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn41.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "SsrnMUxqpJmL+Wt3R7qzI+N2yorKdIN0Uczc+pI0Lgw=", - "ips": [ - "185.157.163.8" - ], - "ports_udp": [ - 30041 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn42.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.163.9" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn42.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.163.9" - ], - "ports_tcp": [ - 20042 - ], - "ports_udp": [ - 20042 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn42.prd.malmo.ovpn.com", - "wgpubkey": "+IBCelFHGdhCbdQF4DcgrTX5Qrd0rEtFfILFFbhdFAQ=", - "ips": [ - "185.157.163.9" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn42.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "+IBCelFHGdhCbdQF4DcgrTX5Qrd0rEtFfILFFbhdFAQ=", - "ips": [ - "185.157.163.9" - ], - "ports_udp": [ - 30042 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn49.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.163.10" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn49.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.163.10" - ], - "ports_tcp": [ - 20049 - ], - "ports_udp": [ - 20049 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn49.prd.malmo.ovpn.com", - "wgpubkey": "NYGEZ/jzfFHytINUM1LfNMluzCs8L7bo5C5ElaLavX8=", - "ips": [ - "185.157.163.10" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn49.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "NYGEZ/jzfFHytINUM1LfNMluzCs8L7bo5C5ElaLavX8=", - "ips": [ - "185.157.163.10" - ], - "ports_udp": [ - 30049 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn50.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.163.11" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn50.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.163.11" - ], - "ports_tcp": [ - 20050 - ], - "ports_udp": [ - 20050 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn50.prd.malmo.ovpn.com", - "wgpubkey": "wpckCrUUmi8x6Lp2Vac+4rMcCZtfFo0i1z0XlisITWY=", - "ips": [ - "185.157.163.11" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn50.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "wpckCrUUmi8x6Lp2Vac+4rMcCZtfFo0i1z0XlisITWY=", - "ips": [ - "185.157.163.11" - ], - "ports_udp": [ - 30050 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn51.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.163.12" - ], - "ports_tcp": [ - 20051 - ], - "ports_udp": [ - 20051 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn51.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.163.12" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn51.prd.malmo.ovpn.com", - "wgpubkey": "A87Mi+WRAFgVRnbPUQSAgAYHVDkCOIKxV0ymB6mKh2c=", - "ips": [ - "185.157.163.12" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn51.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "A87Mi+WRAFgVRnbPUQSAgAYHVDkCOIKxV0ymB6mKh2c=", - "ips": [ - "185.157.163.12" - ], - "ports_udp": [ - 30051 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn52.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.163.13" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn52.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.163.13" - ], - "ports_tcp": [ - 20052 - ], - "ports_udp": [ - 20052 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn52.prd.malmo.ovpn.com", - "wgpubkey": "ELx+DGi+E4Y+4m7Y7Bn2Y3Zo/4LuQJDR2U+WEskVigM=", - "ips": [ - "185.157.163.13" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn52.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "ELx+DGi+E4Y+4m7Y7Bn2Y3Zo/4LuQJDR2U+WEskVigM=", - "ips": [ - "185.157.163.13" - ], - "ports_udp": [ - 30052 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn53.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.163.14" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn53.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.163.14" - ], - "ports_tcp": [ - 20053 - ], - "ports_udp": [ - 20053 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn53.prd.malmo.ovpn.com", - "wgpubkey": "n3N0PnicxbfBrU8WtRmLvvnNJOniFk9z5ZZB/x2JAhM=", - "ips": [ - "185.157.163.14" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn53.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "n3N0PnicxbfBrU8WtRmLvvnNJOniFk9z5ZZB/x2JAhM=", - "ips": [ - "185.157.163.14" - ], - "ports_udp": [ - 30053 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn54.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.163.15" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn54.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.163.15" - ], - "ports_tcp": [ - 20054 - ], - "ports_udp": [ - 20054 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn54.prd.malmo.ovpn.com", - "wgpubkey": "ObyXywvMAwZuEr2kTvSNINdMI1USfjm0RY/X2LyNqCI=", - "ips": [ - "185.157.163.15" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn54.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "ObyXywvMAwZuEr2kTvSNINdMI1USfjm0RY/X2LyNqCI=", - "ips": [ - "185.157.163.15" - ], - "ports_udp": [ - 30054 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn55.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.163.16" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn55.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.163.16" - ], - "ports_tcp": [ - 20055 - ], - "ports_udp": [ - 20055 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn55.prd.malmo.ovpn.com", - "wgpubkey": "9c+vXcUewpf7OvTqxaXurpiSHLXHxAE6NjlWOI1wljE=", - "ips": [ - "185.157.163.16" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn55.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "9c+vXcUewpf7OvTqxaXurpiSHLXHxAE6NjlWOI1wljE=", - "ips": [ - "185.157.163.16" - ], - "ports_udp": [ - 30055 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn56.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.157.163.17" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn56.prd.malmo.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "185.157.163.17" - ], - "ports_tcp": [ - 20056 - ], - "ports_udp": [ - 20056 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn56.prd.malmo.ovpn.com", - "wgpubkey": "1Wap+VGJRmMWBwcJLI2Zck56aN4rMzC6G4Em4X+h12g=", - "ips": [ - "185.157.163.17" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Malmö", - "hostname": "vpn56.prd.malmo.ovpn.com", - "multihop": true, - "wgpubkey": "1Wap+VGJRmMWBwcJLI2Zck56aN4rMzC6G4Em4X+h12g=", - "ips": [ - "185.157.163.17" - ], - "ports_udp": [ - 30056 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn02.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.46" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn02.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.46" - ], - "ports_tcp": [ - 20002 - ], - "ports_udp": [ - 20002 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn02.prd.kista.ovpn.com", - "wgpubkey": "X/9VAN4UImquYNAAh6WGzMhKPJMF1OSVp2aL2JGoml0=", - "ips": [ - "217.64.148.46" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn02.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "X/9VAN4UImquYNAAh6WGzMhKPJMF1OSVp2aL2JGoml0=", - "ips": [ - "217.64.148.46" - ], - "ports_udp": [ - 30002 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn03.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.47" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn03.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.47" - ], - "ports_tcp": [ - 20003 - ], - "ports_udp": [ - 20003 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn03.prd.kista.ovpn.com", - "wgpubkey": "stszvFCGUipu/kj28KC5merEmfhwjteFokZS+L3JR0A=", - "ips": [ - "217.64.148.47" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn03.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "stszvFCGUipu/kj28KC5merEmfhwjteFokZS+L3JR0A=", - "ips": [ - "217.64.148.47" - ], - "ports_udp": [ - 30003 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn04.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.48" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn04.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.48" - ], - "ports_tcp": [ - 20004 - ], - "ports_udp": [ - 20004 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn04.prd.kista.ovpn.com", - "wgpubkey": "ORHZz0byiajHB8cuA8Ss7UszWYTy9H+mzVR9GAioBiQ=", - "ips": [ - "217.64.148.48" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn04.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "ORHZz0byiajHB8cuA8Ss7UszWYTy9H+mzVR9GAioBiQ=", - "ips": [ - "217.64.148.48" - ], - "ports_udp": [ - 30004 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn05.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.49" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn05.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.49" - ], - "ports_tcp": [ - 20005 - ], - "ports_udp": [ - 20005 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn05.prd.kista.ovpn.com", - "wgpubkey": "TC/ASkCkJrk9UkOkQffY4TXn6dEtFEkahe3xxakb6VU=", - "ips": [ - "217.64.148.49" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn05.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "TC/ASkCkJrk9UkOkQffY4TXn6dEtFEkahe3xxakb6VU=", - "ips": [ - "217.64.148.49" - ], - "ports_udp": [ - 30005 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn09.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.50" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn09.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.50" - ], - "ports_tcp": [ - 20009 - ], - "ports_udp": [ - 20009 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn09.prd.kista.ovpn.com", - "wgpubkey": "T0Sd0czAhbArVNNd84OLCwhrYCeLipPmXhKzh99UCzw=", - "ips": [ - "217.64.148.50" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn09.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "T0Sd0czAhbArVNNd84OLCwhrYCeLipPmXhKzh99UCzw=", - "ips": [ - "217.64.148.50" - ], - "ports_udp": [ - 30009 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn10.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.51" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn10.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.51" - ], - "ports_tcp": [ - 20010 - ], - "ports_udp": [ - 20010 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn10.prd.kista.ovpn.com", - "wgpubkey": "KKCpXL20GjRtC8ADvYna/pTsrFAtML/ndWxbVifg8Uw=", - "ips": [ - "217.64.148.51" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn10.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "KKCpXL20GjRtC8ADvYna/pTsrFAtML/ndWxbVifg8Uw=", - "ips": [ - "217.64.148.51" - ], - "ports_udp": [ - 30010 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn11.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.52" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn11.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.52" - ], - "ports_tcp": [ - 20011 - ], - "ports_udp": [ - 20011 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn11.prd.kista.ovpn.com", - "wgpubkey": "p4s2SuFgKgWnV56Uh3yCx6ZWnaVyFXegV9FQqv670So=", - "ips": [ - "217.64.148.52" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn11.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "p4s2SuFgKgWnV56Uh3yCx6ZWnaVyFXegV9FQqv670So=", - "ips": [ - "217.64.148.52" - ], - "ports_udp": [ - 30011 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn12.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.53" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn12.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.53" - ], - "ports_tcp": [ - 20012 - ], - "ports_udp": [ - 20012 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn12.prd.kista.ovpn.com", - "wgpubkey": "UPKLcNO8+oav7Bsc8afNeN482pnieYLOBAh4vXdWFT0=", - "ips": [ - "217.64.148.53" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn12.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "UPKLcNO8+oav7Bsc8afNeN482pnieYLOBAh4vXdWFT0=", - "ips": [ - "217.64.148.53" - ], - "ports_udp": [ - 30012 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn13.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.54" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn13.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.54" - ], - "ports_tcp": [ - 20013 - ], - "ports_udp": [ - 20013 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn13.prd.kista.ovpn.com", - "wgpubkey": "HM+hbHGs2XZvKrY/cffcpVMNUIulaw+OFkgh6pT5ew0=", - "ips": [ - "217.64.148.54" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn13.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "HM+hbHGs2XZvKrY/cffcpVMNUIulaw+OFkgh6pT5ew0=", - "ips": [ - "217.64.148.54" - ], - "ports_udp": [ - 30013 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn14.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.55" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn14.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.55" - ], - "ports_tcp": [ - 20014 - ], - "ports_udp": [ - 20014 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn14.prd.kista.ovpn.com", - "wgpubkey": "0HRXO+7503LmhmEQmZOF1pqdaHaLA6qRuqXdX9yRInY=", - "ips": [ - "217.64.148.55" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn14.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "0HRXO+7503LmhmEQmZOF1pqdaHaLA6qRuqXdX9yRInY=", - "ips": [ - "217.64.148.55" - ], - "ports_udp": [ - 30014 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn15.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.56" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn15.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.56" - ], - "ports_tcp": [ - 20015 - ], - "ports_udp": [ - 20015 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn15.prd.kista.ovpn.com", - "wgpubkey": "FY1bA/jZI3PszkX1gapkXkleTwn4t/bRUNgDqDNhNxc=", - "ips": [ - "217.64.148.56" - ] - }, - { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn15.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "FY1bA/jZI3PszkX1gapkXkleTwn4t/bRUNgDqDNhNxc=", - "ips": [ - "217.64.148.56" - ], - "ports_udp": [ - 30015 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn16.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.57" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn16.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.57" - ], - "ports_tcp": [ - 20016 - ], - "ports_udp": [ - 20016 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn16.prd.kista.ovpn.com", - "wgpubkey": "mU72dBkCkhDTO0soVNOC9k3kCwvR5ok8khyq5bGEIQo=", - "ips": [ - "217.64.148.57" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn16.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "mU72dBkCkhDTO0soVNOC9k3kCwvR5ok8khyq5bGEIQo=", - "ips": [ - "217.64.148.57" - ], - "ports_udp": [ - 30016 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn20.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.58" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn20.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.58" - ], - "ports_tcp": [ - 20020 - ], - "ports_udp": [ - 20020 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn20.prd.kista.ovpn.com", - "wgpubkey": "Aeof2T0Bm7m84QXc8m+gRsh8vnPYTff/N2+AL5dEQD8=", - "ips": [ - "217.64.148.58" - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn20.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "Aeof2T0Bm7m84QXc8m+gRsh8vnPYTff/N2+AL5dEQD8=", - "ips": [ - "217.64.148.58" - ], - "ports_udp": [ - 30020 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn21.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.59" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn21.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "217.64.148.59" - ], - "ports_tcp": [ - 20021 - ], - "ports_udp": [ - 20021 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn21.prd.kista.ovpn.com", - "wgpubkey": "FGUnScNCZsfUwC4GnBy0ngsv8a3JA5XzY09JRnILiUM=", + "hostname": "vpn02.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.59" + "217.64.148.46" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn21.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "FGUnScNCZsfUwC4GnBy0ngsv8a3JA5XzY09JRnILiUM=", + "hostname": "vpn02.prd.kista.ovpn.com", + "wgpubkey": "X/9VAN4UImquYNAAh6WGzMhKPJMF1OSVp2aL2JGoml0=", "ips": [ - "217.64.148.59" - ], - "ports_udp": [ - 30021 + "217.64.148.46" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn22.prd.kista.ovpn.com", + "hostname": "vpn03.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.60" + "217.64.148.47" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn22.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn03.prd.kista.ovpn.com", + "wgpubkey": "stszvFCGUipu/kj28KC5merEmfhwjteFokZS+L3JR0A=", "ips": [ - "217.64.148.60" - ], - "ports_tcp": [ - 20022 - ], - "ports_udp": [ - 20022 + "217.64.148.47" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn22.prd.kista.ovpn.com", - "wgpubkey": "Igv1l0dPkoYUsBs3I9h3gowP/2KyKQ33EjhBV+ePcRE=", + "hostname": "vpn04.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.60" + "217.64.148.48" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn22.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "Igv1l0dPkoYUsBs3I9h3gowP/2KyKQ33EjhBV+ePcRE=", + "hostname": "vpn04.prd.kista.ovpn.com", + "wgpubkey": "ORHZz0byiajHB8cuA8Ss7UszWYTy9H+mzVR9GAioBiQ=", "ips": [ - "217.64.148.60" - ], - "ports_udp": [ - 30022 + "217.64.148.48" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn23.prd.kista.ovpn.com", + "hostname": "vpn05.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.61" + "217.64.148.49" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn23.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn05.prd.kista.ovpn.com", + "wgpubkey": "TC/ASkCkJrk9UkOkQffY4TXn6dEtFEkahe3xxakb6VU=", "ips": [ - "217.64.148.61" - ], - "ports_tcp": [ - 20023 - ], - "ports_udp": [ - 20023 + "217.64.148.49" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn23.prd.kista.ovpn.com", - "wgpubkey": "RLsdj6aAifM6DBy8SIuEgQhUpnKG1100t9AsS6qjVyw=", + "hostname": "vpn09.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.61" + "217.64.148.50" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn23.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "RLsdj6aAifM6DBy8SIuEgQhUpnKG1100t9AsS6qjVyw=", + "hostname": "vpn09.prd.kista.ovpn.com", + "wgpubkey": "T0Sd0czAhbArVNNd84OLCwhrYCeLipPmXhKzh99UCzw=", "ips": [ - "217.64.148.61" - ], - "ports_udp": [ - 30023 + "217.64.148.50" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn24.prd.kista.ovpn.com", + "hostname": "vpn10.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.62" + "217.64.148.51" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn24.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn10.prd.kista.ovpn.com", + "wgpubkey": "KKCpXL20GjRtC8ADvYna/pTsrFAtML/ndWxbVifg8Uw=", "ips": [ - "217.64.148.62" - ], - "ports_tcp": [ - 20024 - ], - "ports_udp": [ - 20024 + "217.64.148.51" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn24.prd.kista.ovpn.com", - "wgpubkey": "NreXVQ561FNrarCTBBbkKlbWhTktSNtghgjFYzbFsWY=", + "hostname": "vpn11.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.62" + "217.64.148.52" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn24.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "NreXVQ561FNrarCTBBbkKlbWhTktSNtghgjFYzbFsWY=", + "hostname": "vpn11.prd.kista.ovpn.com", + "wgpubkey": "p4s2SuFgKgWnV56Uh3yCx6ZWnaVyFXegV9FQqv670So=", "ips": [ - "217.64.148.62" - ], - "ports_udp": [ - 30024 + "217.64.148.52" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn46.prd.kista.ovpn.com", + "hostname": "vpn12.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.63" + "217.64.148.53" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn46.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn12.prd.kista.ovpn.com", + "wgpubkey": "UPKLcNO8+oav7Bsc8afNeN482pnieYLOBAh4vXdWFT0=", "ips": [ - "217.64.148.63" - ], - "ports_tcp": [ - 20046 - ], - "ports_udp": [ - 20046 + "217.64.148.53" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn46.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "YRePpnEzsm1qm/k+9+CElm/hrvnERiGkgTaujaLwlyw=", + "hostname": "vpn13.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.63" - ], - "ports_udp": [ - 30046 + "217.64.148.54" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn46.prd.kista.ovpn.com", - "wgpubkey": "YRePpnEzsm1qm/k+9+CElm/hrvnERiGkgTaujaLwlyw=", + "hostname": "vpn13.prd.kista.ovpn.com", + "wgpubkey": "HM+hbHGs2XZvKrY/cffcpVMNUIulaw+OFkgh6pT5ew0=", "ips": [ - "217.64.148.63" + "217.64.148.54" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn47.prd.kista.ovpn.com", + "hostname": "vpn14.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.64" + "217.64.148.55" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn47.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn14.prd.kista.ovpn.com", + "wgpubkey": "0HRXO+7503LmhmEQmZOF1pqdaHaLA6qRuqXdX9yRInY=", "ips": [ - "217.64.148.64" - ], - "ports_tcp": [ - 20047 - ], - "ports_udp": [ - 20047 + "217.64.148.55" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn47.prd.kista.ovpn.com", - "wgpubkey": "QoAlHNWv5wPbInedS9EfZR60pyVScdQuYCp5BQxH2jg=", + "hostname": "vpn15.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.64" + "217.64.148.56" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn47.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "QoAlHNWv5wPbInedS9EfZR60pyVScdQuYCp5BQxH2jg=", + "hostname": "vpn15.prd.kista.ovpn.com", + "wgpubkey": "FY1bA/jZI3PszkX1gapkXkleTwn4t/bRUNgDqDNhNxc=", "ips": [ - "217.64.148.64" - ], - "ports_udp": [ - 30047 + "217.64.148.56" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn48.prd.kista.ovpn.com", + "hostname": "vpn16.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.65" + "217.64.148.57" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn48.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn16.prd.kista.ovpn.com", + "wgpubkey": "mU72dBkCkhDTO0soVNOC9k3kCwvR5ok8khyq5bGEIQo=", "ips": [ - "217.64.148.65" - ], - "ports_tcp": [ - 20048 - ], - "ports_udp": [ - 20048 + "217.64.148.57" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn48.prd.kista.ovpn.com", - "wgpubkey": "m/LC0Y4eI5f5qF8ND/0dYMyPQB9wNLtWkyT/vYCnCkI=", + "hostname": "vpn20.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.65" + "217.64.148.58" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn48.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "m/LC0Y4eI5f5qF8ND/0dYMyPQB9wNLtWkyT/vYCnCkI=", + "hostname": "vpn20.prd.kista.ovpn.com", + "wgpubkey": "Aeof2T0Bm7m84QXc8m+gRsh8vnPYTff/N2+AL5dEQD8=", "ips": [ - "217.64.148.65" - ], - "ports_udp": [ - 30048 + "217.64.148.58" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn60.prd.kista.ovpn.com", + "hostname": "vpn21.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.66" + "217.64.148.59" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn60.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn21.prd.kista.ovpn.com", + "wgpubkey": "FGUnScNCZsfUwC4GnBy0ngsv8a3JA5XzY09JRnILiUM=", "ips": [ - "217.64.148.66" - ], - "ports_tcp": [ - 20060 - ], - "ports_udp": [ - 20060 + "217.64.148.59" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn60.prd.kista.ovpn.com", - "wgpubkey": "ARxCW8r9U5KxsDgo5U7qWxsLF5sNIYV+rC7KAi/nNB0=", + "hostname": "vpn22.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.66" + "217.64.148.60" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn60.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "ARxCW8r9U5KxsDgo5U7qWxsLF5sNIYV+rC7KAi/nNB0=", + "hostname": "vpn22.prd.kista.ovpn.com", + "wgpubkey": "Igv1l0dPkoYUsBs3I9h3gowP/2KyKQ33EjhBV+ePcRE=", "ips": [ - "217.64.148.66" - ], - "ports_udp": [ - 30060 + "217.64.148.60" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn61.prd.kista.ovpn.com", + "hostname": "vpn23.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.67" + "217.64.148.61" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn61.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn23.prd.kista.ovpn.com", + "wgpubkey": "RLsdj6aAifM6DBy8SIuEgQhUpnKG1100t9AsS6qjVyw=", "ips": [ - "217.64.148.67" - ], - "ports_tcp": [ - 20061 - ], - "ports_udp": [ - 20061 + "217.64.148.61" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn61.prd.kista.ovpn.com", - "wgpubkey": "aAFzYcp/M6rpQoxryEI8RAdmTquYzFeKNRET2g1RDwk=", + "hostname": "vpn24.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.67" + "217.64.148.62" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn61.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "aAFzYcp/M6rpQoxryEI8RAdmTquYzFeKNRET2g1RDwk=", + "hostname": "vpn24.prd.kista.ovpn.com", + "wgpubkey": "NreXVQ561FNrarCTBBbkKlbWhTktSNtghgjFYzbFsWY=", "ips": [ - "217.64.148.67" - ], - "ports_udp": [ - 30061 + "217.64.148.62" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn62.prd.kista.ovpn.com", + "hostname": "vpn46.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.68" + "217.64.148.63" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn62.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn46.prd.kista.ovpn.com", + "wgpubkey": "YRePpnEzsm1qm/k+9+CElm/hrvnERiGkgTaujaLwlyw=", "ips": [ - "217.64.148.68" - ], - "ports_tcp": [ - 20062 - ], - "ports_udp": [ - 20062 + "217.64.148.63" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn62.prd.kista.ovpn.com", - "wgpubkey": "ro8quDIMsn9tSLSffCsSx0qwZyKzAgVf4kMI7qTqxSs=", + "hostname": "vpn47.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.68" + "217.64.148.64" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn62.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "ro8quDIMsn9tSLSffCsSx0qwZyKzAgVf4kMI7qTqxSs=", + "hostname": "vpn47.prd.kista.ovpn.com", + "wgpubkey": "QoAlHNWv5wPbInedS9EfZR60pyVScdQuYCp5BQxH2jg=", "ips": [ - "217.64.148.68" - ], - "ports_udp": [ - 30062 + "217.64.148.64" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn63.prd.kista.ovpn.com", + "hostname": "vpn48.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.69" + "217.64.148.65" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn63.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn48.prd.kista.ovpn.com", + "wgpubkey": "m/LC0Y4eI5f5qF8ND/0dYMyPQB9wNLtWkyT/vYCnCkI=", "ips": [ - "217.64.148.69" - ], - "ports_tcp": [ - 20063 - ], - "ports_udp": [ - 20063 + "217.64.148.65" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn63.prd.kista.ovpn.com", - "wgpubkey": "vDhfsF9JrrcKdcWlX+fv0LDZT8k+TalxGObtdWHo8iU=", + "hostname": "vpn60.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.69" + "217.64.148.66" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn63.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "vDhfsF9JrrcKdcWlX+fv0LDZT8k+TalxGObtdWHo8iU=", + "hostname": "vpn60.prd.kista.ovpn.com", + "wgpubkey": "ARxCW8r9U5KxsDgo5U7qWxsLF5sNIYV+rC7KAi/nNB0=", "ips": [ - "217.64.148.69" - ], - "ports_udp": [ - 30063 + "217.64.148.66" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn64.prd.kista.ovpn.com", + "hostname": "vpn61.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.70" + "217.64.148.67" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn64.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn61.prd.kista.ovpn.com", + "wgpubkey": "aAFzYcp/M6rpQoxryEI8RAdmTquYzFeKNRET2g1RDwk=", "ips": [ - "217.64.148.70" - ], - "ports_tcp": [ - 20064 - ], - "ports_udp": [ - 20064 + "217.64.148.67" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn64.prd.kista.ovpn.com", - "wgpubkey": "jLwfeVIUOpAjOzrMC74DPouet1L59zgqed/YmCTa3y0=", + "hostname": "vpn62.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.70" + "217.64.148.68" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn64.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "jLwfeVIUOpAjOzrMC74DPouet1L59zgqed/YmCTa3y0=", + "hostname": "vpn62.prd.kista.ovpn.com", + "wgpubkey": "ro8quDIMsn9tSLSffCsSx0qwZyKzAgVf4kMI7qTqxSs=", "ips": [ - "217.64.148.70" - ], - "ports_udp": [ - 30064 + "217.64.148.68" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn74.prd.kista.ovpn.com", + "hostname": "vpn63.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.71" + "217.64.148.69" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn74.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn63.prd.kista.ovpn.com", + "wgpubkey": "vDhfsF9JrrcKdcWlX+fv0LDZT8k+TalxGObtdWHo8iU=", "ips": [ - "217.64.148.71" - ], - "ports_tcp": [ - 20074 - ], - "ports_udp": [ - 20074 + "217.64.148.69" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn74.prd.kista.ovpn.com", - "wgpubkey": "i6ejwlJ3Qz9woJeypdOXgPVlnl7Kr3TNKZa9NyGlgFw=", + "hostname": "vpn64.prd.kista.ovpn.com", + "tcp": true, + "udp": true, "ips": [ - "217.64.148.71" + "217.64.148.70" ] }, { "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn74.prd.kista.ovpn.com", - "multihop": true, - "wgpubkey": "i6ejwlJ3Qz9woJeypdOXgPVlnl7Kr3TNKZa9NyGlgFw=", + "hostname": "vpn64.prd.kista.ovpn.com", + "wgpubkey": "jLwfeVIUOpAjOzrMC74DPouet1L59zgqed/YmCTa3y0=", "ips": [ - "217.64.148.71" - ], - "ports_udp": [ - 30074 + "217.64.148.70" ] }, { "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn75.prd.kista.ovpn.com", + "hostname": "vpn74.prd.kista.ovpn.com", "tcp": true, "udp": true, "ips": [ - "217.64.148.72" + "217.64.148.71" ] }, { - "vpn": "openvpn", + "vpn": "wireguard", "country": "Sweden", "city": "Stockholm", - "hostname": "vpn75.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, + "hostname": "vpn74.prd.kista.ovpn.com", + "wgpubkey": "i6ejwlJ3Qz9woJeypdOXgPVlnl7Kr3TNKZa9NyGlgFw=", "ips": [ - "217.64.148.72" - ], - "ports_tcp": [ - 20075 - ], - "ports_udp": [ - 20075 + "217.64.148.71" ] }, { - "vpn": "wireguard", + "vpn": "openvpn", "country": "Sweden", "city": "Stockholm", "hostname": "vpn75.prd.kista.ovpn.com", - "wgpubkey": "xK/gtbtCdACJ9geWMAfCRoRXYFBDmbr8Y3VfuovzvHw=", + "tcp": true, + "udp": true, "ips": [ "217.64.148.72" ] @@ -255957,24 +253369,9 @@ "country": "Sweden", "city": "Stockholm", "hostname": "vpn75.prd.kista.ovpn.com", - "multihop": true, "wgpubkey": "xK/gtbtCdACJ9geWMAfCRoRXYFBDmbr8Y3VfuovzvHw=", "ips": [ "217.64.148.72" - ], - "ports_udp": [ - 30075 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn76.prd.kista.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "217.64.148.73" ] }, { @@ -255984,23 +253381,6 @@ "hostname": "vpn76.prd.kista.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "217.64.148.73" - ], - "ports_tcp": [ - 20076 - ], - "ports_udp": [ - 20076 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Stockholm", - "hostname": "vpn76.prd.kista.ovpn.com", - "wgpubkey": "zfZsLj1yQLC7q2ZA4hVqdl8G5h24VbcmP3VOTxrqwko=", "ips": [ "217.64.148.73" ] @@ -256010,24 +253390,9 @@ "country": "Sweden", "city": "Stockholm", "hostname": "vpn76.prd.kista.ovpn.com", - "multihop": true, "wgpubkey": "zfZsLj1yQLC7q2ZA4hVqdl8G5h24VbcmP3VOTxrqwko=", "ips": [ "217.64.148.73" - ], - "ports_udp": [ - 30076 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Sundsvall", - "hostname": "vpn85.prd.sundsvall.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.148.17.36" ] }, { @@ -256037,23 +253402,6 @@ "hostname": "vpn85.prd.sundsvall.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "45.148.17.36" - ], - "ports_tcp": [ - 20085 - ], - "ports_udp": [ - 20085 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Sundsvall", - "hostname": "vpn85.prd.sundsvall.ovpn.com", - "wgpubkey": "uppQOT0dl31VG4ziHQ9U2JLZ2Hz8J8Or7k5VYrcoXkk=", "ips": [ "45.148.17.36" ] @@ -256063,24 +253411,9 @@ "country": "Sweden", "city": "Sundsvall", "hostname": "vpn85.prd.sundsvall.ovpn.com", - "multihop": true, "wgpubkey": "uppQOT0dl31VG4ziHQ9U2JLZ2Hz8J8Or7k5VYrcoXkk=", "ips": [ "45.148.17.36" - ], - "ports_udp": [ - 30085 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Sundsvall", - "hostname": "vpn86.prd.sundsvall.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.148.17.37" ] }, { @@ -256090,29 +253423,8 @@ "hostname": "vpn86.prd.sundsvall.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "45.148.17.37" - ], - "ports_tcp": [ - 20086 - ], - "ports_udp": [ - 20086 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Sundsvall", - "hostname": "vpn86.prd.sundsvall.ovpn.com", - "multihop": true, - "wgpubkey": "Sgl5cXkX0FzEMtqUWmVpuIPyG/njXLKNJVlbvZVU7Dg=", "ips": [ "45.148.17.37" - ], - "ports_udp": [ - 30086 ] }, { @@ -256136,57 +253448,14 @@ "45.148.17.38" ] }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Sundsvall", - "hostname": "vpn87.prd.sundsvall.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "45.148.17.38" - ], - "ports_tcp": [ - 20087 - ], - "ports_udp": [ - 20087 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Sundsvall", - "hostname": "vpn87.prd.sundsvall.ovpn.com", - "wgpubkey": "24r2AFrY1pmhcTR5DE5jx4mcwNsnNCT+ro1Z3hjXyik=", - "ips": [ - "45.148.17.38" - ] - }, { "vpn": "wireguard", "country": "Sweden", "city": "Sundsvall", "hostname": "vpn87.prd.sundsvall.ovpn.com", - "multihop": true, - "wgpubkey": "24r2AFrY1pmhcTR5DE5jx4mcwNsnNCT+ro1Z3hjXyik=", - "ips": [ - "45.148.17.38" - ], - "ports_udp": [ - 30087 - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "city": "Sundsvall", - "hostname": "vpn88.prd.sundsvall.ovpn.com", - "tcp": true, - "udp": true, + "wgpubkey": "24r2AFrY1pmhcTR5DE5jx4mcwNsnNCT+ro1Z3hjXyik=", "ips": [ - "45.148.17.39" + "45.148.17.38" ] }, { @@ -256196,23 +253465,6 @@ "hostname": "vpn88.prd.sundsvall.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "45.148.17.39" - ], - "ports_tcp": [ - 20088 - ], - "ports_udp": [ - 20088 - ] - }, - { - "vpn": "wireguard", - "country": "Sweden", - "city": "Sundsvall", - "hostname": "vpn88.prd.sundsvall.ovpn.com", - "wgpubkey": "oYhExIe8PAvSZLwh9Xcy9MAhwpjK/tgb8dHjY+l5w0M=", "ips": [ "45.148.17.39" ] @@ -256222,13 +253474,9 @@ "country": "Sweden", "city": "Sundsvall", "hostname": "vpn88.prd.sundsvall.ovpn.com", - "multihop": true, "wgpubkey": "oYhExIe8PAvSZLwh9Xcy9MAhwpjK/tgb8dHjY+l5w0M=", "ips": [ "45.148.17.39" - ], - "ports_udp": [ - 30088 ] }, { @@ -256242,57 +253490,14 @@ "152.89.162.4" ] }, - { - "vpn": "openvpn", - "country": "Switzerland", - "city": "Zurich", - "hostname": "vpn43.prd.zurich.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "152.89.162.4" - ], - "ports_tcp": [ - 20043 - ], - "ports_udp": [ - 20043 - ] - }, - { - "vpn": "wireguard", - "country": "Switzerland", - "city": "Zurich", - "hostname": "vpn43.prd.zurich.ovpn.com", - "wgpubkey": "BH/TUFM8TPoYqpry4o2ZF+rgW3DPTZHsB886Wq6aaCc=", - "ips": [ - "152.89.162.4" - ] - }, { "vpn": "wireguard", "country": "Switzerland", "city": "Zurich", "hostname": "vpn43.prd.zurich.ovpn.com", - "multihop": true, "wgpubkey": "BH/TUFM8TPoYqpry4o2ZF+rgW3DPTZHsB886Wq6aaCc=", "ips": [ "152.89.162.4" - ], - "ports_udp": [ - 30043 - ] - }, - { - "vpn": "openvpn", - "country": "USA", - "city": "Atlanta", - "hostname": "vpn18.prd.atlanta.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.134.140.67" ] }, { @@ -256302,23 +253507,6 @@ "hostname": "vpn18.prd.atlanta.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "45.134.140.67" - ], - "ports_tcp": [ - 20018 - ], - "ports_udp": [ - 20018 - ] - }, - { - "vpn": "wireguard", - "country": "USA", - "city": "Atlanta", - "hostname": "vpn18.prd.atlanta.ovpn.com", - "wgpubkey": "Dpg/4v5s9u0YbrXukfrMpkA+XQqKIFpf8ZFgyw0IkE0=", "ips": [ "45.134.140.67" ] @@ -256328,13 +253516,9 @@ "country": "USA", "city": "Atlanta", "hostname": "vpn18.prd.atlanta.ovpn.com", - "multihop": true, "wgpubkey": "Dpg/4v5s9u0YbrXukfrMpkA+XQqKIFpf8ZFgyw0IkE0=", "ips": [ "45.134.140.67" - ], - "ports_udp": [ - 30018 ] }, { @@ -256348,64 +253532,14 @@ "87.249.134.67" ] }, - { - "vpn": "openvpn", - "country": "USA", - "city": "Chicago", - "hostname": "vpn32.prd.chicago.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "87.249.134.67" - ], - "ports_tcp": [ - 20032 - ], - "ports_udp": [ - 20032 - ] - }, - { - "vpn": "wireguard", - "country": "USA", - "city": "Chicago", - "hostname": "vpn32.prd.chicago.ovpn.com", - "wgpubkey": "f6diOpTYBzutXhnmXvP3D/9oT0S5SPlGwOJGa9HXfGY=", - "ips": [ - "87.249.134.67" - ] - }, { "vpn": "wireguard", "country": "USA", "city": "Chicago", "hostname": "vpn32.prd.chicago.ovpn.com", - "multihop": true, "wgpubkey": "f6diOpTYBzutXhnmXvP3D/9oT0S5SPlGwOJGa9HXfGY=", "ips": [ "87.249.134.67" - ], - "ports_udp": [ - 30032 - ] - }, - { - "vpn": "openvpn", - "country": "USA", - "city": "Dallas", - "hostname": "vpn33.prd.dallas.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "194.37.97.35" - ], - "ports_tcp": [ - 20033 - ], - "ports_udp": [ - 20033 ] }, { @@ -256429,20 +253563,6 @@ "194.37.97.35" ] }, - { - "vpn": "wireguard", - "country": "USA", - "city": "Dallas", - "hostname": "vpn33.prd.dallas.ovpn.com", - "multihop": true, - "wgpubkey": "uxkKXVGjzXsDKbkxMGuN98F6N1BzgJnSzGseEgG7t3o=", - "ips": [ - "194.37.97.35" - ], - "ports_udp": [ - 30033 - ] - }, { "vpn": "openvpn", "country": "USA", @@ -256454,57 +253574,14 @@ "169.150.231.243" ] }, - { - "vpn": "openvpn", - "country": "USA", - "city": "Denver", - "hostname": "vpn103.prd.denver.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "169.150.231.243" - ], - "ports_tcp": [ - 20103 - ], - "ports_udp": [ - 20103 - ] - }, - { - "vpn": "wireguard", - "country": "USA", - "city": "Denver", - "hostname": "vpn103.prd.denver.ovpn.com", - "wgpubkey": "gj9gAte4VKy3cY8HL3hb6IM5zdYtVQOSwNtMMpdDX3U=", - "ips": [ - "169.150.231.243" - ] - }, { "vpn": "wireguard", "country": "USA", "city": "Denver", "hostname": "vpn103.prd.denver.ovpn.com", - "multihop": true, "wgpubkey": "gj9gAte4VKy3cY8HL3hb6IM5zdYtVQOSwNtMMpdDX3U=", "ips": [ "169.150.231.243" - ], - "ports_udp": [ - 30103 - ] - }, - { - "vpn": "openvpn", - "country": "USA", - "city": "Los Angeles", - "hostname": "vpn31.prd.losangeles.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.83.89.131" ] }, { @@ -256514,23 +253591,6 @@ "hostname": "vpn31.prd.losangeles.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "45.83.89.131" - ], - "ports_tcp": [ - 20031 - ], - "ports_udp": [ - 20031 - ] - }, - { - "vpn": "wireguard", - "country": "USA", - "city": "Los Angeles", - "hostname": "vpn31.prd.losangeles.ovpn.com", - "wgpubkey": "VW6bEWMOlOneta1bf6YFE25N/oMGh1E1UFBCfyggd0k=", "ips": [ "45.83.89.131" ] @@ -256540,13 +253600,9 @@ "country": "USA", "city": "Los Angeles", "hostname": "vpn31.prd.losangeles.ovpn.com", - "multihop": true, "wgpubkey": "VW6bEWMOlOneta1bf6YFE25N/oMGh1E1UFBCfyggd0k=", "ips": [ "45.83.89.131" - ], - "ports_udp": [ - 30031 ] }, { @@ -256556,34 +253612,6 @@ "hostname": "vpn34.prd.miami.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "45.134.142.3" - ], - "ports_tcp": [ - 20034 - ], - "ports_udp": [ - 20034 - ] - }, - { - "vpn": "openvpn", - "country": "USA", - "city": "Miami", - "hostname": "vpn34.prd.miami.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.134.142.3" - ] - }, - { - "vpn": "wireguard", - "country": "USA", - "city": "Miami", - "hostname": "vpn34.prd.miami.ovpn.com", - "wgpubkey": "VtJz2irbu8mdkIQvzlsYhU+k9d55or9mx4A2a14t0V0=", "ips": [ "45.134.142.3" ] @@ -256593,24 +253621,9 @@ "country": "USA", "city": "Miami", "hostname": "vpn34.prd.miami.ovpn.com", - "multihop": true, "wgpubkey": "VtJz2irbu8mdkIQvzlsYhU+k9d55or9mx4A2a14t0V0=", "ips": [ "45.134.142.3" - ], - "ports_udp": [ - 30034 - ] - }, - { - "vpn": "openvpn", - "country": "USA", - "city": "New York", - "hostname": "vpn71.prd.newyork.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "5.181.234.131" ] }, { @@ -256620,29 +253633,8 @@ "hostname": "vpn71.prd.newyork.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "5.181.234.131" - ], - "ports_tcp": [ - 20071 - ], - "ports_udp": [ - 20071 - ] - }, - { - "vpn": "wireguard", - "country": "USA", - "city": "New York", - "hostname": "vpn71.prd.newyork.ovpn.com", - "multihop": true, - "wgpubkey": "xMbLX2Xtbp87E1vP7OButafaZBD4KHgjsa52Kc1FaTk=", "ips": [ "5.181.234.131" - ], - "ports_udp": [ - 30071 ] }, { @@ -256666,57 +253658,14 @@ "156.146.51.227" ] }, - { - "vpn": "openvpn", - "country": "USA", - "city": "Seattle", - "hostname": "vpn102.prd.seattle.ovpn.com", - "tcp": true, - "udp": true, - "multihop": true, - "ips": [ - "156.146.51.227" - ], - "ports_tcp": [ - 20102 - ], - "ports_udp": [ - 20102 - ] - }, - { - "vpn": "wireguard", - "country": "USA", - "city": "Seattle", - "hostname": "vpn102.prd.seattle.ovpn.com", - "wgpubkey": "aDi7CV3ueV3XCRNHOjlo6AxCLyS4s8maKgL9MbwF9W8=", - "ips": [ - "156.146.51.227" - ] - }, { "vpn": "wireguard", "country": "USA", "city": "Seattle", "hostname": "vpn102.prd.seattle.ovpn.com", - "multihop": true, "wgpubkey": "aDi7CV3ueV3XCRNHOjlo6AxCLyS4s8maKgL9MbwF9W8=", "ips": [ "156.146.51.227" - ], - "ports_udp": [ - 30102 - ] - }, - { - "vpn": "openvpn", - "country": "Ukraine", - "city": "Kyiv", - "hostname": "vpn96.prd.kyiv.ovpn.com", - "tcp": true, - "udp": true, - "ips": [ - "143.244.46.147" ] }, { @@ -256726,23 +253675,6 @@ "hostname": "vpn96.prd.kyiv.ovpn.com", "tcp": true, "udp": true, - "multihop": true, - "ips": [ - "143.244.46.147" - ], - "ports_tcp": [ - 20096 - ], - "ports_udp": [ - 20096 - ] - }, - { - "vpn": "wireguard", - "country": "Ukraine", - "city": "Kyiv", - "hostname": "vpn96.prd.kyiv.ovpn.com", - "wgpubkey": "CjZcXDxaaKpW8b5As1EcNbI6+42A6BjWahwXDCwfVFg=", "ips": [ "143.244.46.147" ] @@ -256752,13 +253684,9 @@ "country": "Ukraine", "city": "Kyiv", "hostname": "vpn96.prd.kyiv.ovpn.com", - "multihop": true, "wgpubkey": "CjZcXDxaaKpW8b5As1EcNbI6+42A6BjWahwXDCwfVFg=", "ips": [ "143.244.46.147" - ], - "ports_udp": [ - 30096 ] } ] From 6476cedae958e816733f11959205ed0e15f388fc Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Fri, 27 Dec 2024 20:06:34 +0000 Subject: [PATCH 6/6] Remove unneeded `allow-compression asym` --- internal/provider/ovpn/openvpnconf.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/provider/ovpn/openvpnconf.go b/internal/provider/ovpn/openvpnconf.go index 4a723b08b..e095e5acd 100644 --- a/internal/provider/ovpn/openvpnconf.go +++ b/internal/provider/ovpn/openvpnconf.go @@ -27,7 +27,6 @@ func (p *Provider) OpenVPNConfig(connection models.Connection, TLSAuth: "81782767e4d59c4464cc5d1896f1cf6015017d53ac62e2e3b94b889e00b2c69ddc01944fe1c6d895b4d80540502eb71910b8d785c9efa9e3182343532adffe1cfbb7bb6eae39c502da2748edf0fb89b8a20b0a1085cc1f06135037881bc0c4ad8f2c0f4f72d2ab466fb54af3d8264c5fddeb0f21aa0ca41863678f5fc4c44de4ca0926b36dfddc42c6f2fabd1694bdc8215b2d223b9c21dc6734c2c778093187afb8c33403b228b9af68b540c284f6d183bcc88bd41d47bd717996e499ce1cbbfa768a9723c19c58314c4d19cfed82e543ee92e73d38ad26d4fbec231c0f9f3b30773a5c87792e9bc7c34e8d7611002ebedd044e48a0f1f96527bfdcc940aa09", //nolint:lll KeyDirection: "1", ExtraLines: []string{ - "allow-compression asym", "replay-window 256", }, }