Hetzner - great for hosting. Terrible for support

  • Any fellow Hetzner users here ? I’ve been using Hetzner for the VPS that this platform runs on for some time now. Performance-wise, it’s perfect. I have a 4 x CPU, 160Gb SSD disk, and 16Gb RAM server running and it’s pretty stable - apart from the server suddenly going offline every x days due to a bug in the IPv6 DHCP package. The workaround for this was to set a static IP instead - see this


    Essentially, it means I had to configure this server as below

    Existing netplan

    # This file is generated from information provided by the datasource.  Changes
    # to it will not persist across an instance reboot.  To disable cloud-init's
    # network configuration capabilities, write a file
    # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
    # network: {config: disabled}
        version: 2
                dhcp4: true
                addresses: ['ipv6 address']
                gateway6: fe80::1
                    addresses: [,]
                    macaddress: macaddress
                set-name: eth0

    Proposed change

      version: 2
      renderer: networkd
          - ip address/32
          - ipv6 address/64
          - to:
            via: gateway
            on-link: true
          gateway6: fe80::1
            macaddress:  macaddress
          set-name: eth0

    Then create file /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

    Add the below

      config: disabled

    Save, and then reboot (or at the very least, stop and restart netplan)

    The point here is that those unfamiliar with the inner workings of Linux will have absolutely NO CLUE what to modify here. This is one of the downsides of having an unmanaged VPS - there is ZERO support (I’m going to be writing an independant blog article about this soon). For me, this isn’t the end of the world, but it could well mean disaster for anyone else just starting out. Then, there’s the total lack of support when I asked them about unexpectedly high TTFB (Time To First Byte), which is around 200ms for a flat HTML file - it should ideally be less than 50. In addition, this platform hits anywhere between 400-600ms for TTFB. This isn’t great, but there isn’t much I can do to reduce it (there’s another article I’m going to write about that as well). Hetzner’s response ?

    First, they asked me to use mtr to conduct 1000 traces from my PC to the VPS and vice-versa. Not only does each run take around 18 minutes to complete, but you have to copy the results, and email them back to the support desk. Once these were “reviewed” (I’m using quotes here as there really isn’t any useful information as such), they reverted with

    Dear Client,
    the MTR does not show any issue, so we can’t see any network issue on our side. Also we’ve checked the hostsystem and can’t see any issue with it as well. Please check your server logs.

    No sh*t, Sherlock. I could have told you that myself. Check my server logs ? You don’t think I’ve already done that ?

    And so here’s the lesson. Hetzner absolutely EXCEL when it comes to a stable machine, cost to run, backups, and everything else - until you need support, and that’s where it all falls apart sadly.

    You’re on your own there… Be warned 🙂

  • Just coming back here to post an update for this thread. Since setting a static IP address, the VPS I’m running has been ROCK solid with absolutely no downtime whatsoever.

  • @phenomlab I’m using VPS on Hetzner over 2 years. Great provider and very cheap then competitors

  • @cagatay same here. Was previously an IONOS user, but moved to Hetzner to realise both savings and performance increase and have never looked back.

  • 0 Votes
    2 Posts

    @DownPW Interesting. I do wonder however if this project was forked because of the CVE’s identified, or the fact that the core developer of NGINX doesn’t like the idea of his brainchild being consumed by a large corporate. We’ve seen this happen before on numerous occasions such as the below

    OwnCloud -> Forked to NextCloud MySql -> Forked to MariaDB Open Office -> Forked to Libre Office

    I’d like to think that this is all in the name of keeping Open Source software free, although part of me thinks that forks are created for other reasons aside from the original developer not agreeing or being palatable to the direction acquisition typically brings to the table. You cannot expect a larger entity to purchase your Open Source software and for it to remain in its current format, or to operate autonomously. This is not how larger corporate entities operate.

  • 4 Votes
    3 Posts

    @phenomlab said in Come back PhP, all is forgiven!:

    I used IONOS for a while, and realised that Hetzner provide a much better deal for those experienced with Linux. I know @cagatay, @DownPW and myself all use Hetzner, and I think @Madchatthew (whom I haven’t seen for a while ) was also considering taking their services. There’s an affiliate link below if you’d like to go down that route

    Yep hetzner is very very cool and I haven’t seen before a panel magentment as complete as him : backup, snapshot, add cpu core, ram is easy.

    @phenomlab said in Come back PhP, all is forgiven!:

    Obtaining a VPS comes with the double-edged sword of being completely on your own with no support, although by using Virtualmin, you’ll find life so much simpler (something I know @DownPW can attest to, as I managed to convert him )

    Yep Virtualmin is very cool 😉
    And it makes life much easier for server management, domain, nginx and so on even if it is always better to know how to do all this in CLI. I would say that the 2 are really complementary

  • Is nginx necessary to use?

    Moved Solved Hosting
    1 Votes
    2 Posts

    @Panda said in Cloudflare bot fight mode and Google search:

    Basic question again, is nginx necessary to use?

    No, but you’d need something at least to handle the inbound requests, so you could use Apache, NGINX, Caddy… (there are plenty of them, but I tend to prefer NGINX)

    @Panda said in Cloudflare bot fight mode and Google search:

    Do these two sites need to be attached to different ports, and the ports put in the DNS record?

    No. They will both use ports 80 (HTTP) and 443 (HTTPS) by default.

    @Panda said in Cloudflare bot fight mode and Google search:

    Its not currently working, but how would the domain name know which of the two sites to resolve to without more info?
    Currently it only says the IP of the whole server.

    Yes, that’s correct. Domain routing is handled (for example) at the NGINX level, so whatever you have in DNS will be presented as the hostname, and NGINX will expect a match which once received, will then be forwarded onto the relevant destination.

    As an example, in your NGINX config, you could have (at a basic level used in reverse proxy mode - obviously, the IP addresses here are redacted and replaced with fakes). We assume you have created an A record in your DNS called “proxy” which resolves to, so fully qualified, will be proxy.sudonix.org in this case.

    The web browser requests this site, which is in turn received by NGINX and matches the below config

    server { server_name proxy.sudonix.org; listen; root /home/sudonix.org/domains/proxy.sudonix.org/ogproxy; index index.php index.htm index.html; access_log /var/log/virtualmin/proxy.sudonix.org_access_log; error_log /var/log/virtualmin/proxy.sudonix.org_error_log; location / { proxy_set_header Access-Control-Allow-Origin *; proxy_set_header Host $host; proxy_pass http://localhost:2000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Api-Key $http_x_api_key; } location /images { index index.php index.htm index.html; root /home/sudonix.org/domains/proxy.sudonix.org/ogproxy; } fastcgi_split_path_info "^(.+\.php)(/.+)$"; listen ssl http2; ssl_certificate /home/sudonix.org/domains/proxy.sudonix.org/ssl.combined; ssl_certificate_key /home/sudonix.org/ssl.key; }

    The important part here is server_name proxy.sudonix.org; as this is used to “map” the request to the actual domain name, which you can see in the root section as root /home/sudonix.org/domains/proxy.sudonix.org/ogproxy;

    As the DNS record you specified matches this hostname, NGINX then knows what to do with the request when it receives it.

  • VPS Provider

    Solved Hosting
    6 Votes
    7 Posts

    @phenomlab thank you very much. I will use that link when I set up my new server.

    Thanks again!

  • Viewing Permission.

    Solved General
    12 Votes
    33 Posts


    Ah Mark you are a star. Thank you very much. I just logged on and seen someone had worked their magic 🙂

    Again it is very much appreciated.

  • NodeBB Mess / Mongo DB

    Solved Configure
    4 Votes
    8 Posts

    @Sampo2910 🙂 You’ll get that error if the .json file isn’t updated for latest release compliance - but you can still install from the CLI by using npm install nodebb-plugin-whateveritis

  • Domain name factors

    1 Votes
    16 Posts

    @phenomlab said in Domain name factors:

    @jac Yes, but don’t forget that Matomo (and most browsers) alike will allow you to “opt out” or not be tracked, so you can’t really rely on these 100%.

    Absolutely, very true pal.

  • Virtualmin Letsencrypt Renewal

    Solved Hosting
    1 Votes
    13 Posts

    @gotwf said in Virtualmin Letsencrypt Renewal:

    I favor KISS engineering

    Then I think you’ll be able to appreciate this