From c5b9ee89c6b1606c1bbd4142fff843cdc3cc4231 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Thu, 6 Aug 2026 01:04:03 +0000 Subject: [PATCH] expressvpn wip --- .../provider/expressvpn/connection_test.go | 3 +- internal/provider/expressvpn/provider.go | 6 +- .../provider/expressvpn/updater/candidates.go | 146 + .../provider/expressvpn/updater/hardcoded.go | 170 - .../provider/expressvpn/updater/resolve.go | 2 +- .../provider/expressvpn/updater/servers.go | 70 +- .../expressvpn/updater/testdata/index.html | 13037 ++++++++++++++++ .../provider/expressvpn/updater/updater.go | 8 +- .../provider/expressvpn/updater/website.go | 111 + .../expressvpn/updater/website_test.go | 206 + internal/provider/providers.go | 2 +- 11 files changed, 13564 insertions(+), 197 deletions(-) create mode 100644 internal/provider/expressvpn/updater/candidates.go delete mode 100644 internal/provider/expressvpn/updater/hardcoded.go create mode 100644 internal/provider/expressvpn/updater/testdata/index.html create mode 100644 internal/provider/expressvpn/updater/website.go create mode 100644 internal/provider/expressvpn/updater/website_test.go diff --git a/internal/provider/expressvpn/connection_test.go b/internal/provider/expressvpn/connection_test.go index 1ade5db4..52d0b4d8 100644 --- a/internal/provider/expressvpn/connection_test.go +++ b/internal/provider/expressvpn/connection_test.go @@ -2,6 +2,7 @@ package expressvpn import ( "errors" + "net/http" "net/netip" "testing" @@ -83,7 +84,7 @@ func Test_Provider_GetConnection(t *testing.T) { unzipper := (common.Unzipper)(nil) warner := (common.Warner)(nil) parallelResolver := (common.ParallelResolver)(nil) - provider := New(storage, unzipper, warner, parallelResolver) + provider := New(storage, &http.Client{}, unzipper, warner, parallelResolver) if testCase.panicMessage != "" { assert.PanicsWithValue(t, testCase.panicMessage, func() { diff --git a/internal/provider/expressvpn/provider.go b/internal/provider/expressvpn/provider.go index 00a4a6e4..32a2e42f 100644 --- a/internal/provider/expressvpn/provider.go +++ b/internal/provider/expressvpn/provider.go @@ -1,6 +1,8 @@ package expressvpn import ( + "net/http" + "github.com/qdm12/gluetun/internal/constants/providers" "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/provider/expressvpn/updater" @@ -13,13 +15,13 @@ type Provider struct { common.Fetcher } -func New(storage common.Storage, unzipper common.Unzipper, updaterWarner common.Warner, +func New(storage common.Storage, client *http.Client, unzipper common.Unzipper, updaterWarner common.Warner, parallelResolver common.ParallelResolver, ) *Provider { return &Provider{ storage: storage, connPicker: utils.NewConnectionPicker(), - Fetcher: updater.New(unzipper, updaterWarner, parallelResolver), + Fetcher: updater.New(client, unzipper, updaterWarner, parallelResolver), } } diff --git a/internal/provider/expressvpn/updater/candidates.go b/internal/provider/expressvpn/updater/candidates.go new file mode 100644 index 00000000..19a2f0d2 --- /dev/null +++ b/internal/provider/expressvpn/updater/candidates.go @@ -0,0 +1,146 @@ +package updater + +import ( + "fmt" + "strings" + + "github.com/qdm12/gluetun/internal/models" +) + +// generateCandidateHostnames generates multiple hostname candidates for a given location +// by trying different slug variations, number suffixes, and country aliases. +func generateCandidateHostnames(server models.Server) (hostnames []string, err error) { + country := strings.ToLower(server.Country) + city := strings.ToLower(server.City) + + if strings.Contains(country, " (via ") { + destinationEndIndex := strings.Index(country, " (via ") + destination := strings.TrimSpace(country[:destinationEndIndex]) + destination = strings.ReplaceAll(destination, " ", "") + + sourceEndIndex := strings.Index(country[destinationEndIndex:], ")") + if sourceEndIndex == -1 { + return nil, fmt.Errorf("invalid location format, missing closing parenthesis for source: %q", country) + } + source := strings.TrimSpace(country[destinationEndIndex+len(" (via ") : destinationEndIndex+sourceEndIndex]) + source = strings.ReplaceAll(source, " ", "") + + sourceAliases := countryNameToAliases(source) + sources := make([]string, 0, 1+len(sourceAliases)) + sources = append(sources, source) + sources = append(sources, sourceAliases...) + destinationAliases := countryNameToAliases(destination) + destinations := make([]string, 0, 1+len(destinationAliases)) + destinations = append(destinations, destination) + destinations = append(destinations, destinationAliases...) + + slugs := make([]string, 0, (1+len(sourceAliases))*(1+len(destinationAliases))) + for _, destination := range destinations { + for _, source := range sources { + slugs = append(slugs, destination+"-"+source) + } + } + + if city != "" { + return nil, fmt.Errorf("city %q should be empty for multi-hop country: %s", city, country) + } + + return makeNumberedCandidates(slugs, server.Number), nil + } + + countrySlug := strings.ReplaceAll(strings.TrimSpace(country), " ", "") + countrySlugAliases := countryNameToAliases(countrySlug) + countrySlugs := make([]string, 0, 1+len(countrySlugAliases)) + countrySlugs = append(countrySlugs, countrySlug) + countrySlugs = append(countrySlugs, countrySlugAliases...) + + var citySlugs []string + if city != "" { + if strings.Contains(city, " ") { + citySlugs = append(citySlugs, strings.ReplaceAll(city, " ", "")) + citySlugs = append(citySlugs, strings.ReplaceAll(city, " ", "-")) + } else { + citySlugs = append(citySlugs, city) + } + } + + var slugs []string + if len(citySlugs) == 0 { + slugs = countrySlugs + } else { + slugs = make([]string, 0, len(countrySlugs)*len(citySlugs)) + for _, countrySlug := range countrySlugs { + for _, citySlug := range citySlugs { + slugs = append(slugs, countrySlug+"-"+citySlug) + } + } + } + + return makeNumberedCandidates(slugs, server.Number), nil +} + +func makeNumberedCandidates(baseSlugs []string, serverNumber uint16) (candidates []string) { + numbersToTry := []uint16{1, 2, 3, 4, 5} + if serverNumber > 0 { + numbersToTry = []uint16{serverNumber} + } + const candidateVariationsPerNumber = 2 // slugN and slug-N + candidateVariationsPerBase := 1 + len(numbersToTry)*candidateVariationsPerNumber // base + (slugN and slug-N for each number) + candidates = make([]string, 0, len(baseSlugs)*candidateVariationsPerBase) + for _, base := range baseSlugs { + candidates = append(candidates, base+hostnameSuffix) + for _, number := range numbersToTry { + candidates = append(candidates, + base+fmt.Sprintf("%d-ca-version-2.expressnetw.com", number), + base+fmt.Sprintf("-%d-ca-version-2.expressnetw.com", number)) + } + } + return candidates +} + +// hostnameSuffix is appended to all ExpressVPN hostnames. +const hostnameSuffix = "-ca-version-2.expressnetw.com" + +// countryNameToAliases maps common country names to alternative names used in hostnames. +func countryNameToAliases(country string) (aliases []string) { + switch country { + case "usa": + return []string{"us"} + case "uk": + return []string{"gb"} + case "netherlands": + return []string{"nl"} + case "switzerland": + return []string{"ch"} + case "japan": + return []string{"jp"} + case "sweden": + return []string{"se"} + case "norway": + return []string{"no"} + case "denmark": + return []string{"dk"} + case "finland": + return []string{"fi"} + case "portugal": + return []string{"pt"} + case "spain": + return []string{"es"} + case "germany": + return []string{"de"} + case "italy": + return []string{"it"} + case "australia": + return []string{"au"} + case "singapore": + return []string{"sg"} + case "taiwan": + return []string{"tw"} + case "southkorea": + return []string{"kr"} + case "northmacedonia": + return []string{"macedonia"} + default: + return nil + } +} diff --git a/internal/provider/expressvpn/updater/hardcoded.go b/internal/provider/expressvpn/updater/hardcoded.go deleted file mode 100644 index f99a4b08..00000000 --- a/internal/provider/expressvpn/updater/hardcoded.go +++ /dev/null @@ -1,170 +0,0 @@ -package updater - -import ( - "github.com/qdm12/gluetun/internal/models" -) - -func hardcodedServers() (servers []models.Server) { - return []models.Server{ - {Country: "Albania", Hostname: "albania-ca-version-2.expressnetw.com"}, - {Country: "Algeria", Hostname: "algeria-ca-version-2.expressnetw.com"}, - {Country: "Andorra", Hostname: "andorra-ca-version-2.expressnetw.com"}, - {Country: "Argentina", Hostname: "argentina-ca-version-2.expressnetw.com"}, - {Country: "Australia", City: "Adelaide", Hostname: "australia-adelaide--ca-version-2.expressnetw.com"}, - {Country: "Australia", City: "Brisbane", Hostname: "australia-brisbane-ca-version-2.expressnetw.com"}, - {Country: "Australia", City: "Melbourne", Hostname: "australia-melbourne-ca-version-2.expressnetw.com"}, - {Country: "Australia", City: "Perth", Hostname: "australia-perth-ca-version-2.expressnetw.com"}, - {Country: "Australia", City: "Sydney", Hostname: "australia-sydney-2-ca-version-2.expressnetw.com"}, - {Country: "Australia", City: "Sydney", Hostname: "australia-sydney-ca-version-2.expressnetw.com"}, - {Country: "Australia", City: "Woolloomooloo", Hostname: "australia-woolloomooloo-2-ca-version-2.expressnetw.com"}, - {Country: "Austria", Hostname: "austria-ca-version-2.expressnetw.com"}, - {Country: "Azerbaijan", Hostname: "azerbaijan-ca-version-2.expressnetw.com"}, - {Country: "Bahamas", Hostname: "bahamas-ca-version-2.expressnetw.com"}, - {Country: "Bangladesh", Hostname: "bangladesh-ca-version-2.expressnetw.com"}, - {Country: "Belarus", Hostname: "belarus-ca-version-2.expressnetw.com"}, - {Country: "Belgium", Hostname: "belgium-ca-version-2.expressnetw.com"}, - {Country: "Bermuda", Hostname: "bermuda-ca-version-2.expressnetw.com"}, - {Country: "Bhutan", Hostname: "bhutan-ca-version-2.expressnetw.com"}, - {Country: "Bolivia", Hostname: "bolivia-ca-version-2.expressnetw.com"}, - {Country: "Brazil", Hostname: "brazil-2-ca-version-2.expressnetw.com"}, - {Country: "Brazil", Hostname: "brazil-ca-version-2.expressnetw.com"}, - {Country: "Brunei", Hostname: "brunei-ca-version-2.expressnetw.com"}, - {Country: "Bulgaria", Hostname: "bulgaria-ca-version-2.expressnetw.com"}, - {Country: "Cambodia", Hostname: "cambodia-ca-version-2.expressnetw.com"}, - {Country: "Canada", City: "Montreal", Hostname: "canada-montreal-ca-version-2.expressnetw.com"}, - {Country: "Canada", City: "Toronto", Hostname: "canada-toronto-2-ca-version-2.expressnetw.com"}, - {Country: "Canada", City: "Toronto", Hostname: "canada-toronto-ca-version-2.expressnetw.com"}, - {Country: "Cayman Islands", Hostname: "caymanislands-ca-version-2.expressnetw.com"}, - {Country: "Chile", Hostname: "chile-ca-version-2.expressnetw.com"}, - {Country: "Colombia", Hostname: "colombia-ca-version-2.expressnetw.com"}, - {Country: "Costa Rica", Hostname: "costarica-ca-version-2.expressnetw.com"}, - {Country: "Croatia", Hostname: "croatia-ca-version-2.expressnetw.com"}, - {Country: "Cuba", Hostname: "cuba-ca-version-2.expressnetw.com"}, - {Country: "Cyprus", Hostname: "cyprus-ca-version-2.expressnetw.com"}, - {Country: "Czech Republic", Hostname: "czechrepublic-ca-version-2.expressnetw.com"}, - {Country: "Denmark", Hostname: "denmark-ca-version-2.expressnetw.com"}, - {Country: "Dominican Republic", Hostname: "dominicanrepublic-ca-version-2.expressnetw.com"}, - {Country: "Ecuador", Hostname: "ecuador-ca-version-2.expressnetw.com"}, - {Country: "Egypt", Hostname: "egypt-ca-version-2.expressnetw.com"}, - {Country: "Estonia", Hostname: "estonia-ca-version-2.expressnetw.com"}, - {Country: "Finland", Hostname: "finland-ca-version-2.expressnetw.com"}, - {Country: "France", City: "Alsace", Hostname: "france-alsace-ca-version-2.expressnetw.com"}, - {Country: "France", City: "Marseille", Hostname: "france-marseille-ca-version-2.expressnetw.com"}, - {Country: "France", City: "Paris", Hostname: "france-paris-1-ca-version-2.expressnetw.com"}, - {Country: "France", City: "Paris", Hostname: "france-paris-2-ca-version-2.expressnetw.com"}, - {Country: "France", City: "Strasbourg", Hostname: "france-strasbourg-ca-version-2.expressnetw.com"}, - {Country: "Georgia", Hostname: "georgia-ca-version-2.expressnetw.com"}, - {Country: "Germany", City: "Frankfurt", Hostname: "germany-darmstadt-ca-version-2.expressnetw.com"}, - {Country: "Germany", City: "Frankfurt", Hostname: "germany-frankfurt-1-ca-version-2.expressnetw.com"}, - {Country: "Germany", City: "Nuremberg", Hostname: "germany-nuremberg-ca-version-2.expressnetw.com"}, - {Country: "Ghana", Hostname: "ghana-ca-version-2.expressnetw.com"}, - {Country: "Greece", Hostname: "greece-ca-version-2.expressnetw.com"}, - {Country: "Guam", Hostname: "guam-ca-version-2.expressnetw.com"}, - {Country: "Guatemala", Hostname: "guatemala-ca-version-2.expressnetw.com"}, - {Country: "Honduras", Hostname: "honduras-ca-version-2.expressnetw.com"}, - {Country: "Hong Kong", Hostname: "hongkong-1-ca-version-2.expressnetw.com"}, - {Country: "Hong Kong", Hostname: "hongkong-2-ca-version-2.expressnetw.com"}, - {Country: "Hungary", Hostname: "hungary-ca-version-2.expressnetw.com"}, - {Country: "Iceland", Hostname: "iceland-ca-version-2.expressnetw.com"}, - {Country: "India (via Singapore)", Hostname: "india-sg-ca-version-2.expressnetw.com"}, - {Country: "India (via UK)", Hostname: "india-uk-ca-version-2.expressnetw.com"}, - {Country: "Indonesia", Hostname: "indonesia-ca-version-2.expressnetw.com"}, - {Country: "Ireland", Hostname: "ireland-ca-version-2.expressnetw.com"}, - {Country: "Israel", Hostname: "israel-ca-version-2.expressnetw.com"}, - {Country: "Italy", City: "Cosenza", Hostname: "italy-cosenza-ca-version-2.expressnetw.com"}, - {Country: "Italy", City: "Milan", Hostname: "italy-milan-ca-version-2.expressnetw.com"}, - {Country: "Italy", City: "Naples", Hostname: "italy-naples-ca-version-2.expressnetw.com"}, - {Country: "Jamaica", Hostname: "jamaica-ca-version-2.expressnetw.com"}, - {Country: "Japan", City: "Osaka", Hostname: "japan-osaka-ca-version-2.expressnetw.com"}, - {Country: "Japan", City: "Shibuya", Hostname: "japan-shibuya-ca-version-2.expressnetw.com"}, - {Country: "Japan", City: "Tokyo", Hostname: "japan-tokyo-ca-version-2.expressnetw.com"}, - {Country: "Japan", City: "Yokohama", Hostname: "japan-yokohama-ca-version-2.expressnetw.com"}, - {Country: "Kazakhstan", Hostname: "kazakhstan-ca-version-2.expressnetw.com"}, - {Country: "Laos", Hostname: "laos-ca-version-2.expressnetw.com"}, - {Country: "Latvia", Hostname: "latvia-ca-version-2.expressnetw.com"}, - {Country: "Liechtenstein", Hostname: "liechtenstein-ca-version-2.expressnetw.com"}, - {Country: "Lithuania", Hostname: "lithuania-ca-version-2.expressnetw.com"}, - {Country: "Luxembourg", Hostname: "luxembourg-ca-version-2.expressnetw.com"}, - {Country: "Macau", Hostname: "macau-ca-version-2.expressnetw.com"}, - {Country: "Malaysia", Hostname: "malaysia-ca-version-2.expressnetw.com"}, - {Country: "Mexico", Hostname: "mexico-ca-version-2.expressnetw.com"}, - {Country: "Moldova", Hostname: "moldova-ca-version-2.expressnetw.com"}, - {Country: "Mongolia", Hostname: "mongolia-ca-version-2.expressnetw.com"}, - {Country: "Morocco", Hostname: "morocco-ca-version-2.expressnetw.com"}, - {Country: "Myanmar", Hostname: "myanmar-ca-version-2.expressnetw.com"}, - {Country: "Nepal", Hostname: "nepal-ca-version-2.expressnetw.com"}, - {Country: "Netherlands", City: "Amsterdam", Hostname: "netherlands-amsterdam-ca-version-2.expressnetw.com"}, - {Country: "Netherlands", City: "Rotterdam", Hostname: "netherlands-rotterdam-ca-version-2.expressnetw.com"}, - {Country: "Netherlands", City: "The Hague", Hostname: "netherlands-thehague-ca-version-2.expressnetw.com"}, - {Country: "New Zealand", Hostname: "newzealand-ca-version-2.expressnetw.com"}, - {Country: "North Macedonia", Hostname: "macedonia-ca-version-2.expressnetw.com"}, - {Country: "Norway", Hostname: "norway-ca-version-2.expressnetw.com"}, - {Country: "Panama", Hostname: "panama-ca-version-2.expressnetw.com"}, - {Country: "Peru", Hostname: "peru-ca-version-2.expressnetw.com"}, - {Country: "Philippines (via Singapore)", Hostname: "ph-via-sing-ca-version-2.expressnetw.com"}, - {Country: "Poland", Hostname: "poland-ca-version-2.expressnetw.com"}, - {Country: "Portugal", Hostname: "portugal-ca-version-2.expressnetw.com"}, - {Country: "Puerto Rico", Hostname: "puertorico-ca-version-2.expressnetw.com"}, - {Country: "Romania", Hostname: "romania-ca-version-2.expressnetw.com"}, - {Country: "Serbia", Hostname: "serbia-ca-version-2.expressnetw.com"}, - {Country: "Singapore", City: "CBD", Hostname: "singapore-cbd-ca-version-2.expressnetw.com"}, - {Country: "Singapore", City: "Jurong", Hostname: "singapore-jurong-ca-version-2.expressnetw.com"}, - {Country: "Singapore", City: "Marina Bay", Hostname: "singapore-marinabay-ca-version-2.expressnetw.com"}, - {Country: "Slovakia", Hostname: "slovakia-ca-version-2.expressnetw.com"}, - {Country: "Slovenia", Hostname: "slovenia-ca-version-2.expressnetw.com"}, - {Country: "South Africa", Hostname: "southafrica-ca-version-2.expressnetw.com"}, - {Country: "South Korea", Hostname: "southkorea2-ca-version-2.expressnetw.com"}, - {Country: "Spain", City: "Barcelona", Hostname: "spain-barcelona-ca-version-2.expressnetw.com"}, - {Country: "Spain", City: "Barcelona", Hostname: "spain-barcelona2-ca-version-2.expressnetw.com"}, - {Country: "Spain", City: "Madrid", Hostname: "spain-ca-version-2.expressnetw.com"}, - {Country: "Sri Lanka", Hostname: "srilanka-ca-version-2.expressnetw.com"}, - {Country: "Sweden", Hostname: "sweden-ca-version-2.expressnetw.com"}, - {Country: "Sweden", Hostname: "sweden2-ca-version-2.expressnetw.com"}, - {Country: "Switzerland", Hostname: "switzerland-2-ca-version-2.expressnetw.com"}, - {Country: "Switzerland", Hostname: "switzerland-ca-version-2.expressnetw.com"}, - {Country: "Taiwan", Hostname: "taiwan-3-ca-version-2.expressnetw.com"}, - {Country: "Thailand", Hostname: "thailand-ca-version-2.expressnetw.com"}, - {Country: "Trinidad and Tobago", Hostname: "trinidadandtobago-ca-version-2.expressnetw.com"}, - {Country: "Turkey", Hostname: "turkey-ca-version-2.expressnetw.com"}, - {Country: "UK", City: "Docklands", Hostname: "uk-1-docklands-ca-version-2.expressnetw.com"}, - {Country: "UK", City: "East London", Hostname: "uk-east-london-ca-version-2.expressnetw.com"}, - {Country: "UK", City: "London", Hostname: "uk-london-ca-version-2.expressnetw.com"}, - {Country: "UK", City: "Midlands", Hostname: "uk-midlands-ca-version-2.expressnetw.com"}, - {Country: "UK", City: "Tottenham", Hostname: "uk-tottenham-ca-version-2.expressnetw.com"}, - {Country: "UK", City: "Wembley", Hostname: "uk-wembley-ca-version-2.expressnetw.com"}, - {Country: "Ukraine", Hostname: "ukraine-ca-version-2.expressnetw.com"}, - {Country: "Uruguay", Hostname: "uruguay-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Albuquerque", Hostname: "usa-albuquerque-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Atlanta", Hostname: "usa-atlanta-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Boston", Hostname: "us-boston-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Chicago", Hostname: "usa-chicago-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Dallas", Hostname: "usa-dallas-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Denver", Hostname: "usa-denver-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Houston", Hostname: "usa-houston-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Jackson", Hostname: "us-jackson-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Lincoln Park", Hostname: "usa-lincolnpark-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Little Rock", Hostname: "us-littlerock-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Los Angeles", Hostname: "usa-losangeles-2-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Los Angeles", Hostname: "usa-losangeles-3-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Los Angeles", Hostname: "usa-losangeles-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Los Angeles", Hostname: "usa-losangeles5-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Miami", Hostname: "usa-miami-2-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Miami", Hostname: "usa-miami-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "New Jersey", Hostname: "usa-newjersey-1-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "New Jersey", Hostname: "usa-newjersey-3-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "New Jersey", Hostname: "usa-newjersey2-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "New Orleans", Hostname: "us-neworleans-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "New York", Hostname: "usa-newyork-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Oklahoma City", Hostname: "us-oklahoma-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Phoenix", Hostname: "usa-phoenix-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Salt Lake City", Hostname: "usa-saltlakecity-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "San Francisco", Hostname: "usa-sanfrancisco-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Santa Monica", Hostname: "usa-santa-monica-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Seattle", Hostname: "usa-seattle-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Tampa", Hostname: "usa-tampa-1-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Washington DC", Hostname: "usa-washingtondc-ca-version-2.expressnetw.com"}, - {Country: "USA", City: "Wichita", Hostname: "us-wichita-ca-version-2.expressnetw.com"}, - {Country: "Venezuela", Hostname: "venezuela-ca-version-2.expressnetw.com"}, - {Country: "Vietnam", Hostname: "vietnam-ca-version-2.expressnetw.com"}, - } -} diff --git a/internal/provider/expressvpn/updater/resolve.go b/internal/provider/expressvpn/updater/resolve.go index e51b05d7..1f33d5bd 100644 --- a/internal/provider/expressvpn/updater/resolve.go +++ b/internal/provider/expressvpn/updater/resolve.go @@ -16,7 +16,7 @@ func parallelResolverSettings(hosts []string) (settings resolver.ParallelSetting Hosts: hosts, MaxFailRatio: maxFailRatio, Repeat: resolver.RepeatSettings{ - MaxDuration: time.Second, + MaxDuration: 5 * time.Second, MaxNoNew: maxNoNew, MaxFails: maxFails, SortIPs: true, diff --git a/internal/provider/expressvpn/updater/servers.go b/internal/provider/expressvpn/updater/servers.go index eed1b8a9..654126ac 100644 --- a/internal/provider/expressvpn/updater/servers.go +++ b/internal/provider/expressvpn/updater/servers.go @@ -5,7 +5,6 @@ import ( "fmt" "sort" - "github.com/qdm12/gluetun/internal/constants/vpn" "github.com/qdm12/gluetun/internal/models" "github.com/qdm12/gluetun/internal/provider/common" ) @@ -13,35 +12,66 @@ import ( func (u *Updater) FetchServers(ctx context.Context, minServers int) ( servers []models.Server, err error, ) { - servers = hardcodedServers() - - hosts := make([]string, len(servers)) - for i := range servers { - hosts[i] = servers[i].Hostname - } - - resolveSettings := parallelResolverSettings(hosts) - hostToIPs, warnings, err := u.parallelResolver.Resolve(ctx, resolveSettings) + servers, warnings, err := fetchServersFromWebsite(ctx, u.httpClient) for _, warning := range warnings { u.warner.Warn(warning) } if err != nil { - return nil, err + return nil, fmt.Errorf("fetching servers: %w", err) } - i := 0 + // Generate candidate hostnames for each location + serverToCandidateHostnames := make(map[*models.Server][]string, len(servers)) + var allCandidateHostnames []string for _, server := range servers { - hostname := server.Hostname - server.IPs = hostToIPs[hostname] - if len(server.IPs) == 0 { + candidateHostnames, err := generateCandidateHostnames(server) + if err != nil { + u.warner.Warn(fmt.Sprintf("generating candidate hostnames for %s - %s: %s", + server.Country, server.City, err)) continue } - server.VPN = vpn.OpenVPN - server.UDP = true // no TCP support - servers[i] = server - i++ + serverToCandidateHostnames[&server] = candidateHostnames + allCandidateHostnames = append(allCandidateHostnames, candidateHostnames...) } - servers = servers[:i] + + // Resolve all candidate hostnames in parallel + resolveSettings := parallelResolverSettings(allCandidateHostnames) + hostToIPs, _, err := u.parallelResolver.Resolve(ctx, resolveSettings) + // Ignore resolution warnings since we are mostly bruteforcing DNS records + // so most candidate hostnames will fail resolving. + if err != nil { + return nil, fmt.Errorf("resolving hostnames: %w", err) + } + + foundServers := make([]models.Server, 0, len(servers)) + for server, candidateHostnames := range serverToCandidateHostnames { + success := false + for _, candidate := range candidateHostnames { + ips := hostToIPs[candidate] + if len(ips) > 0 { + success = true + workingServer := *server + workingServer.Hostname = candidate + workingServer.IPs = ips + foundServers = append(foundServers, workingServer) + } + } + if success { + continue + } + + // Log a warning on the bad server location that did not resolve any IPs + serverName := server.Country + if server.City != "" { + serverName += " - " + server.City + } + if server.Number > 0 { + serverName += fmt.Sprintf(" (%d)", server.Number) + } + u.warner.Warn(fmt.Sprintf("no IPs resolved for %s (tried %v)", serverName, candidateHostnames)) + } + + servers = foundServers if len(servers) < minServers { return nil, fmt.Errorf("%w: %d and expected at least %d", diff --git a/internal/provider/expressvpn/updater/testdata/index.html b/internal/provider/expressvpn/updater/testdata/index.html new file mode 100644 index 00000000..e1dc2b60 --- /dev/null +++ b/internal/provider/expressvpn/updater/testdata/index.html @@ -0,0 +1,13037 @@ + + + + + + + + + + + + + VPN Server Locations: Full List & Address Help | ExpressVPN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

30 new iPhone 17 Pros. 30 days. One sign-up to enter. Next draw in:

+

30 new iPhone 17 Pros must be won! Sign up to enter

+
    +
  • + 0 + d + days +
  • +
  • + 0 + h + hours +
  • +
  • + 0 + m + mins +
  • +
  • + 0 + s + sec +
  • +
+ Enter now + +
+ Iphone Top Banner Desktop NewIphone New
+
+
+ +
+
+ + + +
+
+
+
+
+
+ + +
+

VPN servers: Choose the best VPN location for your needs

Get ExpressVPNSee VPN Locations

+
+ + +
+ Unrestricted access worldwide animation
+
+ +
+
+
+
+
+ +
+
    +
  • + Full list of ExpressVPN server locations (113 countries)
  • +
  • + How ExpressVPN earns your trust
  • +
  • + What is a VPN server and why does location matter?
  • +
  • + How to choose the best VPN server
  • +
  • + Connect to ExpressVPN’s server locations on all your devices
  • +
  • + Benefits of using different VPN locations
  • +
  • + Tools to help you choose the best VPN server
  • +
  • + Troubleshooting VPN server issues
  • +
  • + Why choose ExpressVPN?
  • +
  • + FAQ: VPN servers
  • +
  • + Try ExpressVPN today, risk-free
  • +
+
+ +
+
+ +
+
+
    +
  • + Full list of ExpressVPN server locations (113 countries)
  • +
  • + How ExpressVPN earns your trust
  • +
  • + What is a VPN server and why does location matter?
  • +
  • + How to choose the best VPN server
  • +
  • + Connect to ExpressVPN’s server locations on all your devices
  • +
  • + Benefits of using different VPN locations
  • +
  • + Tools to help you choose the best VPN server
  • +
  • + Troubleshooting VPN server issues
  • +
  • + Why choose ExpressVPN?
  • +
  • + FAQ: VPN servers
  • +
  • + Try ExpressVPN today, risk-free
  • +
+
+
+ + +
+
+
+

Full list of ExpressVPN server locations (113 countries)

+ +
+
Virtual Server Location
Available
Limited availability
Temporarily unavailable
Not supported
+ +
+

Americas

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Server LocationLIGHTWAY UDPLIGHTWAY TCP +
+ WIREGUARD +
+
+ + + + + +
+
Only available on iOS, Android, and Windows apps
+
+
+
OPENVPN UDPOPENVPN TCP +
+ IKEV2 +
+
+ + + + +
+
Only available on iOS, Mac, Windows, and router apps
+
+
+
+
+
+  Argentina-flag +
+

Argentina

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Bahamas-flag +
+

Bahamas

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Bermuda-flag +
+

Bermuda

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Bolivia-flag +
+

Bolivia

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Brazil-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Canada-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Cayman Islands-flag +
+

Cayman Islands

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Chile-flag +
+

Chile

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Colombia-flag +
+

Colombia

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Costa Rica-flag +
+

Costa Rica

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Cuba-flag +
+

Cuba

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Dominican Republic-flag +
+

Dominican Republic

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Ecuador-flag +
+

Ecuador

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Guatemala-flag +
+

Guatemala

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Greenland-flag +
+

Greenland

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Honduras-flag +
+

Honduras

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Jamaica-flag +
+

Jamaica

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+  Mexico-flag +
+

Mexico

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Panama-flag +
+

Panama

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+  Peru-flag +
+

Peru

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Puerto Rico-flag +
+

Puerto Rico

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Trinidad and Tobago-flag +
+

Trinidad and Tobago

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ United States-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Uruguay-flag +
+

Uruguay

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Venezuela-flag +
+

Venezuela

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+
+
+
+

+ Americas

+ + + + +
+
+
+
+  Argentina-flag +
+
+

Argentina

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Bahamas-flag +
+
+

Bahamas

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Bermuda-flag +
+
+

Bermuda

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Bolivia-flag +
+
+

Bolivia

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Brazil-flag +
+
+

Brazil

+
+
Available
+ + +
+
+
+
+
+
+

Brazil

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Brazil - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ Canada-flag +
+
+

Canada

+
+
Available
+ + +
+
+
+
+
+
+

Canada - Montreal

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Canada - Toronto

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Canada - Toronto - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Canada - Vancouver

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ Cayman Islands-flag +
+
+

Cayman Islands

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Chile-flag +
+
+

Chile

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Colombia-flag +
+
+

Colombia

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Costa Rica-flag +
+
+

Costa Rica

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Cuba-flag +
+
+

Cuba

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Dominican Republic-flag +
+
+

Dominican Republic

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Ecuador-flag +
+
+

Ecuador

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Guatemala-flag +
+
+

Guatemala

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Greenland-flag +
+
+

Greenland

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Honduras-flag +
+
+

Honduras

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Jamaica-flag +
+
+

Jamaica

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+  Mexico-flag +
+
+

Mexico

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Panama-flag +
+
+

Panama

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+  Peru-flag +
+
+

Peru

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Puerto Rico-flag +
+
+

Puerto Rico

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Trinidad and Tobago-flag +
+
+

Trinidad and Tobago

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ United States-flag +
+
+

United States

+
+
Available
+ + +
+
+
+
+
+
+

USA - Albuquerque

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Anchorage

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Atlanta

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Baltimore

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Billings

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Birmingham

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Boise

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Boston

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Bridgeport

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Burlington

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Charleston - South Carolina

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Charleston - West Virginia

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Charlotte

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Cheyenne

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Chicago

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Columbus

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Dallas

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Denver

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Des Moines

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Detroit

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Fargo

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Honolulu

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Houston

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Indianapolis

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Jackson

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Las Vegas

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Lincoln Park

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Little Rock

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Los Angeles - 1

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Los Angeles - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Los Angeles - 3

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Los Angeles - 5

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Louisville

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Manchester

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Miami

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Miami - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Milwaukee

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Minneapolis

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Nashville

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - New Jersey - 1

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - New Jersey - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - New Jersey - 3

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - New Orleans

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - New York

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Oklahoma City

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Omaha

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Philadelphia

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Phoenix

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Portland - Maine

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Portland - Oregon

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Providence

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Salt Lake City

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - San Francisco

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Santa Monica

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Seattle

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Sioux Falls

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - St. Louis

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Tampa - 1

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Virginia Beach

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Washington DC

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

USA - Wichita

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

USA - Wilmington

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+
+
+ Uruguay-flag +
+
+

Uruguay

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Venezuela-flag +
+
+

Venezuela

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+ + + +
+

Europe

+

Connect to a EuropeVPN server

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Server LocationLIGHTWAY UDPLIGHTWAY TCP +
+ WIREGUARD +
+
+ + + + + +
+
Only available on iOS, Android, and Windows apps
+
+
+
OPENVPN UDPOPENVPN TCP +
+ IKEV2 +
+
+ + + + +
+
Only available on iOS, Mac, Windows, and router apps
+
+
+
+
+
+ Albania-flag +
+

Albania

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Andorra-flag +
+

Andorra

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Armenia-flag +
+

Armenia

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Austria-flag +
+

Austria

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Azerbaijan-flag +
+

Azerbaijan

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Belarus-flag +
+

Belarus

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Belgium-flag +
+

Belgium

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Bosnia and Herzegovina-flag +
+

Bosnia and Herzegovina

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Bulgaria-flag +
+

Bulgaria

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Croatia-flag +
+

Croatia

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Cyprus-flag +
+

Cyprus

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Czech Republic-flag +
+

Czech Republic

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Denmark-flag +
+

Denmark

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Estonia-flag +
+

Estonia

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Finland-flag +
+

Finland

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ France-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Georgia-flag +
+

Georgia

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Germany-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Greece-flag +
+

Greece

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Hungary-flag +
+

Hungary

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Iceland-flag +
+

Iceland

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+  Ireland-flag +
+

Ireland

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Isle of Man-flag +
+

Isle of Man

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Italy-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Jersey-flag +
+

Jersey

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Latvia-flag +
+

Latvia

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Liechtenstein-flag +
+

Liechtenstein

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Lithuania-flag +
+

Lithuania

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Luxembourg-flag +
+

Luxembourg

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Malta-flag +
+

Malta

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Moldova-flag +
+

Moldova

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Monaco-flag +
+

Monaco

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Montenegro-flag +
+

Montenegro

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Netherlands-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ North Macedonia-flag +
+

North Macedonia

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Norway-flag +
+

Norway

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Poland-flag +
+

Poland

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Portugal-flag +
+

Portugal

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+  Romania-flag +
+

Romania

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Serbia-flag +
+

Serbia

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Slovakia-flag +
+

Slovakia

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Slovenia-flag +
+

Slovenia

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Spain-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Sweden-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Switzerland-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Turkey-flag +
+

Turkey

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Ukraine-flag +
+

Ukraine

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ United Kingdom-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+
+
+
+

+ Europe

+ + + + +
+
+
+
+ Albania-flag +
+
+

Albania

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Andorra-flag +
+
+

Andorra

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Armenia-flag +
+
+

Armenia

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Austria-flag +
+
+

Austria

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Azerbaijan-flag +
+
+

Azerbaijan

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Belarus-flag +
+
+

Belarus

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Belgium-flag +
+
+

Belgium

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Bosnia and Herzegovina-flag +
+
+

Bosnia and Herzegovina

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Bulgaria-flag +
+
+

Bulgaria

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Croatia-flag +
+
+

Croatia

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Cyprus-flag +
+
+

Cyprus

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Czech Republic-flag +
+
+

Czech Republic

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Denmark-flag +
+
+

Denmark

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Estonia-flag +
+
+

Estonia

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Finland-flag +
+
+

Finland

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ France-flag +
+
+

France

+
+
Available
+ + +
+
+
+
+
+
+

France - Alsace

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

France - Marseille

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

France - Paris - 1

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

France - Paris - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

France - Strasbourg

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ Georgia-flag +
+
+

Georgia

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Germany-flag +
+
+

Germany

+
+
Available
+ + +
+
+
+
+
+
+

Germany - Berlin

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Germany - Frankfurt - 1

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Germany - Frankfurt - 3

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Germany - Nuremberg

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ Greece-flag +
+
+

Greece

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Hungary-flag +
+
+

Hungary

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Iceland-flag +
+
+

Iceland

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+  Ireland-flag +
+
+

Ireland

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Isle of Man-flag +
+
+

Isle of Man

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Italy-flag +
+
+

Italy

+
+
Available
+ + +
+
+
+
+
+
+

Italy - Cosenza

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Italy - Milan

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Italy - Naples

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ Jersey-flag +
+
+

Jersey

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Latvia-flag +
+
+

Latvia

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Liechtenstein-flag +
+
+

Liechtenstein

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Lithuania-flag +
+
+

Lithuania

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Luxembourg-flag +
+
+

Luxembourg

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Malta-flag +
+
+

Malta

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Moldova-flag +
+
+

Moldova

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Monaco-flag +
+
+

Monaco

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Montenegro-flag +
+
+

Montenegro

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Netherlands-flag +
+
+

Netherlands

+
+
Available
+ + +
+
+
+
+
+
+

Netherlands - Amsterdam

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Netherlands - Rotterdam

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Netherlands - The Hague

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ North Macedonia-flag +
+
+

North Macedonia

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Norway-flag +
+
+

Norway

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Poland-flag +
+
+

Poland

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Portugal-flag +
+
+

Portugal

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+  Romania-flag +
+
+

Romania

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Serbia-flag +
+
+

Serbia

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Slovakia-flag +
+
+

Slovakia

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Slovenia-flag +
+
+

Slovenia

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Spain-flag +
+
+

Spain

+
+
Available
+ + +
+
+
+
+
+
+

Spain - Barcelona

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Spain - Barcelona - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Spain - Madrid

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Spain - Valencia

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ Sweden-flag +
+
+

Sweden

+
+
Available
+ + +
+
+
+
+
+
+

Sweden

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Sweden - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ Switzerland-flag +
+
+

Switzerland

+
+
Available
+ + +
+
+
+
+
+
+

Switzerland

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Switzerland - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ Turkey-flag +
+
+

Turkey

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Ukraine-flag +
+
+

Ukraine

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ United Kingdom-flag +
+
+

United Kingdom

+
+
Available
+ + +
+
+
+
+
+
+

UK - Docklands

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

UK - East London

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

UK - London

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

UK - Manchester

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

UK - Midlands

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

UK - Tottenham

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

UK - Wembley

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ + + +
+

Asia Pacific

+

Connect to an Asia VPN server

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Server LocationLIGHTWAY UDPLIGHTWAY TCP +
+ WIREGUARD +
+
+ + + + + +
+
Only available on iOS, Android, and Windows apps
+
+
+
OPENVPN UDPOPENVPN TCP +
+ IKEV2 +
+
+ + + + +
+
Only available on iOS, Mac, Windows, and router apps
+
+
+
+
+
+ Australia-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Bangladesh-flag +
+

Bangladesh

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Bhutan-flag +
+

Bhutan

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Brunei-flag +
+

Brunei

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Cambodia-flag +
+

Cambodia

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ China-flag +
+

China

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Guam-flag +
+

Guam

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+  Hong Kong SAR China-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ India-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Indonesia-flag +
+

Indonesia

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Japan-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Kazakhstan-flag +
+

Kazakhstan

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Laos-flag +
+

Laos

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Macau SAR China-flag +
+

Macau SAR China

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Malaysia-flag +
+

Malaysia

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Mongolia-flag +
+

Mongolia

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Myanmar [Burma]-flag +
+

Myanmar [Burma]

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Nepal-flag +
+

Nepal

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ New Zealand-flag +
+

New Zealand

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Pakistan-flag +
+

Pakistan

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Philippines-flag +
+

Philippines

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Singapore-flag +
+ +
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ South Korea-flag +
+

South Korea

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Sri Lanka-flag +
+

Sri Lanka

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Taiwan-flag +
+

Taiwan

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Thailand-flag +
+

Thailand

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Uzbekistan-flag +
+

Uzbekistan

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Vietnam-flag +
+

Vietnam

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+
+
+
+

+ Asia Pacific

+ + + + +
+
+
+
+ Australia-flag +
+
+

Australia

+
+
Available
+ + +
+
+
+
+
+
+

Australia - Adelaide

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Australia - Brisbane

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Australia - Melbourne

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Australia - Perth

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Australia - Sydney

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Australia - Sydney - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Australia - Woolloomooloo

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ Bangladesh-flag +
+
+

Bangladesh

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Bhutan-flag +
+
+

Bhutan

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Brunei-flag +
+
+

Brunei

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Cambodia-flag +
+
+

Cambodia

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ China-flag +
+
+

China

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Guam-flag +
+
+

Guam

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+  Hong Kong SAR China-flag +
+
+

Hong Kong SAR China

+
+
Available
+ + +
+
+
+
+
+
+

Hong Kong - 1

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Hong Kong - 2

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ India-flag +
+
+

India

+
+
Available
+ + +
+
+
+
+
+
+

India (via Singapore)

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+

India (via UK)

+
+
Available - Virtual Locations
+ + +
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+
+
+ Indonesia-flag +
+
+

Indonesia

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Japan-flag +
+
+

Japan

+
+
Available
+ + +
+
+
+
+
+
+

Japan - Osaka

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Japan - Shibuya

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Japan - Tokyo

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Japan - Yokohama

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ Kazakhstan-flag +
+
+

Kazakhstan

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Laos-flag +
+
+

Laos

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Macau SAR China-flag +
+
+

Macau SAR China

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Malaysia-flag +
+
+

Malaysia

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Mongolia-flag +
+
+

Mongolia

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Myanmar [Burma]-flag +
+
+

Myanmar [Burma]

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Nepal-flag +
+
+

Nepal

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ New Zealand-flag +
+
+

New Zealand

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Pakistan-flag +
+
+

Pakistan

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Philippines-flag +
+
+

Philippines

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Singapore-flag +
+
+

Singapore

+
+
Available
+ + +
+
+
+
+
+
+

Singapore - CBD

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Singapore - Jurong

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+

Singapore - Marina Bay

+
+
Available
+ + +
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+
+
+ South Korea-flag +
+
+

South Korea

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Sri Lanka-flag +
+
+

Sri Lanka

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Taiwan-flag +
+
+

Taiwan

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Thailand-flag +
+
+

Thailand

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Uzbekistan-flag +
+
+

Uzbekistan

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Vietnam-flag +
+
+

Vietnam

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+ + + +
+

Middle East and Africa

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Server LocationLIGHTWAY UDPLIGHTWAY TCP +
+ WIREGUARD +
+
+ + + + + +
+
Only available on iOS, Android, and Windows apps
+
+
+
OPENVPN UDPOPENVPN TCP +
+ IKEV2 +
+
+ + + + +
+
Only available on iOS, Mac, Windows, and router apps
+
+
+
+
+
+ Algeria-flag +
+

Algeria

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Egypt-flag +
+

Egypt

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Ghana-flag +
+

Ghana

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Israel-flag +
+

Israel

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Kenya-flag +
+

Kenya

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Lebanon-flag +
+

Lebanon

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Morocco-flag +
+

Morocco

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Nigeria-flag +
+

Nigeria

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Saudi Arabia-flag +
+

Saudi Arabia

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ South Africa-flag +
+

South Africa

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+ Qatar-flag +
+

Qatar

Available - Virtual Locations

+
+
+
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+ + +
Available
+
Available
+
Available
+
Available
+
Available
+
Available
+
+
+
+
+
+

+ Middle East and Africa

+ + + + +
+
+
+
+ Algeria-flag +
+
+

Algeria

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Egypt-flag +
+
+

Egypt

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Ghana-flag +
+
+

Ghana

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Israel-flag +
+
+

Israel

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Kenya-flag +
+
+

Kenya

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Lebanon-flag +
+
+

Lebanon

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Morocco-flag +
+
+

Morocco

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Nigeria-flag +
+
+

Nigeria

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ Saudi Arabia-flag +
+
+

Saudi Arabia

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ South Africa-flag +
+
+

South Africa

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+
+
+ Qatar-flag +
+
+

Qatar

+
+
Available - Virtual Locations
+ + +
+
+
+
+
Lightway UDP +
Available - Virtual Locations
+
Lightway TCP +
Available - Virtual Locations
+
WIREGUARD +
Available - Virtual Locations
+
OpenVPN UDP +
Available - Virtual Locations
+
OpenVPN TCP +
Available - Virtual Locations
+
IKEv2 +
Available - Virtual Locations
+
+
+
+
+
+ United Arab Emirates-flag +
+
+

United Arab Emirates

+
+
Available
+ + +
+
+
+
+
Lightway UDP +
Available
+
Lightway TCP +
Available
+
WIREGUARD +
Available
+
OpenVPN UDP +
Available
+
OpenVPN TCP +
Available
+
IKEv2 +
Available
+
+
+
+ +
+
+
+
+
+
+ +

What the green checks mean

+

+ExpressVPN supports various protocols—the methods by which your device connects to a VPN server. These are Lightway, WireGuard, OpenVPN (UDP) і OpenVPN (TCP), and IKEv2. The list above shows which protocols are available in each server location. (Not all protocols are available on every device.) You can manually select your preferred protocol or allow ExpressVPN to determine the best protocol for you (recommended). +Learn more about protocols. +

+
+
+
+
+
+
+ +

Virtual server locations

+

+For most ExpressVPN locations, the physical server and the registered IP address are based in the same country. However, for a small number of countries, it’s impossible to find servers that meet our exacting standards, so we operate virtual servers for these locations. For example, our India servers are geo-located in Singapore and the UK, while our Indonesia servers are in Singapore.

+

When you connect to a virtual server, the registered IP address corresponds to your chosen country, even though the server itself is physically located in another, typically nearby, country. These virtual server locations are designed to provide a fast, secure, and reliable connection.

+

See all virtual server locations.

+
+
+
+ +
+
+ +
+
+ + +
+
+
+
+

How ExpressVPN earns your trust

+

At ExpressVPN, privacy isn’t just a promise—it’s our foundation. We’re committed to protecting our users with industry-leading security, rigorous audits, and complete transparency. Learn more about how we uphold these standards:

+
+

+ +
    +
  • +
    + No Log
    +
    +

    No-logs policy

    +

    +We never track your activity or store logs of your online behavior.

    +

    Read more.

    +
  • +
  • +
    + advanced protection threat manager illustration feature
    +
    +

    Independent audits

    +

    +Leading cybersecurity firms regularly verify our security and privacy claims.

    +

    Read more.

    +
  • +
  • +
    + advanced protection ad blocker illustration feature website webpage blocking
    +
    +

    Transparency reports

    +

    +We share data request statistics to substantiate our commitment to privacy.

    +

    Read more.

    +
  • +
+ +
+
+ +
+
+
+ +

What is a VPN server and why does location matter?

+
+
+
+ +
+
+
+ +

What is a VPN server?

+

A VPN server is a specialized server used by a VPN service to route and encrypt your internet traffic. When you connect to a VPN server, it acts as an intermediary between your device and the internet. It assigns you a new IP address, encrypts your data, and ensures your online activities remain private and secure. Depending on the VPN server’s location, it can also allow you to go online as though you’re browsing from a different country.

+
+
+
+ +
+
+
+ +

How does a VPN server work?

+

A VPN server acts as an encrypted gateway between your device and the internet, ensuring your data stays private and secure. Here’s how it works:

+
+
+
+ + +
+
+
+
+ +
    +
  • +
    + How Vpn Server Works Connection
    +
    +

    Connection

    +

    +When you use a VPN, your device establishes a secure connection to the VPN server through a VPN client. This connection is encrypted to prevent third parties from intercepting your data.

    +
  • +
  • +
    + How Vpn Server Works Encryption
    +
    +

    Encryption

    +

    +Your internet traffic is encrypted before it leaves your device. The VPN server decrypts the data and forwards it to the internet.

    +
  • +
+ +
+
+
+ +
+
+
+
+ +
    +
  • +
    + How Vpn Server Works Ip Masking
    +
    +

    IP masking

    +

    +The VPN server assigns your connection a new IP address, masking your actual IP address. This makes it appear as though you’re browsing from the server’s location, not your actual one.

    +
  • +
  • +
    + How Vpn Server Works Traffic Forwarding
    +
    +

    Traffic forwarding

    +

    +The server sends your requests to the websites or services you want to access. When the responses come back, the VPN server encrypts them again and sends them securely to your device.

    +
  • +
+ + +
+
+ +
+
+
+ +

Why your VPN location matters

+

+Your VPN location plays a crucial role in your online experience. Choosing a server closer to your physical location reduces latency and improves speed, making browsing, streaming, and gaming smoother. Connecting to servers in a location different from where you are allows you to experience the internet as if you’re there—for example, if you’re traveling abroad and need to access services such as online banking in your home country. Selecting the right VPN server location allows you to balance speed, privacy, and access to your desired content. +

+

What is a VPN server address?

+

+A VPN server address is the unique identifier (usually an IP address or hostname) of the server you connect to when using a VPN. It acts as the gateway for your device, enabling secure, encrypted communication between your device and the internet. The server address ensures your traffic is routed correctly and allows you to appear as though you’re browsing from the server’s location.

+
+
+
+ +
+
+
+ +

How to choose the best VPN server

+

+The right VPN server can significantly impact your online experience, whether you’re looking for speed, security, or access to content. Consider your needs—streaming, enhanced privacy, gaming, or bypassing censorship—and select a server location that aligns with your goals. Opt for nearby servers for faster speeds and lower latency, or choose servers in specific countries to access region-locked content. With ExpressVPN’s worldwide network of servers, you can ensure the best combination of performance, security, and accessibility.

+
+
+
+ +
+
+
+
+ Speedometer.
+
+

For streaming content securely

+

+ExpressVPN’s servers are optimized to provide smooth, secure streaming with no bandwidth throttling, ensuring you can enjoy TV shows, movies, and sports without interruptions. Our servers are compatible with popular streaming platforms like Netflix, Hulu, and BBC iPlayer, making it easy to access your favorite content from anywhere, including schools, offices, shared networks, and even public Wi-Fi.

+

With VPN servers in 24 U.S. locations and 113 countries globally, you can stay connected to your preferred platforms whether you’re traveling abroad or living in another region. No matter where you are, ExpressVPN ensures secure, high-speed access to the content you love.

+
+
+
+ +
+
+
+
+ Speedometer.
+
+

For enhanced privacy and security

+

+ExpressVPN is built with privacy at its core, ensuring your online activities remain private and protected. We don’t collect activity or connection logs, meaning your browsing history, traffic destinations, and DNS queries are never recorded.

+

Our TrustedServer technology provides an additional layer of security—our servers run entirely on RAM, which erases all data with every reboot, leaving nothing behind. This commitment to privacy and innovative security measures ensures you stay protected, even in high-risk environments.

+
+
+
+ +
+
+
+
+ Speedometer.
+
+

For faster speeds and lower latency

+

+Speed and latency are crucial for a seamless online experience, and ExpressVPN’s servers are designed to deliver both. With a global network of 10-Gbps servers, we can support massive data throughput—up to 10 Gigabits (10 billion bits) per second per server. This ensures smooth performance even during peak usage.

+

For the best speeds, connect to a server close to your physical location. Whether streaming, gaming, or downloading, our high-bandwidth servers keep your connection fast and reliable.

+
+
+
+ +
+
+
+
+ Speedometer.
+
+

For avoiding restrictions

+

+ExpressVPN empowers you to access the open internet no matter where you are. With servers in 113 countries, you can browse with a new IP address, making it appear as though you’re in a different region. This helps you use local websites and services safely with a private IP address from the location of your choice.

+

Our custom-built Lightway protocol further enhances this capability by offering advanced obfuscation, which is crucial in countries with heavy censorship. ExpressVPN ensures you can break through digital barriers securely and without compromising speed.

+
+
+
+ +
+
+
+ +

Connect to ExpressVPN’s server locations on all your devices

+

Download a VPN app

+

for all your devices and access VPN server addresses worldwide. Set up ExpressVPN on multiple devices and use it on up to 14 simultaneously. +

+
+
+
windows-icon
+
+
+
apple-icon
+
+
+
android-icon
+
+
+
ios-icon
+
+
+
linux-icon
+
+
+
Router-icon
+
+
+
VPN for Windows, Mac, iPhone, iPad, iPod, Android, and routers.
+
+
+
+ +
+
+
+ +

Computers, tablets, and phones

+

+Windows, Mac, Android (phones and tablets), iOS (iPhone, iPad, iPod), Linux, Chromebook, Amazon Kindle Fire, Windows Phone +

+

Routers

+

Aircove

+

, Asus, D-Link, DD-WRT, Linksys, Netduma, Sabai, Tomato, TP-LINK +

+

Smart TV systems

+

+Apple TV, Android TV, Amazon Fire Stick, Nvidia Shield +

+

Network-assisted storage

+

+ASUSTOR, QNAP, Synology

+
+
+
+ +
+
+ +
+
+ +
+
+
+ +

Benefits of using different VPN locations

+
+
+
+ +
+
+
+
+ Speedometer.
+
+

Use local accounts securely while abroad

+

+Travelers and expats might encounter restrictions when accessing essential services from their home country, like online banking, government portals, or local e-commerce platforms. By connecting to a VPN server in your home country, you can securely log into these accounts as if you were there. This helps protect your data from being flagged or blocked due to unusual login locations, keeping your accounts secure and accessible no matter where you are.

+
+
+
+ +
+
+
+
+ Speedometer.
+
+

Enhanced privacy

+

+Connecting to a VPN server, regardless of location, will enhance your online privacy. However, choosing a VPN server in a different location or country allows you to further distance your identity and location from your online activities. It may make it harder for websites, advertisers, or potential snoops to link your activity to your location.

+
+
+
+ +
+
+
+
+ Speedometer.
+
+

Optimized speed and performance

+

+Choosing a VPN server near your physical location will maximize speed and improve latency. There are some specific scenarios where your connection speed might improve when you connect to a VPN server, for example, if your bandwidth is throttled or slowed by your internet service provider (ISP) or other network constraints. A VPN helps bypass ISP throttling (because your ISP can’t see what you’re doing online) and optimize routing to reduce congestion.

+
+
+
+ +
+
+
+ +

Tools to help you choose the best VPN server

+
+
+
+ +
+
+ +
    +
  • +
    + Xv Icon Smart Location +
    +
    + +

    Connect to Smart Location

    +

    +Our algorithm ranks server locations based on metrics such as download speed, latency, and distance. Automatically connect to the best server for your needs.

    +
    +
  • +
  • +
    + Xv Icon Location +
    +
    + +

    Check your VPN server address

    +

    +Are you connected to a VPN server? Check how private your location is and if the websites you visit can track your IP address with the IP address checker.

    +
    +
  • +
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ Speedometer.
+
+

Troubleshooting VPN server issues

+

Can't find a server location you want?

+

+Let us know what locations we’re missing by chatting with our Support Team.

+

Can’t decide which location to use? +Read our guide to choosing a VPN server location.

+

Trouble connecting to a VPN server? +Our Support Team is happy to help get you connected 24/7.

+
+
+
+ +
+
+
+

Why choose ExpressVPN?

+

+ +
    + +
  • +
    + Db8c437d2758ddd6bbdad331e53e26a5 +
    +
    +

    +

    TrustedServer technology

    +

    +Audited to confirm essential privacy protections, TrustedServer sets a new standard for security.

    +

    +
  • + +
  • +
    + C54a51603b7c1c88c404359fc6d4defb +
    +
    +

    +

    Get set up right away

    +

    +Connecting to ExpressVPN is quick and easy. Just sign up, download, and connect with the tap of a button!

    +

    +
  • + +
  • +
    + 1782323c18421b807a8d6c49c458bfc1 +
    +
    +

    +

    Use the websites you love

    +

    +Access your favorite accounts free from local network restrictions, ISP content-based throttling, and third-party interference.

    +

    +
  • + +
  • +
    + B16922d2aff06130eb5532249f953361 +
    +
    +

    +

    Browse more anonymously

    +

    +Change your device's IP address and location so that websites cannot use that data to identify you.

    +

    +
  • + +
  • +
    + E9939c31cbfb80f9f8441ec3ae2635bc +
    +
    +

    +

    Stream videos and music

    +

    +Enjoy Netflix, Hulu, BBC, Spotify, and more—with privacy, security, and blazing-fast speeds.

    +

    +
  • + +
  • +
    + D9995993597d40ae5b3b53f17a35a9c8 +
    +
    +

    +

    Live chat support

    +

    +Contact the ExpressVPN Support Team from within the app around the clock if you have questions.

    +

    +
  • + +
  • +
    + 53f7422cf049e2629e265d792b8376a2 +
    +
    +

    +

    Independently audited

    +

    +Third-party assessments verify our security claims through rigorous testing of our apps and systems.

    +

    +
  • + +
  • +
    + Globe Card 50x50 1 +
    +
    +

    +

    Multilingual interface

    +

    +English not your first choice? Use ExpressVPN's app and browser extensions in any of 17 other languages.

    +
  • +
+ + +
+
+ +
+ +
+ +
+

FAQ: VPN servers

+ + +
+
+ +

+ What is a VPN server? +

+
+
+ +

A VPN server is a dedicated server designed to provide secure and private internet access. It works by encrypting your internet traffic and routing it through a secure tunnel, ensuring that your data is protected from hackers, ISPs, and other prying eyes. By doing so, a VPN server masks your IP address and replaces it with one associated with the server’s location, enhancing your privacy and anonymity online.

+

Connecting to a VPN server has several benefits:

+

Privacy: Your real IP address and location are hidden, making it difficult for websites, advertisers, or trackers to identify or monitor you. +Security: Encryption ensures that your data is safe from interception, even on unsecured networks like public Wi-Fi. +Access: By appearing to browse from the server’s location, you can bypass geo-restrictions, access region-specific content, and avoid censorship.

+

VPN servers are typically distributed across multiple locations worldwide, offering users flexibility in choosing the server that best meets their needs—whether for speed, access to specific regions, or enhanced security.

+
+
+
+ +

+ How do I set up a VPN server? +

+
+
+ +

To set up a VPN server, you can use a compatible router, dedicated software, or a home computer. Here's a quick guide:

+

Router: Many modern routers support VPN server functionality. Enable the VPN feature in the router's settings, choose a VPN protocol (like OpenVPN), and configure encryption and user credentials.

+

Software: Install VPN server software like OpenVPN or SoftEther on a computer. Configure the software with VPN protocols, set up user accounts, and ensure the appropriate ports are open for remote access.

+

Home computer: For Windows, macOS, or Linux, you can use built-in or third-party VPN software to turn your computer into a VPN server. Configure encryption, user credentials, and port forwarding.

+

To protect your data, ensure strong security settings, such as encryption and firewall configuration. Once set up, test the connection to make sure everything is working properly.

+
+
+
+ +

+ Is a VPN server free? +

+
+
+ +

While some VPN providers do offer free VPN servers, they typically come with limitations that can affect your experience. These limitations may include:

+

Reduced speeds: Free VPN services often have fewer resources allocated to them, meaning you may experience slower connection speeds, especially during peak usage times.

+

Data caps: Many free VPNs impose strict data usage limits, which could restrict how much you can browse, stream, or download. Once you hit the limit, you may be forced to wait or upgrade to a paid plan.

+

Fewer server locations: Free VPNs typically offer a limited number of servers in fewer countries. This reduces your ability to access content from specific regions and can lead to overcrowded servers, resulting in slower speeds.

+

Additionally, there are privacy concerns with free VPN services. Some of these services might log your data, track your online activities, or even sell your personal information to third parties for profit. This undermines the very purpose of using a VPN—to protect your privacy and anonymity online.

+

Premium VPN services typically offer better performance, stronger security, and more server locations. They are less likely to log user data and often provide more robust encryption protocols, ensuring your online activities remain secure. While premium VPNs come with a subscription cost, they deliver a much higher level of service, privacy, and peace of mind compared to free VPN providers.

+
+
+
+ +

+ Are VPN servers legal? +

+
+
+ +

VPN servers are legal in most countries, but some regions restrict or ban their use. Always check local laws to ensure compliance.

+
+
+
+ +

+ How do I find my VPN server address? +

+
+
+ +

Your VPN server address is typically displayed as an IP address or hostname in the settings or configuration details provided by your VPN provider. To find your IP address you can use ExpressVPN’s IP checker tool.

+
+
+
+ +

+ Is a VPN a proxy server? +

+
+
+ +

A VPN and a proxy server share similarities, but they are distinct tools designed for different purposes. Both act as intermediaries between your device and the internet, masking your IP address to make it appear as if your traffic originates from another location. However, the key difference lies in how they handle your data and the level of security they provide.

+

A VPN (virtual private network) encrypts your internet traffic, creating a secure tunnel that protects your data from being intercepted by hackers, ISPs, or other third parties. This encryption ensures your privacy and makes VPNs an excellent choice for safeguarding sensitive information, bypassing censorship, and protecting your identity online.

+

A proxy server, on the other hand, does not typically encrypt your data. While it can mask your IP address and provide access to region-restricted content, it lacks the robust security features of a VPN. Proxies are generally used for less sensitive activities, like bypassing simple geographic blocks or managing web traffic in corporate environments.

+

While both tools can hide your IP address, a VPN is a more comprehensive solution for privacy, security, and anonymity, whereas a proxy is a lighter, less secure option for simple use cases.

+
+
+
+ +

+ Which VPN has Indian servers? +

+
+
+ +

ExpressVPN has virtual VPN servers for India. As of 2022, Indian law requires VPN providers with servers in India to collect extensive customer data. ExpressVPN’s virtual India servers in Singapore and the UK allow you to connect to a VPN from India or get an Indian IP address from anywhere, without compromising your privacy.

+
+
+
+ +

+ What is a server address for a VPN? +

+
+
+ +

A VPN server address is the IP address or hostname of the server you connect to. It enables secure communication and masks your location.

+
+
+
+ +

+ How do I set up a home VPN server? +

+
+
+ +

If you want to turn your home computer into a VPN server for remote access or to secure your internet connection at home, you can try these steps: +

+
    +
  • Windows: For Windows users, the built-in Windows VPN server (via PPTP or L2TP) can be configured through the Control Panel. You’ll need to enable incoming VPN connections and adjust firewall settings.
  • +
  • Mac: On macOS, you can use Mac OS X Server or set up a third-party VPN service like OpenVPN for greater customization and control.
  • +
  • Linux: For Linux, use OpenVPN or WireGuard, two popular, open-source options that require configuring via the terminal and editing configuration files.
  • +
+

+Setting up a VPN server can be technically challenging, but it can provide you with greater control over your network. If you’re unsure about any step, consider using a VPN provider that offers ready-to-use solutions with easy setup guides, such as ExpressVPN.

+
+
+
+ +

+ How do I set up a VPN remote access server? +

+
+
+ +

To create a VPN remote access server, configure your network or router to enable remote VPN connections. Use software like OpenVPN or built-in router features, set strong encryption, and create user accounts for secure access.

+
+
+
+ + +
+
+ + + +
+
+
+
+
+
30
+
Day
+
Money-Back Guarantee for New Users
+
+
+

Try ExpressVPN today, risk-free

+

+New users: take advantage of our risk-free 30-day money-back guarantee:

+

If you’re not satisfied with ExpressVPN for any reason, contact Support within 30 days and get a full refund. +

+

+

+ +
+ +
+ Footer Image +
+
+
+
+ +
+ + + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/internal/provider/expressvpn/updater/updater.go b/internal/provider/expressvpn/updater/updater.go index d61e235d..64d32275 100644 --- a/internal/provider/expressvpn/updater/updater.go +++ b/internal/provider/expressvpn/updater/updater.go @@ -1,19 +1,23 @@ package updater import ( + "net/http" + "github.com/qdm12/gluetun/internal/provider/common" ) type Updater struct { + httpClient *http.Client unzipper common.Unzipper parallelResolver common.ParallelResolver warner common.Warner } -func New(unzipper common.Unzipper, warner common.Warner, - parallelResolver common.ParallelResolver, +func New(httpClient *http.Client, unzipper common.Unzipper, + warner common.Warner, parallelResolver common.ParallelResolver, ) *Updater { return &Updater{ + httpClient: httpClient, unzipper: unzipper, parallelResolver: parallelResolver, warner: warner, diff --git a/internal/provider/expressvpn/updater/website.go b/internal/provider/expressvpn/updater/website.go new file mode 100644 index 00000000..f4473551 --- /dev/null +++ b/internal/provider/expressvpn/updater/website.go @@ -0,0 +1,111 @@ +package updater + +import ( + "context" + "fmt" + "net/http" + "strings" + + "github.com/qdm12/gluetun/internal/constants/vpn" + "github.com/qdm12/gluetun/internal/models" + htmlutils "github.com/qdm12/gluetun/internal/updater/html" + "golang.org/x/net/html" +) + +func fetchServersFromWebsite(ctx context.Context, client *http.Client) ( + servers []models.Server, warnings []string, err error, +) { + const url = "https://www.expressvpn.com/vpn-server" + rootNode, err := htmlutils.Fetch(ctx, client, url) + if err != nil { + return nil, nil, fmt.Errorf("fetching HTML code: %w", err) + } + + servers, warnings = parseServerListTable(rootNode) + + return servers, warnings, nil +} + +func parseServerListTable(rootNode *html.Node) ( + servers []models.Server, warnings []string, +) { + // Collect all tr nodes from all tbody elements using recursive walk + var allRows []*html.Node + var walk func(n *html.Node) + walk = func(n *html.Node) { + if n.Data == "tr" { + allRows = append(allRows, n) + return + } + for child := n.FirstChild; child != nil; child = child.NextSibling { + walk(child) + } + } + walk(rootNode) + + seenLocations := make(map[string]struct{}) + for _, trNode := range allRows { + serverLocation := strings.TrimSpace(htmlutils.Attribute(trNode, "data-server-location")) + if serverLocation == "" { + continue + } + + country, city, number, err := parseLocation(serverLocation) + if err != nil { + warnings = append(warnings, fmt.Sprintf("parsing location: %s", err)) + continue + } + server := models.Server{ + VPN: vpn.OpenVPN, + TCP: true, + UDP: true, + Country: country, + City: city, + Number: number, + } + + locationKey := fmt.Sprintf("%s-%s-%d", country, city, number) + if _, ok := seenLocations[locationKey]; ok { + continue + } + seenLocations[locationKey] = struct{}{} + servers = append(servers, server) + } + + return servers, warnings +} + +func parseLocation(location string) (country, city string, number uint16, err error) { + // Location formats: + // - "Argentina" -> country="Argentina", city="", number=0 + // - "Australia - Adelaide" -> country="Australia", city="Adelaide", number=0 + // - "Canada - Toronto" -> country="Canada", city="Toronto", number=0 + parts := strings.Split(location, " - ") + country = strings.TrimSpace(parts[0]) + switch len(parts) { + case 1: // country only + if strings.Contains(country, " [") { + // This can be "country [city]" + parts := strings.SplitN(country, " [", 2) + country = strings.TrimSpace(parts[0]) + city = strings.TrimSuffix(strings.TrimSpace(parts[1]), "]") + } + case 2: // country and city + city = strings.TrimSpace(parts[1]) + case 3: // country, city, and number + city = strings.TrimSpace(parts[1]) + fmt.Sscanf(strings.TrimSpace(parts[2]), "%d", &number) + default: + return "", "", 0, fmt.Errorf("invalid location format: %q", location) + } + + // Retro-compatibility transforms + switch strings.ToLower(country) { + case "united states": + country = "USA" + case "united kingdom": + country = "UK" + } + + return country, city, number, nil +} diff --git a/internal/provider/expressvpn/updater/website_test.go b/internal/provider/expressvpn/updater/website_test.go new file mode 100644 index 00000000..a81ea582 --- /dev/null +++ b/internal/provider/expressvpn/updater/website_test.go @@ -0,0 +1,206 @@ +package updater + +import ( + "os" + "strings" + "testing" + + "github.com/qdm12/gluetun/internal/models" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "golang.org/x/net/html" +) + +func Test_parseServerListTable(t *testing.T) { + t.Parallel() + + htmlContent, err := os.ReadFile("testdata/index.html") + require.NoError(t, err) + + rootNode, err := html.Parse(strings.NewReader(string(htmlContent))) + require.NoError(t, err) + + servers, warnings := parseServerListTable(rootNode) + require.NoError(t, err) + assert.Empty(t, warnings) + // The ExpressVPN server list should have hundreds of servers + assert.Greater(t, len(servers), 200, + "expected at least 200 servers from the ExpressVPN server list, got %d", len(servers)) + + // Check that all servers have required fields + for _, server := range servers { + assert.NotEmpty(t, server.Country, "server country should not be empty") + assert.True(t, server.TCP, "TCP should be enabled") + assert.True(t, server.UDP, "UDP should be enabled") + } + + // Check some specific servers are found + foundServers := make(map[string]models.Server) + for _, server := range servers { + key := server.Country + if server.City != "" { + key += " - " + server.City + } + foundServers[key] = server + } + + // Verify countries without cities + assert.NotEmpty(t, foundServers["Albania"]) + assert.NotEmpty(t, foundServers["Singapore"]) +} + +func Test_parseLocation(t *testing.T) { + t.Parallel() + + testCases := map[string]struct { + input string + country string + city string + number uint16 + }{ + "country only": { + input: "Argentina", + country: "Argentina", + }, + "country with city": { + input: "Australia - Adelaide", + country: "Australia", + city: "Adelaide", + }, + "country with numbered location": { + input: "Canada - Toronto - 2", + country: "Canada", + city: "Toronto", + number: 2, + }, + "virtual location": { + input: "India (via Singapore)", + country: "India (via Singapore)", + }, + "country with multiple dashes in city": { + input: "USA - Los Angeles - 1", + country: "USA", + city: "Los Angeles", + number: 1, + }, + } + + for name, testCase := range testCases { + t.Run(name, func(t *testing.T) { + t.Parallel() + + country, city, number, err := parseLocation(testCase.input) + assert.Equal(t, testCase.country, country) + assert.Equal(t, testCase.city, city) + assert.Equal(t, testCase.number, number) + assert.NoError(t, err) + }) + } +} + +func Test_generateCandidateHostnames(t *testing.T) { + t.Parallel() + + testCases := map[string]struct { + input models.Server + mustContain []string + mustNotContain []string + expectedCount int // exact count expected (0 if flexible) + }{ + "simple country": { + input: models.Server{Country: "Argentina"}, + mustContain: []string{ + "argentina-ca-version-2.expressnetw.com", + "argentina1-ca-version-2.expressnetw.com", + "argentina-1-ca-version-2.expressnetw.com", + }, + }, + "country with city": { + input: models.Server{Country: "USA", City: "New York"}, + mustContain: []string{ + "usa-newyork-ca-version-2.expressnetw.com", + "us-newyork-ca-version-2.expressnetw.com", // alias + "usa-newyork-1-ca-version-2.expressnetw.com", + "usa-newyork1-ca-version-2.expressnetw.com", + }, + }, + "North Macedonia abbreviation": { + input: models.Server{Country: "North Macedonia"}, + mustContain: []string{ + "macedonia-ca-version-2.expressnetw.com", + }, + expectedCount: 1, // single hardcoded hostname + }, + "India via Singapore": { + input: models.Server{Country: "India (via Singapore)"}, + mustContain: []string{ + "india-sg-ca-version-2.expressnetw.com", + }, + expectedCount: 1, // single hardcoded hostname + }, + "India via UK": { + input: models.Server{Country: "India (via UK)"}, + mustContain: []string{ + "india-uk-ca-version-2.expressnetw.com", + }, + expectedCount: 1, // single hardcoded hostname + }, + "France Paris": { + input: models.Server{Country: "France", City: "Paris"}, + mustContain: []string{ + "france-paris-ca-version-2.expressnetw.com", + "france-paris-1-ca-version-2.expressnetw.com", + "france-paris-2-ca-version-2.expressnetw.com", + "france-paris1-ca-version-2.expressnetw.com", + "france-paris2-ca-version-2.expressnetw.com", + }, + }, + "UK with alias": { + input: models.Server{Country: "UK", City: "London"}, + mustContain: []string{ + "uk-london-ca-version-2.expressnetw.com", + "gb-london-ca-version-2.expressnetw.com", // alias + }, + }, + "Germany": { + input: models.Server{Country: "Germany"}, + mustContain: []string{ + "germany-ca-version-2.expressnetw.com", + "de-ca-version-2.expressnetw.com", // alias + }, + }, + } + + for name, testCase := range testCases { + t.Run(name, func(t *testing.T) { + t.Parallel() + + candidates, err := generateCandidateHostnames(testCase.input) + assert.NoError(t, err) + + // Check exact count if specified + if testCase.expectedCount > 0 { + assert.Len(t, candidates, testCase.expectedCount, + "expected exactly %d candidates", testCase.expectedCount) + } + + // Check required candidates exist + for _, expected := range testCase.mustContain { + assert.Contains(t, candidates, expected, + "expected candidate %q in candidates", expected) + } + + // Check excluded candidates don't exist + for _, excluded := range testCase.mustNotContain { + assert.NotContains(t, candidates, excluded, + "did not expect candidate %q in candidates", excluded) + } + + // All candidates should end with the expected suffix + for _, candidate := range candidates { + assert.True(t, strings.HasSuffix(candidate, hostnameSuffix), + "candidate %q should end with %q", candidate, hostnameSuffix) + } + }) + } +} diff --git a/internal/provider/providers.go b/internal/provider/providers.go index 7c1ea895..51203263 100644 --- a/internal/provider/providers.go +++ b/internal/provider/providers.go @@ -58,7 +58,7 @@ func NewProviders(storage Storage, timeNow func() time.Time, providers.Airvpn: airvpn.New(storage, client), providers.Custom: custom.New(extractor), providers.Cyberghost: cyberghost.New(storage, updaterWarner, parallelResolver), - providers.Expressvpn: expressvpn.New(storage, unzipper, updaterWarner, parallelResolver), + providers.Expressvpn: expressvpn.New(storage, client, unzipper, updaterWarner, parallelResolver), providers.Fastestvpn: fastestvpn.New(storage, client, updaterWarner, parallelResolver), providers.Giganews: giganews.New(storage, unzipper, updaterWarner, parallelResolver), providers.HideMyAss: hidemyass.New(storage, client, updaterWarner, parallelResolver),