Hamachi:Install on Linux
From LogMeInWiki
Contents |
Quick Start
- Download the hamachi Linux package
- Extract the package to a temp directory
- Change to that directory in terminal
- Run 'make install' and then 'tuncfg' from under the root account
- Run 'hamachi-init' to generate crypto identity (any account).
- Run 'hamachi start' to launch Hamachi daemon.
- Run 'hamachi login' to put the daemon online and to create an account.
- Run 'hamachi join <network>' to join the network.
- Run 'hamachi go-online <network>' to go online in the network.
- Run 'hamachi list' to list network members and their status.
Requirements & Privileged Access
Hamachi requires TUN/TAP device driver to create and manage virtual network interface. If you have /dev/net/tun file, you are all set. Otherwise visit the following page for more information -
Unless you are planning to use Hamachi exclusively from under the root account, you will need to run 'tuncfg' daemon. This daemon encapsulates all root-level functionality required by Hamachi and it must be running prior to launching Hamachi itself.
Tuncfg is distributed in a source code under the BSD license. You can find the source code in ./tuncfg directory of this distribution.
Running 'make install' automatically builds tuncfg and installs it in /sbin folder. If you would prefer to install it in altervative directory, modify ./Makefile accordingly.
Installation
Hamachi Linux client comes as a single executable binary (hamachi) compiled for the platform of your choice. This binary includes the daemon, the control application and the setup utility.
To install hamachi in /usr/bin run the following command from under the root account
make install
Once installed you must run 'tuncfg' daemon with root privileges
sudo /sbin/tuncfg
or if you don't have sudo
su - ; /sbin/tuncfg; exit
Hamachi requires one time initialization (per Linux user account). This step generates cryptographic key pair and creates ~/.hamachi directory where Hamachi stores the keys, the configuration and the state. To perform this initialization run
./hamachi-init
Running Hamachi
Running Hamachi involves starting it as a background process and then controlling this process from the command line. To launch Hamachi daemon run
./hamachi start
To stop the daemon run
./hamachi stop
Running hamachi without an argument displays daemon's status
version : hamachi-lnx-0.9.9.9<br /> pid : 956<br /> status : logging in<br /> nickname : buddy<br />
When run for the first time the daemon stays offline. To bring it online run
./hamachi login
To bring it back offline use
./hamachi logout
Note that the daemon remembers its state when it is shutdown with 'stop' command. So if its state was online, it will automatically go online when started next time. If it was offline, it will stay offline.
Network Operations
Once logged in, you can join the networks usinghamachi join [netowork name] [password]
You will be prompted for the password if it is required.
You may also create your own networks usinghamachi create
You will become an owner of any networks that you create and only you
will be able to destroy these networks withhamachi delete [network name]To remove a network peer, use
hamachi evict [peer]
Note that you will stay offline in the network after you create or
join it. To go online in the network usehamachi go-online [network name]To go offline in a network, use
hamachi go-offline [network name]
To leave a network use
hamachi leave [network name]
Note again that the daemon remembers your network state. If you logout or shutdown the daemon while being online in a network, the daemon will automatically put you back online in it on the next logon.
Listing Peers
To view the list of all networks and their members run
./hamachi list
Network names are enclosed in square brakets. The asterisk (*) in front of the network name means that you are online in this network.
* [homelan] * 5.0.0.15 x 5.0.0.16 ronny 5.0.0.17 bubba * 5.0.0.18 zhopa 10.0.0.100:45634
Underneath the network there is a peer list. Online peers will have their IP address prefixed by an asterisk (*) or an (x).
(*) means that the tunnel to the peer is either being established or ready. In latter case, peer's tunnel address will be shown on the right side of the list.
(x) means that the peer in unreachable, ie the mediation server failed to establish p2p tunnel between you and the peer.
If peer's nickname is known, it will be shown too. To retrieve peers' nicks use 'hamachi get-nicks' command.
Miscellaneous
- Mandriva 2006: change file
/etc/sysconfig/network-scripts/ifcfg-ham0lineBOOTPROTO=dhcptoBOOTPROTO=no. This prevents Hamachi from getting a new IP every time you login. This is for 2006 only, 2005 is not affected.
- You can also change your own nick by using 'hamachi set-nick' command. If you are online, the change will occur immediately. Otherwise new nick will be remembered and the change will occur at the next login.
- The instructions to uninstall can be found here
If commands have no output
This issue usually occurs if you do not have a an external dependency installed that Hamachi needs.
Hamachi is packed with UPX. So in order to run ldd (to find the dependencies) against hamachi, hamachi needs to be unpacked first. This is done with the upx binary.
./upx -d ./hamachi
assuming both upx and hamachi are in the current directory. If you are on Debian, you can use
apt-get install upx-ucl
to install upx (in which case the unpacking command is going to be
upx -d ./hamachi
Otherwise you can get the binary off UPX's homepage.
Once unpacked, run
ldd ./hamachi
You should see something like this -
foxtrot:~/hamachi-0.9.9.9-20-lnx# ldd hamachi
linux-gate.so.1 => (0xffffe000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7f07000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7efc000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7dca000)
/lib/ld-linux.so.2 (0xb7f33000)
These are the dependencies. If some are missing, you will see something like -
libm.so.6 => not found