QGTunnel Setup Guide for AWS and SMTP

    Table of contents

    To setup QGTunnel for QuotaGuard on Amazon Web Services (AWS) with a SMTP endpoint connection, we suggest you go with the SOCKS proxy using our QGTunnel software. Here are some setup instruction to get you started:

    Step 1: Download QGTunnel and Save to Root of Your Project

    curl https://s3.amazonaws.com/quotaguard/qgtunnel-latest.tar.gz | tar xz

    Step 2: Log in to QuotaGuard Dashboard and Create the Tunnel

    In the top right menu, go to Setup (Gear Icon), click on QGTunnel Configuration, then “Create a Tunnel”.

    Fill in the following data:

    Remote Destination: tcp://hostname.for.your.server.com:25
    Local Port: 25
    Transparent: true
    Encrypted: false

    This setup assumes that the remote SMTP server is located at hostname.for.your.server.com and is listening on port 25. This is usually the default port.

    The Local Port is the port number that QGTunnel will listen on. In this example we set it to 2525, because port 25 is in the reserved port range (0-1023) and may not be accessible on your platform.

    Transparent mode allows QGTunnel to override the DNS for hostname.for.your.server.com to, which redirects traffic to the QGTunnel software. This means you can connect to either hostname.for.your.server.com or to connect through the tunnel.

    Encrypted mode can be used to encrypt data end-to-end for protocols that are not encrypted already.

    Step 3: Change Your Code to Connect Through the Tunnel

    With transparent mode you will only have to change to connect to port 2525 instead of 22. You can also connect to

    Without transparent mode, you will want to connect to

    Step 4: Change your Startup Code:

    Change the startup code that starts up your application. In many platforms, this is done with a Procfile. Basically you just need to prepend your startup code with “bin/qgtunnel”.

    So for a Procfile that was previously:

    web: your-application your arguments

    you would now want:

    web: bin/qgtunnel your-application your arguments

    Step 5: Setup the Environment Variable QUOTAGUARDSTATIC_URL

    You need to setup the environment variable QUOTAGUARDSTATIC_URL to be equal to your Connection URL in the Setup page of our dashboard.

    If you added us from a cloud provider (AWS, Azure, Heroku, Render, GCP, IBM Cloud, Pivotal, etc) then this is usually done for you. Please note that QGTunnel handles converting the HTTP URL and port to the SOCKS5 URL and port. So either of the connection URLs is fine.

    Step 6: Commit and Push your Code

    Be sure that the file bin/qgtunnel is added to your repository.

    If you are using transparent mode, be sure that vendor/nss_wrapper/libnss_wrapper.so is also added to your repository.

    If you are not using transparent mode, you will want to set the environment variable QGTUNNEL_DNSMODE to DISABLED to avoid seeing an error message in your logs.

    Step 7: Troubleshoot Any Problems

    If you have problems, enable the environment variable QGTUNNEL_DEBUG=true and then restart your application while watching the logs.

    If you can’t figure it out, send QuotaGuard Support the information in the logs. Please redact any sensitive information, including your QuotaGuard connection URL because it contains your password.


    After you get everything working, we suggest you download your QGTunnel configuration from our dashboard as a .qgtunnel file and put that in the root of your project. This prevents your project from relying on the QuotaGuard website during startup.

    Alternatively you can put the contents of the downloaded configuration file in a QGTUNNEL_CONFIG environment variable.

    By following these steps, you can set up QGTunnel for AWS SMTP connections using QuotaGuard’s Static IP services. If you have any questions or issues, contact QuotaGuard Support for assistance.

    Ready to Get Started?

    Get in touch or create a free trial account