This tool is for penetration testing only. Never use a DNS resolver connected to the Internet on your IS.
Our VPN infrastructure is hosted on the Amazon EC2 & OVH clouds
open-source software: Java server, Flex client for Adobe AIR and Perl client are available on GitHub
[ Now also available on Docker Hub: fenyoa/vpnoverdns ]
[ Server and clients sources available on GitHub under GPLv3 license: https://github.com/AlexandreFenyo/vpn-over-dns ]
Table of contents
GUI versions:
CLI versions:
Download link:
Download link:
Download link:
In case you would like to install the Perl client without having any Internet access, please read the specific installation steps described in the blind hacker's DNS tunneling approach.
Useful when you can access really nothing but dig (or nslookup) and a Perl runtime, not even root-level permission.
Here are the generic installation steps for any Unix-like operating system (including FreeBSD, several Linux distributions, Cygwin, Mac OS X, ...).
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl.
To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Now, you need to download and install Perl: get the sources or a binary distribution here.
Finally, you need to install the following Perl modules (and their dependencies) used by vpnoverdns.pl:
- Net::DNS provided by Net-DNS: version 0.66 or higher
- XML::Simple provided by XML-Simple: version 1.08 or higher
- LWP::UserAgent provided by libwww-perl: version 6.02 or higher - best to use 6.06 or higher
- LWP::Protocol::https provided by LWP-Protocol-https: version 6.02 or higher - best to use 6.06 or higher
- LWP::Protocol::connect provided by LWP-Protocol-connect: when using libwww-perl and LWP-Protocol-https older than 6.06
IMPORTANT NOTE ABOUT MODULE DEPENDENCIES:
Be careful with the version of Net::DNS you choose: avoid installing Net::DNS 1.03 (you would get an error like Not a GLOB reference at [...] IO/Select.pm when using vpnoverdns.pl: see this article for more informations about the corresponding bug).
You have a choice between installing a recent version of Net::DNS, for instance version 1.04 available here on CPAN. Or to install the old but perfectly working version 0.68, available here on CPAN.
With Net::DNS 0.68 or older, vpnoverdns.pl will obtain better download throughput because this version can decode DNS TXT resource records containing binary strings (TXT strings made of a collection of any byte from 0 to 255). More recent versions can not handle such strings, then vpnoverdns.pl must ask the VPN server to use the base64 encoding scheme inside TXT strings, reducing the ingress hroughput by about 25% (of course, this only happens when fast mode is selected, since standard mode does only use DNS A resource records).
Finally, you are in front of another choice: either installing Net::DNS globally (only possible with root access permission), or installing Net::DNS in your user account (root access permission not needed).
Here follows some examples of the Net::DNS installation steps, depending on your previous choices. We make the assumption that you have Internet access and that one of the following non-interactive network downloaders is available: fetch, wget or curl. If you do not have any Internet access, see this hack to discover how to download, install and run vpnoverdns.pl anyway (nothing is impossible, with VPN-over-DNS).
Example 1: manually downloading and installing Net::DNS version 0.68, without root access permission (extract Net-DNS-0.68.tar.gz in a subdirectory, enter this subdirectory, run "mkdir $HOME/perl5; perl Makefile.PL INSTALL_BASE=$HOME/perl5; make; make install"; finally, run vpnoverdns.pl specifying the Net::DNS installation directory: "perl -I$HOME/perl5/lib/perl5 vpnoverdns.pl"):
% wget http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-0.68.tar.gz || fetch http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-0.68.tar.gz || curl --ignore-content-length http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-0.68.tar.gz
% tar zxf Net-DNS-0.68.tar.gz
% cd Net-DNS-0.68
% perl Makefile.PL INSTALL_BASE=$HOME
Testing if you have a C compiler and the needed header files....
You have a working compiler.
Activating Non Fatal Online Tests...
Warning!
========
Online tests depend on conditions beyond the control of Net::DNS. The tests
check for the expected results when both Net::DNS and the outside world are
functioning properly. In case of failure it is often undecidable if the error
lies with Net::DNS or elsewhere.
The libraries needed to support IPv6 transport have not been found.
You will need recent versions of the IO::Socket::INET6 and Socket6
libraries (from CPAN).
Checking if your kit is complete...
Looks good
Warning: prerequisite Digest::HMAC_MD5 1 not found.
Generating a Unix-style Makefile
Writing Makefile for Net::DNS
Writing MYMETA.yml and MYMETA.json
% make
cp lib/Net/DNS/RR/MR.pm blib/lib/Net/DNS/RR/MR.pm
[...]
cp lib/Net/DNS/RR/MINFO.pm blib/lib/Net/DNS/RR/MINFO.pm
cc -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DVERSION=\"0.68\" -DXS_VERSION=\"0.68\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.20/mach/CORE" netdns.c
/usr/bin/ar cr netdns.a netdns.o
: netdns.a
Running Mkbootstrap for Net::DNS ()
chmod 644 DNS.bs
/usr/local/bin/perl /usr/local/lib/perl5/5.20/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.20/ExtUtils/typemap DNS.xs > DNS.xsc && mv DNS.xsc DNS.c
cc -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DVERSION=\"0.68\" -DXS_VERSION=\"0.68\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.20/mach/CORE" DNS.c
rm -f blib/arch/auto/Net/DNS/DNS.so
cc -shared -L/wrkdirs/usr/ports/lang/perl5.20/work/perl-5.20.3 -L/usr/local/lib/perl5/5.20/mach/CORE -Wl,-rpath=/usr/local/lib/perl5/5.20/mach/CORE -lperl -L/usr/local/lib -fstack-protector DNS.o netdns.o -o blib/arch/auto/Net/DNS/DNS.so netdns.a
chmod 755 blib/arch/auto/Net/DNS/DNS.so
/usr/local/bin/perl -MExtUtils::Command::MM -e 'cp_nonempty' -- DNS.bs blib/arch/auto/Net/DNS/DNS.bs 644
Manifying blib/man3/Net::DNS.3
[...]
Manifying blib/man3/Net::DNS::Update.3
%
% make install
Running Mkbootstrap for Net::DNS ()
chmod 644 DNS.bs
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /home/ec2-user/perl5/lib/perl5/amd64-freebsd-thread-multi/auto/Net/DNS/DNS.so
[...]
Installing /home/ec2-user/perl5/lib/perl5/amd64-freebsd-thread-multi/Net/DNS/Resolver/Cygwin.pm
Installing /home/ec2-user/perl5/man/man3/Net::DNS.3
[...]
Installing /home/ec2-user/perl5/man/man3/Net::DNS::Update.3
Appending installation info to /home/ec2-user/perl5/lib/perl5/amd64-freebsd-thread-multi/perllocal.pod
%
% cd $HOME
% perl -I$HOME/perl5/lib/perl5 vpnoverdns.pl -v
LWP::UserAgent version: not installed
Net::DNS version: 0.68
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Example 2: manually downloading and installing Net::DNS version 0.68, with root access permission (extract Net-DNS-0.68.tar.gz in a subdirectory, enter this subdirectory, run "perl Makefile.PL INSTALL_BASE=$HOME; make; make install"; finally, run vpnoverdns.pl with "perl vpnoverdns.pl"):
% wget http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-0.68.tar.gz || fetch http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-0.68.tar.gz || curl --ignore-content-length http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-0.68.tar.gz
% tar zxf Net-DNS-0.68.tar.gz
% cd Net-DNS-0.68
% perl Makefile.PL
Testing if you have a C compiler and the needed header files....
You have a working compiler.
Activating Non Fatal Online Tests...
Warning!
========
Online tests depend on conditions beyond the control of Net::DNS. The tests
check for the expected results when both Net::DNS and the outside world are
functioning properly. In case of failure it is often undecidable if the error
lies with Net::DNS or elsewhere.
The libraries needed to support IPv6 transport have not been found.
You will need recent versions of the IO::Socket::INET6 and Socket6
libraries (from CPAN).
Checking if your kit is complete...
Looks good
Warning: prerequisite Digest::HMAC_MD5 1 not found.
Generating a Unix-style Makefile
Writing Makefile for Net::DNS
Writing MYMETA.yml and MYMETA.json
% make
cp lib/Net/DNS/RR/MR.pm blib/lib/Net/DNS/RR/MR.pm
[...]
cp lib/Net/DNS/RR/MINFO.pm blib/lib/Net/DNS/RR/MINFO.pm
cc -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DVERSION=\"0.68\" -DXS_VERSION=\"0.68\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.20/mach/CORE" netdns.c
/usr/bin/ar cr netdns.a netdns.o
: netdns.a
Running Mkbootstrap for Net::DNS ()
chmod 644 DNS.bs
/usr/local/bin/perl /usr/local/lib/perl5/5.20/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.20/ExtUtils/typemap DNS.xs > DNS.xsc && mv DNS.xsc DNS.c
cc -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DVERSION=\"0.68\" -DXS_VERSION=\"0.68\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.20/mach/CORE" DNS.c
rm -f blib/arch/auto/Net/DNS/DNS.so
cc -shared -L/wrkdirs/usr/ports/lang/perl5.20/work/perl-5.20.3 -L/usr/local/lib/perl5/5.20/mach/CORE -Wl,-rpath=/usr/local/lib/perl5/5.20/mach/CORE -lperl -L/usr/local/lib -fstack-protector DNS.o netdns.o -o blib/arch/auto/Net/DNS/DNS.so netdns.a
chmod 755 blib/arch/auto/Net/DNS/DNS.so
/usr/local/bin/perl -MExtUtils::Command::MM -e 'cp_nonempty' -- DNS.bs blib/arch/auto/Net/DNS/DNS.bs 644
Manifying blib/man3/Net::DNS.3
[...]
Manifying blib/man3/Net::DNS::Update.3
%
% su
# make install
Running Mkbootstrap for Net::DNS ()
chmod 644 DNS.bs
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib/perl5/site_perl/mach/5.20/auto/Net/DNS/DNS.so
[...]
Installing /usr/local/lib/perl5/site_perl/mach/5.20/Net/DNS/RR/APL/ApItem.pm
Installing /usr/local/lib/perl5/site_perl/man/man3/Net::DNS.3
[...]
Installing /usr/local/lib/perl5/site_perl/man/man3/Net::DNS::Update.3
Appending installation info to /usr/local/lib/perl5/5.20/mach/perllocal.pod
# exit
%
% cd $HOME
% perl vpnoverdns.pl -v
LWP::UserAgent version: not installed
Net::DNS version: 0.68
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Example 3: using CPAN to automatically download and install the latest Net::DNS version and its dependencies, without root access permission (run cpan and choose the default settings: since you have no root access permission, select the local::lib approach when asked to; this should download, compile and install the local::lib module, useful with Perl when you do not have administrative privileges; to be sure the cpan command line tool has done the whole work and installed local::lib, run the following command line: "cd $HOME/.cpan/build/local-lib* ; make install"; this is because, sometimes, on some systems, this module is compiled but not installed, due to an unknown bug; now download and install the latest Net::DNS module, including its dependencies, using the following command line: "perl -MCPAN -Mlocal::lib -I$HOME/perl5/lib/perl5 -e 'CPAN::install(Net::DNS)'"; finally, run vpnoverdns.pl specifying the Net::DNS installation directory: "perl -I$HOME/perl5/lib/perl5 vpnoverdns.pl"):
% yes '' | cpan
[...]
% cd .cpan/build/local-lib*
% make install
[...]
% perl -MCPAN -Mlocal::lib -I$HOME/perl5/lib/perl5 -e 'CPAN::install(Net::DNS)'
[...]
% cd $HOME
% perl -I$HOME/perl5/lib/perl5 vpnoverdns.pl -v
LWP::UserAgent version: not installed
Net::DNS version: 1.04
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Example 4: using CPAN to automatically download and install the latest Net::DNS version and its dependencies, with root access permission (su root, run cpan and choose the default settings; under the CPAN shell, run the following command: "install Net::DNS"; exit the CPAN shell with "exit"; exit from your root shell with "exit"; finally, run vpnoverdns.pl with "perl vpnoverdns.pl").
Note with cpan command line tool, useful in this example:
when the site dirs don't exist (this is sometimes the case when using Linux inside a docker container), the CPAN shell interactive configuration states
"Warning: You do not have write permission for Perl library directories."
and proceeds to suggest local::lib for installation, which is not the
optimal suggestion for root installation. You need to choose sudo approach instead.
# cpan
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes]
Autoconfiguration complete.
commit: wrote '/root/.cpan/CPAN/MyConfig.pm'
You can re-run configuration any time with 'o conf init' in the CPAN shell
Terminal does not support AddHistory.
cpan shell -- CPAN exploration and modules installation (v2.05)
Enter 'h' for help.
cpan[1]> install Net::DNS
Fetching with HTTP::Tiny:
http://www.cpan.org/authors/01mailrc.txt.gz
Reading '/root/.cpan/sources/authors/01mailrc.txt.gz'
[...]
NLNETLABS/Net-DNS-1.04.tar.gz
/usr/bin/make install -- OK
cpan[2]> exit
Terminal does not support GetHistory.
Lockfile removed.
# exit
%
% perl vpnoverdns.pl -v
LWP::UserAgent version: not installed
Net::DNS version: 1.04
need to select only one parameter among -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Note about running vpnoverdns.pl:
- with csh or tcsh: "setenv PERL5LIB $HOME/perl5/lib/perl5"
- with bash, zsh or ksh: "export PERL5LIB=$HOME/perl5/lib/perl5"
If you have installed Net::DNS with root access permission, you do not have to include any -I option or set any environment variable.
If you want to use the [-i|--initialize] parameter of vpnoverdns.pl, you also need to download and install recent versions of those three Perl modules and their dependencies: XML::Simple, LWP::UserAgent & LWP::Protocol::https (see here for a listing of required versions). Since those modules depend on many other modules, the easiest way to install them correctly is to use CPAN instead of trying to do it manually. See the above number 3 and number 4 examples to know how to install a module and its dependencies with CPAN. Example number 3 shows how to install them with root access permission and example number 4 shows how to install them in your home directory. In this latter case, do not forget to export the PERL5LIB environment variable before running vpnoverdns.pl.
As explained at the begining of the VPN-over-DNS Perl manual, your Perl installation may lack of LWP::UserAgent, LWP::Protocol::https or XML::Simple, that are modules used by [-i|--initialize] parameter of VPN-over-DNS. In that case, directly register your uuid with the [-u|--uuid] parameter followed by your uuid, instead of fetching it with your username and password. You need to remember your personal uuid (get it right now from this form) and run the following command (replace uuid with your uuid):
%
Another way to use VPN-over-DNS, without having installed LWP::UserAgent, LWP::Protocol::https or XML::Simple and their dependencies, is to associate with an anonymous account, using the [-A|--anonymous] parameter:
%
Now that you have completed the VPN-over-DNS installation steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter:
Usage:
vpnoverdns.pl [-dvFnsp] [NUMERIC_OPTS] -i username password
vpnoverdns.pl [-dv] -u uuid
vpnoverdns.pl [-dv] -A
vpnoverdns.pl [-dvFsg] [NUMERIC_OPTS] -L [bind_address:]port:host:hostport
vpnoverdns.pl [-dvFsp] [NUMERIC_OPTS] -S host [-o ssh_options] [-C command]
vpnoverdns.pl [-dvFsg] [NUMERIC_OPTS] -X
vpnoverdns.pl [-dvFs] [NUMERIC_OPTS] -c
vpnoverdns.pl [-dvFs] [NUMERIC_OPTS] -w
vpnoverdns.pl [-dvFs] [NUMERIC_OPTS] -r NUM
vpnoverdns.pl -h
General parameters and options:
--help -h displays this help text
--debug -d debug protocol
--fast -F use faster protocol
normal protocol: IN A records only
faster protocol: IN TXT + IN A records
--verbose -v verbose output
--silent -s avoid bursting - as a consequence, average throughput
is decreased
--initialize -i associates with a mobile account on the server farm,
call it once at first use
the username and password fields are protected with
an SSL channel
--uuid NUM -u NUM associates with an account uuid,
call it once at first use
the preferred way is to use "-i" option: use "-u"
only if "-i" is unavailable because of a lack
of some Perl mandatory modules for SSL communications
--anonymous -A associates with an anonymous restricted account,
call it once at first use
--nocertcheck -n do not check server certificate
(in case LWP::UserAgent->VERSION < 6)
--global -g allows remote hosts to connect to local forwarded
ports - same meaning as -g with SSH(1)
--local -L specifies that the given port on the local (client)
host is to be forwarded to the given host and port on
the remote side
same meaning as -L with SSH(1)
--ssh -S connect to remote host using a DNS tunnel.
--sshoptions -o ssh command options.
ex.: vpnoverdns.pl -S mysshserver -o "-l root"
--sshcommand -C optionnal ssh remote command.
ex.: vpnoverdns.pl -S mysshserver -C date
--proxy -X listen on local port 3128 and tunnel this port to
- an open web proxy (http + https) if a mobile account
has been previously configured (see "-i" and
"-u" options)
- a restricted http only proxy if an anonymous
restricted account has been configured (see "-A"
option). This proxy can be used to browse
http://www.wikipedia.org and a few other sites.
--checkmails -c check for new mails on the mail provider and retrieve
any pending mail
--sendmail -w post a new mail
--rtt NUM -r NUM compute round trip time sending NUM requests
--port -p NUM listening TCP port used to relay SSL/TLS on top of DNS
when associating with a mobile account or when
tunneling a ssh connection
Numeric sub options relative to DNS queries behaviour only:
--maxwrite NUM -m NUM change the byte count sent in one request
the highest possible value is 30 (default value)
this parameter is ignored in fast mode
--maxread NUM -Y NUM change the byte count received in one request
the default value (64) may by increased to speed up
the tunnel
this parameter is ignored in fast mode
--delay4msg NUM -M NUM waiting delay before retry (microseconds), only used
when the server has not immediately processed a message
default value: 200000
--delay4req NUM -R NUM waiting delay before retrying a DNS request that has
been lost (microseconds)
note that the applied delay is this value multiplied by
the number of tries to send the request
default value: 1000000
--maxdelay NUM -a NUM maximum waiting delay (seconds) before retrying a DNS
request
default value: 8
--parallel NUM -P NUM maximum number of parallel requests
default value: 20
--localbuf NUM -b NUM maximum number of local bytes sent before requesting
for remote bytes
default value: 1024
--delaychk NUM -D NUM delay between two checks for remote data for a
redirected channel (microseconds); only used when no
need to send local data
default value: 200000
--fuzzy NUM -f NUM add a background noise made of NUM random requests
for each protocol request
default value: 0
%
First, launch the cygwin setup program. Type "perl" in the search box and expand the Perl category:
Inside the "New" column, click on "Skip" to select installation and let appear the version number for the following perl sub-packages :
- perl-libwww-perl: Perl distribution libwww-perl
- perl-LWP-Protocol-https: Perl distribution LWP-Protocol-https
- perl-Mozilla-CA: Perl distribution Mozilla-CA
- perl-Net-DNS: Perl distribution Net-DNS
- perl-XML-Simple: Perl distribution XML-Simple
Click "Next" to see the dependencies that will also be installed with your Perl modules:
Click "Next" to start download and installation:
At the near end of the installation process, shared libraries are rebased, this may take some minutes:
Finally, the new packages have been correctly installed:
Now, download the latest version of vpnoverdns.pl here and save it in your home directory.
You can finally run the client in a cygwin shell:
Net::DNS version: 1.04
LWP::UserAgent version: 6.15
LWP::Protocol::https version: 6.06
LWP::Protocol::connect available: false
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Here are the generic installation steps for FreeBSD 9.3-RELEASE and 10.2-RELEASE.
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Then, you have to download and install Perl and some Perl modules needed by vpnoverdns.pl.
But just before, let's
be sure not to download obsolete versions of Perl and of those modules by first updating your local package repository index (it is important to avoid installing Net::DNS 1.03: you would get an error like Not a GLOB reference at [...] IO/Select.pm when using vpnoverdns.pl; see this article for more informations about the corresponding bug):
# pkg update
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
#
Now, you need to install Perl and the needed packages:
# pkg install -y p5-Net-DNS p5-XML-Simple p5-LWP-UserAgent-WithCache p5-LWP-Protocol-https
[...]
# exit
%
Finally, you can run the client:
Net::DNS version: 1.04
LWP::UserAgent version: 6.15
LWP::Protocol::https version: 6.06
LWP::Protocol::connect available: false
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Here are the generic installation steps for Ubuntu 12.04 (precise) and 14.04 (trusty).
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Then, you have to download and install Perl and some Perl modules needed by vpnoverdns.pl.
But just before, let's
be sure not to download obsolete versions of Perl and of those modules by first updating your local package repository index (it is important to avoid installing Net::DNS 1.03: you would get an error like Not a GLOB reference at [...] IO/Select.pm when using vpnoverdns.pl; see this article for more informations about the corresponding bug):
# apt-get update
[...]
#
Now, you need to install Perl and the needed packages:
# apt-get install -y perl libnet-dns-perl liblwp-protocol-https-perl libxml-simple-perl
[...]
# exit
%
As you will see later, we will use CPAN. So, you need to previously install the build-essential package:
# apt-get install -y build-essential
[...]
# exit
%
On these versions of Ubuntu, you need to install the Perl module LWP-Protocol-connect because libwww-perl is too old for our requirements. You need to use CPAN, since it is not available in any package offered with these Ubuntu versions. Please, read this important note about using CPAN. Log in as root and run "cpan". If asked, choose the sudo approach to get a global installation. Then exit cpan (CTRL-D or "exit"):
# cpan
[...]
cpan[1]> install LWP::Protocol::connect
Fetching with LWP:
http://cpan.belfry.net/authors/01mailrc.txt.gz
Going to read '/root/.cpan/sources/authors/01mailrc.txt.gz'
[...]
cpan[2]> exit
%
Finally, you can run the VPN client:
Net::DNS version: 0.66
LWP::UserAgent version: 6.03
LWP::Protocol::https version: 6.02
LWP::Protocol::connect available: true
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Here are the generic installation steps for Ubuntu 15.04 (vivid), 15.10 (wily) and 16.04 (xenial).
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Then, you have to download and install Perl and some Perl modules needed by vpnoverdns.pl.
But just before, let's
be sure not to download obsolete versions of Perl and of those modules by first updating your local package repository index (it is important to avoid installing Net::DNS 1.03: you would get an error like Not a GLOB reference at [...] IO/Select.pm when using vpnoverdns.pl; see this article for more informations about the corresponding bug):
# apt-get update
[...]
#
Now, you need to install Perl and the needed packages:
# apt-get install -y perl libnet-dns-perl liblwp-protocol-https-perl libxml-simple-perl
[...]
# exit
%
Finally, you can run the VPN client:
% perl /tmp/vpnoverdns.pl -v
Net::DNS version: 0.81
LWP::UserAgent version: 6.06
LWP::Protocol::https version: 6.06
LWP::Protocol::connect available: false
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Here are the generic installation steps for OpenSUSE 13.2 (harlequin) & OpenSUSE 42.1 (leap).
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Then you need to install Perl and the needed packages:
# zypper install -n perl-LWP-Protocol-https perl-Net-DNS perl-XML-Simple ca-certificates-mozilla
[...]
# exit
%
As you will see later, we will use CPAN. So, you need to previously install the make package:
# zypper install -n make
[...]
# exit
%
On these versions of OpenSUSE, you need to install the Perl module LWP-Protocol-connect because libwww-perl is too old for our requirements. You need to use CPAN, since it is not available in any package offered with these OpenSUSE versions. Please, read this important note about using CPAN. Log in as root and run "cpan". If asked, choose the sudo approach to get a global installation. Then exit cpan (CTRL-D or "exit"):
# cpan
[...]
cpan[1]> install LWP::Protocol::connect
Fetching with LWP:
http://cpan.belfry.net/authors/01mailrc.txt.gz
Going to read '/root/.cpan/sources/authors/01mailrc.txt.gz'
[...]
cpan[2]> exit
%
Finally, you can run the VPN client:
Net::DNS version: 0.74
LWP::UserAgent version: 6.05
LWP::Protocol::https version: 6.04
LWP::Protocol::connect available: true
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Here are the generic installation steps for Debian 6.0.10 (squeeze).
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Then, you have to download and install Perl and some Perl modules needed by vpnoverdns.pl.
But just before, let's
be sure not to download obsolete versions of Perl and of those modules by first updating your local package repository index (it is important to avoid installing Net::DNS 1.03: you would get an error like Not a GLOB reference at [...] IO/Select.pm when using vpnoverdns.pl; see this article for more informations about the corresponding bug):
# apt-get update
[...]
#
Now, you need to install Perl and the needed packages:
# apt-get install -y libnet-dns-perl libxml-simple-perl ca-certificates
[...]
# exit
%
As you will see later, we will use CPAN. So, you need to previously install the build-essential and libssl-dev packages:
# apt-get install -y build-essential libssl-dev
[...]
# exit
%
On this version of Debian, you need to manually install with CPAN the module LWP::Protocol::https and its dependencies to get a version of libwww-perl and LWP-Protocol-https fresh enough for our requirements. We also need to use "cpan force install" to force the installation because some tests may crash. Please, read this important note about using CPAN. Log in as root and run "cpan". If asked, choose the sudo approach to get a global installation. Then exit cpan (CTRL-D or "exit"):
# cpan
[...]
cpan[1]> force install LWP::Protocol::https
Fetching with LWP:
http://cpan.belfry.net/authors/01mailrc.txt.gz
Going to read '/root/.cpan/sources/authors/01mailrc.txt.gz'
[...]
cpan[2]> exit
%
Finally, you can run the VPN client:
Net::DNS version: 0.66
LWP::UserAgent version: 6.15
LWP::Protocol::https version: 6.06
LWP::Protocol::connect available: false
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Here are the generic installation steps for Debian 7.9 (wheezy).
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Then, you have to download and install Perl and some Perl modules needed by vpnoverdns.pl.
But just before, let's
be sure not to download obsolete versions of Perl and of those modules by first updating your local package repository index (it is important to avoid installing Net::DNS 1.03: you would get an error like Not a GLOB reference at [...] IO/Select.pm when using vpnoverdns.pl; see this article for more informations about the corresponding bug):
# apt-get update
[...]
#
Now, you need to install Perl and the needed packages:
# apt-get install -y liblwp-protocol-https-perl libnet-dns-perl libxml-simple-perl ca-certificates
[...]
# exit
%
As you will see later, we will use CPAN. So, you need to previously install the make package:
# apt-get install -y make
[...]
# exit
%
On this version of Debian, you need to install the Perl module LWP-Protocol-connect because libwww-perl is too old for our requirements. You need to use CPAN, since it is not available in any package offered with this Ubuntu version. Please, read this important note about using CPAN. Log in as root and run "cpan". If asked, choose the sudo approach to get a global installation. Then exit cpan (CTRL-D or "exit"):
# cpan
[...]
cpan[1]> install LWP::Protocol::connect
Fetching with LWP:
http://cpan.belfry.net/authors/01mailrc.txt.gz
Going to read '/root/.cpan/sources/authors/01mailrc.txt.gz'
[...]
cpan[2]> exit
%
Finally, you can run the VPN client:
Net::DNS version: 0.66
LWP::UserAgent version: 6.04
LWP::Protocol::https version: 6.03
LWP::Protocol::connect available: true
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Here are the generic installation steps for Debian 8.2 (jessie).
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Then, you have to download and install Perl and some Perl modules needed by vpnoverdns.pl.
But just before, let's
be sure not to download obsolete versions of Perl and of those modules by first updating your local package repository index (it is important to avoid installing Net::DNS 1.03: you would get an error like Not a GLOB reference at [...] IO/Select.pm when using vpnoverdns.pl; see this article for more informations about the corresponding bug):
# apt-get update
[...]
#
Now, you need to install Perl and the needed packages:
# apt-get install -y liblwp-protocol-https-perl libnet-dns-perl libxml-simple-perl ca-certificates
[...]
# exit
%
Finally, you can run the VPN client:
% perl /tmp/vpnoverdns.pl -v
Net::DNS version: 0.81
LWP::UserAgent version: 6.06
LWP::Protocol::https version: 6.06
LWP::Protocol::connect available: false
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Here are the generic installation steps for Oracle Linux 7.2.
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Now, you need to install Perl and the needed packages:
# yum install -y perl perl-core perl-Net-DNS perl-LWP-Protocol-https perl-XML-Simple
[...]
# exit
%
On this version of Oracle Linux, you need to install the Perl module LWP-Protocol-connect because libwww-perl is too old for our requirements. You need to use CPAN, since it is not available in any package offered with this Oracle Linux version. Please, read this important note about using CPAN. Log in as root and run "cpan". If asked, choose the sudo approach to get a global installation. Then exit cpan (CTRL-D or "exit"):
# cpan
[...]
cpan[1]> install LWP::Protocol::connect
Fetching with LWP:
http://cpan.belfry.net/authors/01mailrc.txt.gz
Going to read '/root/.cpan/sources/authors/01mailrc.txt.gz'
[...]
cpan[2]> exit
%
Finally, you can run the VPN client:
Net::DNS version: 0.72
LWP::UserAgent version: 6.05
LWP::Protocol::https version: 6.04
LWP::Protocol::connect available: true
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Here are the generic installation steps for Kali Linux 2.0.
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Now, you need to install Perl and the needed packages:
# apt-get install -y perl libnet-dns-perl libxml-simple-perl
[...]
# exit
%
Finally, you can run the VPN client:
Net::DNS version: 0.72
LWP::UserAgent version: 6.05
LWP::Protocol::https version: 6.04
LWP::Protocol::connect available: true
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
Here are the generic installation steps for Raspbian GNU/Linux 8 for Raspberry PI (jessie).
After having completed those steps, you can get every informations about using the command line client in the official online user's manual for vpnoverdns.pl. To start quickly, you can run the command line with the [-h|--help] parameter, in order to display the SYNOPSIS.
First, download the latest version of vpnoverdns.pl here and save it in your home directory.
Then, you have to download and install Perl and some Perl modules needed by vpnoverdns.pl.
But just before, let's
be sure not to download obsolete versions of Perl and of those modules by first updating your local package repository index (it is important to avoid installing Net::DNS 1.03: you would get an error like Not a GLOB reference at [...] IO/Select.pm when using vpnoverdns.pl; see this article for more informations about the corresponding bug):
# apt-get update
[...]
#
Now, you need to install Perl and the needed packages:
# apt-get install -y libnet-dns-perl libxml-simple-perl
[...]
# exit
%
Finally, you can run the VPN client:
% perl /tmp/vpnoverdns.pl -v
Net::DNS version: 0.81
LWP::UserAgent version: 6.06
LWP::Protocol::https version: 6.06
LWP::Protocol::connect available: false
need to select only one parameter among -h, -i, -u, -L, -c, -w, -A, -X, -S and -r
%
New mobile app from the same developer See our new amazing app for iOS: WiFi Map Explorer
Server and clients are now open-source: GPLv3 Explore the source tree on GitHub