mirror of
https://github.com/davegallant/vpngate.git
synced 2025-08-07 00:58:14 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
990fd072a2 | ||
|
5632a1039a | ||
|
f47f61cbb8 | ||
|
1ee2b2e0a5 |
@@ -14,6 +14,8 @@ builds:
|
||||
- linux
|
||||
goarch:
|
||||
- amd64
|
||||
- arm
|
||||
- arm64
|
||||
archives:
|
||||
- replacements:
|
||||
darwin: Darwin
|
||||
|
48
README.md
48
README.md
@@ -4,12 +4,12 @@ This is a client for [vpngate.net](https://www.vpngate.net/).
|
||||
|
||||

|
||||
|
||||
This client fetches the list of available relay servers provided by vpngate.net.
|
||||
This client fetches the list of available relay servers provided by vpngate.net, and allows you to filter and connect to a server of your liking.
|
||||
|
||||
You can check out your current IP address and region at https://nordvpn.com/what-is-my-ip/, or simply run the following command in a terminal:
|
||||
|
||||
```console
|
||||
$ curl ipinfo.io
|
||||
```shell
|
||||
curl ipinfo.io
|
||||
```
|
||||
|
||||
## Requirements
|
||||
@@ -19,69 +19,75 @@ $ curl ipinfo.io
|
||||
|
||||
## Install
|
||||
|
||||
The simplest method of installation is using homebrew. You can also build from source.
|
||||
|
||||
### homebrew
|
||||
### from homebrew
|
||||
|
||||
vpngate can be installed with [homebrew](https://brew.sh/):
|
||||
|
||||
```sh
|
||||
```shell
|
||||
# Ensure that Xcode is installed
|
||||
sudo xcode-select --install
|
||||
|
||||
# OpenVPN is required
|
||||
brew install openvpn
|
||||
|
||||
brew install davegallant/public/vpngate
|
||||
```
|
||||
|
||||
### source
|
||||
### from source
|
||||
|
||||
Ensure that [go](https://golang.org/doc/install) is installed.
|
||||
|
||||
```console
|
||||
$ CGO_ENABLED=0 go get github.com/davegallant/vpngate
|
||||
```shell
|
||||
CGO_ENABLED=0 go get github.com/davegallant/vpngate
|
||||
```
|
||||
|
||||
Ensure that the go bin path is discoverable:
|
||||
|
||||
```console
|
||||
$ echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.profile
|
||||
$ source ~/.profile
|
||||
```shell
|
||||
echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.profile
|
||||
source ~/.profile
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### List available servers
|
||||
|
||||
```console
|
||||
$ vpngate list
|
||||
```shell
|
||||
vpngate list
|
||||
```
|
||||
|
||||
### Connect to a server
|
||||
|
||||
On macOS, `openvpn` may not be within your PATH. To fix this, run:
|
||||
|
||||
```console
|
||||
$ export PATH=$(brew --prefix openvpn)/sbin:$PATH
|
||||
```shell
|
||||
export PATH=$(brew --prefix openvpn)/sbin:$PATH
|
||||
```
|
||||
|
||||
The above command can also be added to a bash/zsh profile for future use.
|
||||
|
||||
Because openvpn creates a network interface, run the connect command with `sudo` or a user with escalated privileges.
|
||||
|
||||
```console
|
||||
$ sudo vpngate connect
|
||||
```shell
|
||||
sudo vpngate connect
|
||||
```
|
||||
|
||||
#### Random
|
||||
|
||||
If the country doesn't matter, a random server can be selected:
|
||||
|
||||
```console
|
||||
$ sudo vpngate connect --random
|
||||
```shell
|
||||
sudo vpngate connect --random
|
||||
```
|
||||
|
||||
#### Reconnect
|
||||
|
||||
To continually attempt to reconnect (this can be combined with `--random`):
|
||||
|
||||
```console
|
||||
$ sudo vpngate connect --reconnect
|
||||
```shell
|
||||
sudo vpngate connect --reconnect
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
6
go.mod
6
go.mod
@@ -3,14 +3,14 @@ module github.com/davegallant/vpngate
|
||||
go 1.15
|
||||
|
||||
require (
|
||||
github.com/AlecAivazis/survey/v2 v2.2.16
|
||||
github.com/jszwec/csvutil v1.5.0
|
||||
github.com/jszwec/csvutil v1.5.1
|
||||
github.com/AlecAivazis/survey/v2 v2.3.1
|
||||
github.com/juju/errors v0.0.0-20200330140219-3fe23663418f
|
||||
github.com/juju/testing v0.0.0-20201216035041-2be42bba85f3 // indirect
|
||||
github.com/mattn/go-colorable v0.1.8 // indirect
|
||||
github.com/nxadm/tail v1.4.8
|
||||
github.com/olekukonko/tablewriter v0.0.5
|
||||
github.com/rs/zerolog v1.23.0
|
||||
github.com/rs/zerolog v1.24.0
|
||||
github.com/spf13/afero v1.6.0
|
||||
github.com/spf13/cobra v1.2.1
|
||||
github.com/stretchr/testify v1.7.0
|
||||
|
15
go.sum
15
go.sum
@@ -37,8 +37,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
|
||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
github.com/AlecAivazis/survey/v2 v2.2.16 h1:KJ4fLFqY/NfR5OaFLcf4pThxrlV2YCHGCnCHAKLsJ+U=
|
||||
github.com/AlecAivazis/survey/v2 v2.2.16/go.mod h1:TH2kPCDU3Kqq7pLbnCWwZXDBjnhZtmsCle5EiYDJ2fg=
|
||||
github.com/AlecAivazis/survey/v2 v2.3.1 h1:lzkuHA60pER7L4eYL8qQJor4bUWlJe4V0gqAT19tdOA=
|
||||
github.com/AlecAivazis/survey/v2 v2.3.1/go.mod h1:TH2kPCDU3Kqq7pLbnCWwZXDBjnhZtmsCle5EiYDJ2fg=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8 h1:xzYJEypr/85nBpB11F9br+3HUrpgb+fcm5iADzXXYEw=
|
||||
@@ -172,8 +172,8 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt
|
||||
github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||
github.com/jszwec/csvutil v1.5.0 h1:ErLnF1Qzzt9svk8CUY7CyLl/W9eET+KWPIZWkE1o6JM=
|
||||
github.com/jszwec/csvutil v1.5.0/go.mod h1:Rpu7Uu9giO9subDyMCIQfHVDuLrcaC36UA4YcJjGBkg=
|
||||
github.com/jszwec/csvutil v1.5.1 h1:c3GFBhj6DFMUl4dMK3+B6rz2+LWWS/e9VJiVJ9t9kfQ=
|
||||
github.com/jszwec/csvutil v1.5.1/go.mod h1:Rpu7Uu9giO9subDyMCIQfHVDuLrcaC36UA4YcJjGBkg=
|
||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||
github.com/juju/ansiterm v0.0.0-20160907234532-b99631de12cf/go.mod h1:UJSiEoRfvx3hP73CvoARgeLjaIOjybY9vj8PUPPFGeU=
|
||||
github.com/juju/clock v0.0.0-20190205081909-9c5c9712527c/go.mod h1:nD0vlnrUjcjJhqN5WuCWZyzfd5AHZAC9/ajvbSx69xA=
|
||||
@@ -263,9 +263,9 @@ github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndr
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
|
||||
github.com/rs/zerolog v1.23.0 h1:UskrK+saS9P9Y789yNNulYKdARjPZuS35B8gJF2x60g=
|
||||
github.com/rs/zerolog v1.23.0/go.mod h1:6c7hFfxPOy7TacJc4Fcdi24/J0NKYGzjG8FWRI916Qo=
|
||||
github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
|
||||
github.com/rs/zerolog v1.24.0 h1:76ivFxmVSRs1u2wUwJVg5VZDYQgeH1JpoS6ndgr9Wy8=
|
||||
github.com/rs/zerolog v1.24.0/go.mod h1:7KHcEGe0QZPOm2IE4Kpb5rTh6n1h2hIgS5OOnu1rUaI=
|
||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||
@@ -525,6 +525,7 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
|
Reference in New Issue
Block a user