Ensuring Your Server Is Accessible
This guide explains how you can ensure your SimpleHelp server is publicly accessible so your customers can reach it.
Accessibility Overview
If you plan on offering remote support to customers you need to make sure your SimpleHelp server is publicly accessible on the internet.
There are generally two barriers that may prevent SimpleHelp from being publicly accessible:
- Restrictions on the physical or virtual machine it is being hosted on (e.g. a firewall)
- Restrictions on the network it is being hosted on (e.g. a router performing NAT)
This guide will walk you through any issues that may stand in your server's way.
Determining Server Accessibility
The first step to take is to determine if your SimpleHelp server is publicly accessible or not. If it is not publicly accessible you can use these steps to determine where the block is:
Check the server is available on the hosting machine
If you can open the SimpleHelp server in a browser on the machine hosting it then you know your SimpleHelp server is up and running OK.
Check the server is available on the local network
If you are hosting your server on a local network behind a router then you should check if you can open the SimpleHelp welcome page (or any other) in a browser from any other machine on the network. If you can then you can be confident that the Local Firewall on the machine hosting your SimpleHelp server is OK.
Check availability from the outside internet
The last step is to check if your SimpleHelp server is available from the outside internet. Using a machine or other device (mobile phones and tablets on a cellular network are a simple an easy option) you should try to load any page on your SimpleHelp server. If it loads your server is configured for outside access and you don't need to continue any further with this guide.
Identifying Listening Ports
To configure access via a firewall or router you will need to know what ports you need to allow access to.
If you log in as administrator to your SimpleHelp server and switch to the Administration tab, the Network Settings section will list all the ports your SimpleHelp server is listening on. These are the ports you should allow access to.
Configuring a Local Firewall
If based on the checks above you have determined that the Local Firewall on the machine hosting your SimpleHelp server is blocking then you can configure it to allow access. You may also in some cases find other security software is blocking the connections such as Antivirus software.
TCP and UDP, not just HTTP
To configure access you should allow all incoming traffic (TCP and UDP) to all the ports that your SimpleHelp server is configured to listen on. For example, if SimpleHelp is listening on ports 80 and 443, then incoming access should be allowed on 80 and 443, for both TCP and UDP. Setting up HTTP-only access or Web Forwarding will not be sufficient. If you are configuring a Microsoft ISA server for example you will need to create a rule for direct TCP and UDP access (all traffic).
Checking Accessibility
Once you have changed any settings you can refer back to the Determining if your server is accessible section above to check if the changes have been successful.
Configuring a Router or Firewall
Based on the checks above, if you determine that something on your server's local network is blocking it then you can configure the router to allow access.
NAT
Network routers often perform NAT (Network Address Translation) - a kind of mapping between the internet and your local network which allows multiple computers on your internal network to access the internet outside your network.
Although your computers can get out to the internet, access doesn't automatically work both ways. If your server is located on your internal network then anyone outside your network (e.g. on the internet) cannot make a direct connection to your SimpleHelp server. Instead, they will have to connect to your router and your router will have to forward that connection to your SimpleHelp server.
Ports and LAN IP
In addition to the ports your SimpleHelp server runs on (see above) you will also need to know the network IP address (LAN IP address) of your SimpleHelp server. This will typically be listed under from a machine on the same network in your Web Addresses file (the CustomerWebAddresses.txt file in the SimpleHelp folder of your installation).
Port Forwarding or Virtual Server
Port forwarding rules notify the router that you wish to forward all incoming connections on a particular port to an internal IP address. Port forwarding rules typically include the following information:
- Incoming port number - the port number that is incoming into the router that should be forwarded.
- Incoming protocol - the protocol for which this rule applies, typically TCP or UDP.
- Target IP address - the IP address of a machine on the local network behind the router.
- Target port - the port number of the target machine that incoming connections should be forwarded to.
You can now log on to your router and look for something called Port Forwarding or Virtual Server. In here you should configure a rule which forward incoming TCP and UDP connections on the relevant router port (e.g. 80) to your SimpleHelp server LAN IP and port (e.g. 1.2.3.4 and 80). This will mean that any connections your router receives on port 80, it will automatically forward straight to your SimpleHelp server.
You can then check your routers external IP address by visiting: www.simple-help.com/whatismyip in your web browser and use that in combination with the port you set up as your externally visible web address.
IIS, Apache and Reverse Proxying
Those with experience of web servers and web sites sometimes look to how to configure SimpleHelp to use Apache, IIS or some other web server. Rather than being an add-on or 'site' that can be used in a common web server like Apache or IIS, SimpleHelp is in fact a full web server just like Apache or IIS.
As such it requires its own port and IP to listen on and runs its own connections. In addition although SimpleHelp acts as a web server to browser requests it also runs a variety of other connections on the ports it uses such as TCP and UDP. For this reason SimpleHelp does not support 'reverse proxying' where an Apache or IIS server attempts to forward HTTP requests as these will not cover all the connection types that SimpleHelp uses.