Writing this note gave some comments to the recent article “
Not too scrupulous way of selling software ” about TeamViewer. I will try to briefly describe one not very complicated and at the same time quite universal way to “go in” from one computer to another if they are both nat.
Actually, to the point. In order to establish a connection, on each computer we will create an IPv6 tunnel using some IPv6 tunneling service. Both computers will receive a full IPv6 address, and between them it will be possible to establish a connection via ssh, vnc or another technology. Of course, if both computers already have an IPv6 address provided by the provider, no gestures to lift the tunnels are needed. Unfortunately, the vast majority of providers for IPv6 are not yet ready and the fact that the user has direct access to the Internet via IPv6 is a rarity.
The most famous IPv6 tunneling service, perhaps, is
this one from Hurricane Electric. To raise the tunnel you need to register, get an IPv6 network and copy commands for your system from the browser to the console.
')
There is an easier way to lift the tunnel using the
Freenet6 tunnel
service . The service provides anonymous access (you can not register). To raise the IPv6 tunnel, download and run the program from their site. For my kubuntu, it was already in the repository:
sudo apt-get install gogoc
gogoc connects to the server at startup and configures the IPv6 tunnel. Here is how he looks at me:
$ sudo ifconfig ... tun Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet6 addr: 2001:5c0:1400:a::45f/128 Scope:Global UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 Metric:1 RX packets:7824 errors:0 dropped:0 overruns:0 frame:0 TX packets:5269 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:5057840 (5.0 MB) TX bytes:771574 (771.5 KB) ... $ sudo ip -6 route show 2001:5c0:1400:a::6a1 dev tun proto kernel metric 256 mtu 1280 2000::/3 dev tun metric 1 fe80::/64 dev tun proto kernel metric 256 default dev tun metric 1 ...
2001: 5c0: 1400: a :: 45f - the IPv6 address given to me by Freenet6.
After doing the same procedure on the second machine, you can “go in” from one to another.
$ ssh user @ 2001: 5c0: 1400: a :: 45f
...
or so
