Accessing EyesBot Remotely

In most cases your iOS device will be on an internal network with a non-routable IP address and will not be visible to browsers that are not on the same network. In order to access EyesBot or EyesBot Lite when not on your local network, you will need your iOS device to have a routable IP (either directly or via NAT, see definitions below) and to be exposed to the Internet, without a firewall filtering the traffic from your iOS device. Depending on your router, this may be easy to configure, but has security implications that you need to consider. Those security implications would take a very, very lengthy tutorial and require you to have some knowledge of networking.

For most people, this process will be possible but not be easy, and you may want to have someone who knows what they are doing do this, since it has security implications that vary according to your network type, what is on your network, and your router type. Additionally, if your external IP changes or the internal IP addresses change for your devices, you may have to reconfigure it. At a minimum you will need to set the password for EyesBot in the EyesBot app preferences to secure it. The password is sent over an unsecure connection, since SSL is problematic to setup on random devices which can have random IP addresses, so it is not very secure. Basically, if you set EyesBot or EyesBot Lite up this way, there are existing, serious security issues.

Some definitions:

  • IP Address: A unique address every device has on the Internet. Routable IP addresses (see below) must be universally unique. Non-routable IP address need to be unique on your network.
  • Routable or non-routable: In order for two computers on the Internet to exchange information, such as your laptop or desktop requesting a page from a server on the Internet, they must have an address that is unique and that can be routed across networks potentially spanning the globe. These addresses are called routable IP addresses. Addresses on your local network don't need to be routable, as long as your gateway to the Internet has a routable address. So your iOS device when on your internal network probably has an address starting with 192.168 (the first two bytes of a common non-routable address) but your routers external interface will have a routable address. When you are using EyesBot or EyesBot Lite to stream images, the address you use to connect to EyesBot, which looks like http://192.168.1.3:8080 includes the IP address (the bold portion, which may be different for you). The number after the colon is the port number. To find your routable IP, probably of your router, visit a website such as http://www.whatismyip.com. The IP address of your iOS device
  • NAT: Network address translation - when your router translates routable IP addresses from the Internet to non-routable internal addresses
  • Network: A group of computers that are connected by a medium that permits exchanging information. The address used for exchanging information on a local network is a MAC address
  • Internet:A network of networks connected by routers. The address used to route information to the correct network is an IP address.
  • Firewall: Software or hardware that prevents the unauthorized exchange of information. Information is exchanged on networks using packets which are addressed to ports at an IP address and conforming to various protocols. Firewall drop packets the are unauthorized.
  • Port: An IP or MAC address identifies a specific device on a network (such as a laptop or iOS device). A port identifies, using a number from 1 to 65535, a specific endpoint, generally a program, on a computer. So a web server generally has a port number of 80, which identifies the service on that computer for which a packet is destined.
  • MAC Address: This is an address that refers to the actual hardware that a computer uses to access a network. The IP address may be looked at as temporary and the MAC address as permanent.

In order for you to access EyesBot or EyesBot Lite when outside your local network, you will need to do the following steps, each of which varies by router manufacturer (you will need to consult the manual for your router to find out how to do each of these steps):

  1. First get your internal and external (or non-routable and routable) IP addresses as discussed above. The port for EyesBot will be 8080 unless you changed it in the preferences.
  2. Access your router adminstrative interface and log in: This is typically at 192.168.0.1 or 192.168.1.1
  3. Look for the following options: Either port forwarding or DMZ.
  4. If your router allows port forwarding, you will forward an external port, such are 8080, to a port on your iOS device. Since EyesBot typically is bound to port 8080, you would input your iOS device internal IP and 8080 as the destination for the port forwarding.
  5. If your router uses a DMZ instead, you would put your iOS device into the DMZ, typically by entering its internal IP number.

If the above went smoothly, the external address of your instance of EyesBot will be http://[external IP here]:[port here] So if your external IP address is 178.134.65.109 and you are forwarding port 8080 or have your iOS in the DMZ (this was the authors setup when testing) your EyesBot instance will be available at http://178.134.65.109:8080 I never leave my EyesBot instance exposed, so that address won't work for you, you need your own IP and port to test this out.

If you have managed to get through all of the above, congratulations. The final step is to test the connection to your iOS device. This is most conveniently done by calling a friend, sending them the EyesBot external address discussed in the previous paragraph and seeing if they can now see what your iOS device is looking at.