Debugging

If you think that you did everything right and it does still not work there are several things to check in advance. First check that Tor is up and running. You should see the tor process in the process list as well as a listening TCP socket on 127.0.0.1:9050. Furthermore you should have configured the hidden service correctly (see Configuration).

Start OnionCat and have a look at the log file. It logs to syslog with the daemon facility, hence, on most systems the appropriate log file is found at /var/log/daemon.log. Directly after starting OnionCat you should find something similar to the following snippet.

onioncat[25784]: [main] onioncat 0.2.2.r556 (c) Bernhard R. Fischer (OnionCat mode)
onioncat[25784]: [main] IPv6 address fd87:d87e:eb43:...:...:...:...:...
onioncat[25784]: [main] TUN/TAP device tun0
onioncat[25790]: [main] process backgrounded by parent 25784, new pid = 25790
onioncat[25790]: [main] can't get information for user "tor": "user not found", defaulting to uid 65534
onioncat[25790]: [main] disabling connect log
onioncat[25790]: [main] running as root, changing uid/gid to (unknown) (uid 65534/gid 65534)
onioncat[25790]: [receiver] select encountered error: "Interrupted system call", restarting
onioncat[25790]: [cleaner] stats: ... (not implemented yet)
onioncat[25790]: [receiver] select encountered error: "Interrupted system call", restarting
onioncat[25790]: [main] starting packet forwarder

If there are some severe error messages try to fix your setup accordingly.

The next step is to check the IP configuration. Have a look at your tunnel interface (command ifconfig). It should show a tunnel interface (typically named tun0) having your OnionCat IPv6 address configured. It should look like the following.

tun0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          inet6 addr: fd87:d87e:eb43:f64e:4eb4:359d:aea3:f170/48 Scope:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

You should be able to ping this IPv6 address (command ping6). You should get immediate responses within several microseconds.

In the next step check the routing table of your host with the command netstat -nr6. The list should contain two such entries.

fd87:d87e:eb43::/48   ::   U    256 0     0 tun0
fd87:d87e:eb43:f64e:4eb4:359d:aea3:f170/128   ::   Un   0   1  1002 lo

The second line contains the same IPv6 address as on your tunnel interface. If everything is fine until now you should be able to ping another host through OC. Have a look at the Services page or contact a friend who’s running OC and ping it (command ping6). In the log file (/var/log/daemon.log) you should see something like this:

onioncat[25790]: [connector] trying to connect to "a5ccbdkubbr2jlcp.onion" [fd87:d87e:eb43:744:208d:5408:63a4:ac4f] on 12

If the connection is successful you get the following log entry.

onioncat[25790]: [connector] SOCKS connection successfully opened on fd 12

If the connection fails you will see the following error message:

onioncat[25790]: [connector] SOCKS request failed, reason = 91

This indicates that the remote OC could not be reached. The reason for this could be that either the remote Tor is not running, or is not configured properly, or that the remote OC is not running.

If the connection was successful you should receive an incoming connection after a while. The appropriate log entry looks like this:

onioncat[25790]: [acceptor] connection 14 [0] accepted on listener 8 from 127.0.0.1 port 56280

After that the ping should immediately start to list the replies. If this is still not the case make sure that your firewall is not blocking ICMP6 packets!