Dragon2fly / vpngate-with-proxy

vpn gate client for linux, be able to connect to open vpn server through proxy
GNU General Public License v2.0
249 stars 71 forks source link
dns openvpn proxy python vpn vpn-client vpn-gate-client vpn-server

vpngate-with-proxy

VPN GATE client for linux

Note: Work on Debian and Redhat based system. Tested on Ubuntu, Raspbian, Fedora, Bunsen. New commit (2020/04/28) fixed it to work with python 3.6+ and only tested on Ubuntu 20.04.

I will wrap SoftEther_vpn later when I have time. You are welcome to fork this repo and wrap SoftEther_vpn yourself.

Indicator: is optional.

Tested on Ubuntu and is only enabled by default on Ubuntu.

For other unix os, you need to modify the run file and install packages below:

sudo apt-get install gir1.2-appindicator3-0.1 gir1.2-notify-0.7 python-gobject

If you have any trouble or request about the program, please make a new issue at https://github.com/Dragon2fly/vpngate-with-proxy/issues

Dependency:

Except python 2.7.x3.6+, all below dependencies should be automatically installed at first run.

How to use:

0. Pre-installation

1. Installation:

Using git:

  $ sudo apt-get install git
  $ git clone https://github.com/Dragon2fly/vpngate-with-proxy.git

If your network is behind a proxy:

  $ sudo -E apt-get install git
  $ git clone https://github.com/Dragon2fly/vpngate-with-proxy.git

You can also download the zip file It contains the "vpngate-with-proxy" folder. Extract it into anywhere you want eg: $HOME.

user_script:

Within this folder, there should be a file user_script.sh. This file allow you to run extra commands to fit your need. You have to manually edit this file and don't change the file name. Commands are divided into 2 groups:

2. First run:

If you have configured system wide proxy or proxy in firefox, it'd better to turn it off. After vpn tunnel is established, the programs that use system wide proxy may failed to connect to the internet using your proxy.

Launch vpngate-with-proxy by

  $ cd vpngate-with-proxy
  $ ./run [arg]

Then the program will first setup a configuration file config.ini by asking you for proxy if needed to connect to the Internet. After that it will show the default configuration of the program. Change any parameter to suit you and press Enter to continue. Next time launching this program, you won't see this configuration again. Either modify config.ini or check 5. Some notes

If no thing goes wrong, the vpn server's list will show up.

3. Interaction:

4. After VPN Tunnel is established successfully:

A successful connection doesn't mean you have access to the Internet. If you can access the Internet through selected vpn server, that doesn't mean you are totally safe.

  1. Check if you can access the Internet:

    • try browse some websites. Low score VPN servers tend to block you out of the Internet
  2. Check DNS leak:

    If you are serious about privacy, this is necessary. DNS server knows the web addresses that you connected to, unless you type IP address directly.

    To know your current DNS provider, https://www.dnsleaktest.com or https://ipleak.net

    If DNS is not changed, make sure that you have turned off your system wide proxy and try again. While using the ethernet for vpn, connected to wifi may reset your DNS.

You could also use below command in Ubuntu to see trace route:

  $ mtr -rw google.com

5. Some notes:

Troubleshoot:

If the program is unable to fetch new server data nor connect to any vpn server, your networking is not back to normal.

That is when restore, kill and log on command come in handy.

You will need to reset your network setting by:

  1. kill all openvpn processes
  2. $ sudo service network-manager restart

    Restart your system or reconnect to wifi or ethernet will also help. If it still doesn't, your proxy may be offline or \etc\resolv.conf's content is incorrect. Ping your proxy from another computer to test. And double check \etc\resolv.conf

    If your network is behind a proxy, there is a chance that your ip will be blocked. Testing if OpenVPN servers are dead or alive requires spamming many socket connection. Although the program has limited the number of socket connection per second, the proxy may think it is being DDoS. Search in the source code for test_interval and increase it a little bit.

    If vpn_indicator is unresponsive, kill it by:

    $ kill -9 pgrep -f vpn_indicator

    For other problems and bugs, please make an issue at https://github.com/Dragon2fly/vpngate-with-proxy/issues. State clearly the OS and what steps that you have taken that lead to the bug.