CINXE.COM
How do I setup custom nameservers? - Krystal Hosting Knowledge Base
<!DOCTYPE html> <html lang="en"> <head> <title>How do I setup custom nameservers? - Krystal Hosting Knowledge Base</title> <meta name="description" content="Custom nameservers allow you to use your domain name in the nameserver name. Find out how to create custom nameservers here in this Krystal help article."> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" href="https://files.helpdocs.io/8nzbvyta9f/favicon.svg"> <meta property="og:title" content="How do I setup custom nameservers?"> <meta property="twitter:title" content="How do I setup custom nameservers?"> <meta property="og:description" content="Custom nameservers allow you to use your domain name in the nameserver name. Find out how to create custom nameservers here in this Krystal help article."> <meta property="twitter:description" content="Custom nameservers allow you to use your domain name in the nameserver name. Find out how to create custom nameservers here in this Krystal help article."> <meta property="og:type" content="article"> <meta property="twitter:card" content="summary_large_image"> <meta property="og:image" content="https://files.helpdocs.io/8nzbvyta9f/articles/wzp63i9clu/1696253261731/assign-ns-to-domain-image-1.png"> <meta property="twitter:image:src" content="https://files.helpdocs.io/8nzbvyta9f/articles/wzp63i9clu/1696253261731/assign-ns-to-domain-image-1.png"> <meta property="og:url" content="https://help.krystal.io/domains/how-do-i-setup-custom-nameservers"> <meta property="twitter:site" content="https://help.krystal.io"> <meta property="article:published_time" content="2019-02-15T09:54:53Z"> <meta property="article:modified_time" content="2023-10-02T13:28:31Z"> <meta property="og:site_name" content="Krystal Hosting"> <script type="application/ld+json">{"@context":"http://schema.org","@type":"TechArticle","articleBody":"Custom nameservers allow you to use your domain name in the nameserver name - e.g. if your domain is example.co.uk you would be able to use ns1.example.co.uk and ns2.example.co.uk For shared hosting customers, whilst it is possible to set up custom nameservers for your domain we recommend using our default nameservers. Setting up custom nameservers is more often performed by resellers to provide their branded nameserver details to clients. Please be aware in both these cases, with these instructions you will not be running your own DNS server - setting up custom nameservers simply creates 'alias' nameservers using Krystal's nameserver IP address. Should we ever need to change the IP addresses of our nameservers we will publicise this and you will need to re-follow these instructions using the new IP addresses. Failing to do so will result in any domains using your custom nameservers to stop resolving. There are four steps to set up your custom nameserver. Add A records for the new nameserver addresses in DNS cPanel \u003e Domains \u003e Zone Editor \u003e + A Record Enter the new nameservers name (just ns1/ns2 part) and IP address from the table below You'll need to add two A records, one for each of the Cloud hosting or Krystal nameserver IP's - using the details from the correct table below. We have a separate guide on using the cPanel Zone editor. For Cloud hosting servers where your server name ends in cloudhosting.co.uk IP Address ns1.example.co.uk 77.72.0.13 ns2.example.co.uk 139.162.254.53 For any other Krystal servers the nameservers and their IP addresses are: For all other Krystal servers where your hosting server name ends in krystal.co.uk or uksrv.co.uk IP address ns1.example.co.uk 77.72.0.11 ns2.example.co.uk 139.162.230.184 VPS or Dedicated Server You'll use the IP address(es) of your VPS to create your custom name server records. We have a separate guide on using the cPanel Zone editor. Configure GLUE data for your nameserver addresses (for a visual explanation of what GLUE records do please see the end of this article) To add GLUE records you'll need to login to your Krystal Client Area. Then visit My Domains. and click on the domain you want to add GLUE data to,. then select Register Nameservers from the right-hand menu.. As for the A records, you added initially you'll need to register two new nameservers; ns1 and ns2 with their respective IP address from the table in Step 1.. Once you have the A records and GLUE records in place you can assign the new nameservers to your domain. This final step differs depending upon whether you are a reseller or shared host client: If you are a reseller you'll be able to configure these new nameservers in WHM ( WHM \u003e Server Configuration - Basic WebHost Manager Setup ) and also edit DNS zones to update the NS records for your domain. If you are a shared hosting client you will need to log a support ticket detailing your new nameserver names and we will update your NS records.. What are GLUE records and why do things break without it? When you look up a website name, let's say www.krystaldemo.co.uk , this is a simplified explanation of the process (assuming the domain isn't cached by your ISP) Your PC asks your ISP's DNS server for the IP address of www.krystaldemo.co.uk. Your ISP (if it hasn't cached the information) then goes to the.uk root nameservers and asks who is responsible for krystaldemo.co.uk. The.uk root nameservers return the answer - ns1.krystal.co.uk is responsible. Your ISP then has to work out the IP address of ns1.krystal.co.uk, so it asks the.uk root servers who is responsible for krystal.co.uk. The.uk root nameservers return the answer - ns1.krystal.co.uk is responsible. Your ISP's DNS is then stuck because it can't work out the IP address of ns1.krystal.co.uk So how does it work with GLUE data? Using the same example as above (looking up www.krystaldemo.co.uk). Your PC asks your ISP's DNS server for the IP address of www.krystaldemo.co.uk. Your ISP (if it hasn't cached the information) then goes to the.uk root nameservers and asks who is responsible for krystaldemo.co.uk. The.uk root nameservers return the answer - ns1.krystal.co.uk is responsible AND they give the GLUE data, which is the IP address of ns1.krystal.co.uk. Your ISP then asks ns1.krystal.co.uk directly, using its IP address, for the IP address of www.krystaldemo.co.uk. Our DNS answers and gives the IP address for the website www.krystaldemo.co.uk back to your ISP. Your ISP now returns the completed query back to your PC, so your PC now knows the IP address of the Krystal web server that holds your website. Your PC now connects to the correct web server IP address and requests your website. Your website is served!","articleSection":"Domains","author":{"@type":"Person","image":"https://www.gravatar.com/avatar/c7d18870382596718fcad368bbae3ecd?d=mm\u0026s=150","name":"Ben Oates"},"dateCreated":"2019-02-15T09:54:53Z","dateModified":"2023-10-02T13:28:31Z","datePublished":"2019-02-15T09:54:53Z","headline":"How do I setup custom nameservers?","image":"https://files.helpdocs.io/8nzbvyta9f/articles/wzp63i9clu/1696253261731/assign-ns-to-domain-image-1.png","mainEntityOfPage":"https://help.krystal.io/domains/how-do-i-setup-custom-nameservers","publisher":{"@type":"Organization","logo":"https://files.helpdocs.io/8nzbvyta9f/logo.png?t=1669998786961","name":"krystal"},"thumbnailUrl":"https://files.helpdocs.io/8nzbvyta9f/articles/wzp63i9clu/1696253261731/assign-ns-to-domain-image-1.png","url":"https://help.krystal.io/domains/how-do-i-setup-custom-nameservers","version":23,"wordCount":784}</script> <link rel="canonical" href="https://help.krystal.io/domains/how-do-i-setup-custom-nameservers"> <link rel="stylesheet" href="https://cdn.helpdocs.io/css/highlightjs-github-gist.min.css?v=1732636207"> <!-- [Begin] HelpDocs Required Additions --> <script src="https://cdn.helpdocs.io/js/jquery.min.js?v=1565690126"></script> <script src="https://cdn.helpdocs.io/js/tether.min.js?v=1565690126"></script> <script src="https://cdn.helpdocs.io/js/bootstrap.min.js?v=1565690126"></script> <link rel="stylesheet" href="https://cdn.helpdocs.io/css/bootstrap.min.css?v=1565690126"> <link rel="stylesheet" href="https://cdn.helpdocs.io/css/font-awesome.min.css?v=1565690126"> <link rel="stylesheet" href="https://cdn.helpdocs.io/css/tether.min.css?v=1565690126"> <link rel="stylesheet" href="https://cdn.helpdocs.io/css/glyphicons.css?v=1565690126"> <!-- [End] HelpDocs Required Additions --> <link href="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.min.css" type="text/css" rel="stylesheet"><script src="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js" type="text/javascript"></script><script type="text/javascript"> (function() { $(function() { $('#article img').each(function() { $(this).wrap('<a></a>'); $(this).parent().addClass('lightbox').attr('href', $(this).attr('src')); }); $('.lightbox').magnificPopup({ type: 'image', closeOnContentClick: true, mainClass: 'mfp-img-mobile', image: { verticalFit: true } }); }); })();</script> <!-- Google tag manager --> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-T6LWQLRB'); </script> <script> /* Method to remove potential duplicated articles */ (function() { $(function() { var seenURLs = []; var removeEls = []; $('.article-title-link').each(function(i, el) { var url = $(this).attr('href'); if (seenURLs.indexOf(url) > -1) { removeEls.push(el); return; } seenURLs.push(url); }); for (var i = 0; i < removeEls.length; i++) { $(removeEls[i]).remove(); } }); })(); /* * @name DoubleScroll * @desc displays scroll bar on top and on the bottom of the div * @requires jQuery * * @author Pawel Suwala - http://suwala.eu/ * @author Antoine Vianey - http://www.astek.fr/ * @version 0.5 (11-11-2015) * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * Usage: * https://github.com/avianey/jqDoubleScroll */ (function( $ ) { jQuery.fn.doubleScroll = function(userOptions) { // Default options var options = { contentElement: undefined, // Widest element, if not specified first child element will be used scrollCss: { 'overflow-x': 'auto', 'overflow-y': 'hidden', 'height': '20px' }, contentCss: { 'overflow-x': 'auto', 'overflow-y': 'hidden' }, onlyIfScroll: true, // top scrollbar is not shown if the bottom one is not present resetOnWindowResize: false, // recompute the top ScrollBar requirements when the window is resized timeToWaitForResize: 30 // wait for the last update event (usefull when browser fire resize event constantly during ressing) }; $.extend(true, options, userOptions); // do not modify // internal stuff $.extend(options, { topScrollBarMarkup: '<div class="doubleScroll-scroll-wrapper"><div class="doubleScroll-scroll"></div></div>', topScrollBarWrapperSelector: '.doubleScroll-scroll-wrapper', topScrollBarInnerSelector: '.doubleScroll-scroll' }); var _showScrollBar = function($self, options) { if (options.onlyIfScroll && $self.get(0).scrollWidth <= $self.width()) { // content doesn't scroll // remove any existing occurrence... $self.prev(options.topScrollBarWrapperSelector).remove(); return; } // add div that will act as an upper scroll only if not already added to the DOM var $topScrollBar = $self.prev(options.topScrollBarWrapperSelector); if ($topScrollBar.length == 0) { // creating the scrollbar // added before in the DOM $topScrollBar = $(options.topScrollBarMarkup); $self.before($topScrollBar); // apply the css $topScrollBar.css(options.scrollCss); $(options.topScrollBarInnerSelector).css("height", "20px"); $self.css(options.contentCss); // bind upper scroll to bottom scroll $topScrollBar.bind('scroll.doubleScroll', function() { $self.scrollLeft($topScrollBar.scrollLeft()); }); // bind bottom scroll to upper scroll var selfScrollHandler = function() { $topScrollBar.scrollLeft($self.scrollLeft()); }; $self.bind('scroll.doubleScroll', selfScrollHandler); } // find the content element (should be the widest one) var $contentElement; if (options.contentElement !== undefined && $self.find(options.contentElement).length !== 0) { $contentElement = $self.find(options.contentElement); } else { $contentElement = $self.find('>:first-child'); } // set the width of the wrappers $(options.topScrollBarInnerSelector, $topScrollBar).width($contentElement.outerWidth()); $topScrollBar.width($self.width()); $topScrollBar.scrollLeft($self.scrollLeft()); } return this.each(function() { var $self = $(this); _showScrollBar($self, options); // bind the resize handler // do it once if (options.resetOnWindowResize) { var id; var handler = function(e) { _showScrollBar($self, options); }; $(window).bind('resize.doubleScroll', function() { // adding/removing/replacing the scrollbar might resize the window // so the resizing flag will avoid the infinite loop here... clearTimeout(id); id = setTimeout(handler, options.timeToWaitForResize); }); } }); } }( jQuery )); $(document).ready(function() { $('.double-scroll').doubleScroll(); }); </script> <style> @import url('https://cdn.krystal.io/fonts/email-fonts.css'); /* General */ details { background-color: #e398ea; border-radius: 25px; padding: 10px;. } body { background: #F6F7F9; min-height: 100%; overflow-x: hidden; font-family: 'Borna', sans-serif; font-weight: 400; font-style: normal; -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; -webkit-font-feature-settings: "pnum"; font-feature-settings: "pnum"; font-variant-numeric: proportional-nums; color: #4D5A6D; } .category-title { color: #FFFFFF; background: #182229; padding: 1px 5px; font-size: 0.8em; display: inline-block; border-radius: 3px; font-weight: normal; } header>.container-fluid { margin: 0; padding: 0; } .large-heading-text { font-weight: 600; margin-bottom: 1em; } .hvr-card { box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12); border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 4px; overflow-x: hidden; transition: box-shadow 0.5s ease; margin-bottom: 2rem; } .hvr-card:hover { box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.10) } .card-block { padding: 1em 1em 0em 1em; min-height: 270px; } a.card-link > .card-block { display: flex; flex-direction: column; } a.card-link .card-description { flex-grow: 1; } #article a { color: #3E4856 !important; } #home .card-block { min-height: 435px; } #related .card-block, #search-articles .card-block { min-height: 0px !important; } .card-title { font-size: 20px; color: #182229; /* CHANGE TO DYNAMIC */ } .card-link:hover { text-decoration: none; } .card-link:focus { text-decoration: none; } .card-description { color: #4D5A6D; line-height: 20px; font-size: 14px; } .small-capital-text { font-size: 0.9rem; font-weight: 600; color: #4D5A6D; text-transform: uppercase; } .small-capital-text a { color: #4D5A6D; /* CHANGE TO DYNAMIC */ text-decoration: none; } .author-text span:first-of-type { padding-left: 0.5em; } .author-text { border-top: 1px solid rgba(0, 0, 0, 0.06); padding-top: 1em; } .card-link p.author-text { margin-bottom: 0; } .author-image { max-height: 30px; display: inline-block; border-radius: 4px; border: 2px solid white; } .author-image:not(:first-of-type) { margin-left: -10px; } /* Header Navigation Bar */ .top-bar{ background: #1e1b3d; color: #fff; padding-bottom: 8px; padding-top: 8px; font-size: 0.8em; } .top-bar-title{ color: hsla(0,0%,100%,.5); font-weight: bold; } /* Header */ @media only screen and (min-device-width: 320px) { .navbar { margin-left: -15px; margin-right: -15px; } } @media only screen and (min-width: 481px) { .navbar { margin-left: -30px; margin-right: -30px; } } .bg-faded { height: 170px; background-color: #FF519E; /* CHANGE TO DYNAMIC */ padding: 30px 45px; } .navbar-brand>span { color: white; /* CHANGE TO DYNAMIC */ font-weight: 600; } .nav-items { float: right; } @media only screen and (min-device-width: 0px) and (max-device-width: 480px) { li.custom-link, li.statuspage { display: none; } } .navbar-light .navbar-nav .nav-link { color: rgba(255, 255, 255, .7); /* CHANGE TO DYNAMIC */ transition: color 0.25s ease; } .navbar-light .navbar-nav .nav-link:hover { color: rgba(255, 255, 255); /* CHANGE TO DYNAMIC */ } .btn.btn-primary.btn-contact { background-color: white; border: none; color: #3E4856; /* CHANGE TO DYNAMIC */ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16); top: 0px; transition: box-shadow 0.5s ease; } .btn.btn-primary.btn-contact:hover { box-shadow: 0 7px 20px 0 rgba(0, 0, 0, 0.10); } #lang-dropdown { text-transform: uppercase; background-color: white; color: #ff519e; /* CHANGE TO DYNAMIC */ padding: 0.3em 1em 0.3em 1em; border-radius: 4px; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16); transition: box-shadow 0.5s ease; } #lang-dropdown:hover { box-shadow: 0 7px 20px 0 rgba(0, 0, 0, 0.10); } #lang-dropdown:before { width: 20px; content: ""; background-image: url('https://files.helpdocs.io/C40DJRPqlj/articles/uTwGKeIXki/1526803942629/world-icon-svg'); /* CHANGE TO DYNAMIC */ background-repeat: none; height: 20px; margin: 0.2em 0.5em 0 0; float: left; } .dropdown-menu { box-shadow: 0 7px 20px 0 rgba(0, 0, 0, 0.10); border: none; } /* Search */ #instant-search input { margin-top: -2em; border-radius: 4px; padding: 1em; background-color: rgb(255, 255, 255); border: none; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16); -webkit-appearance: none; width: 100%; display: block; transition-property: box-shadow; transition-duration: .5s; transition-timing-function: ease; font-size: 1.3rem; } #instant-search input::placeholder { color: #111; } #instant-search input:focus { box-shadow: 0 2px 30px 0 rgba(0, 0, 0, 0.20); -webkit-appearance: none; outline: none; caret-color: #FF519E; /* CHANGE TO DYNAMIC */ } #searchresults { margin-top: -0.2em; } #search-container .fa { float: right; margin-right: 1em; margin-top: -2em; font-size: 1.15em; position: relative; z-index: 2; color: grey; } #hits { background-color: white; padding: 0 1em; box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.16); border-radius: 0 0 4px 4px; } .search-article-title { font-size: 20px; color: #3E4856; /* CHANGE TO DYNAMIC */ } .search-article-link:hover { text-decoration: none; } .search-article-link:focus { text-decoration: none; } .search-article-description { color: #4D5A6D; line-height: 20px; font-size: 14px; } .search-article-row:last-of-type hr { display: none; } /* Content */ #content { max-width: 1500px; display: block; margin: 0 auto; padding: 4em 0 0 0; } /* Categories */ #categories { margin-top: 2em; } #breadcrumbs { font-size: 14px; } #breadcrumbs a { margin-left: 3px; margin-right: 3px; } #breadcrumbs a:first-of-type { margin-left: 0; } .category-icon { max-height: 70px; color: #4D5A6D; /* CHANGE TO DYNAMIC */ padding-bottom: 1.15em; } /* Category page */ #subcategories { margin: 0em -12em 2em -12em; background-color: rgba(0, 0, 0, 0.02); border-radius: 4px; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); padding: 1em 11em; } #subcategories .card { margin-bottom: 1em; } /* Article */ .full-article-card { border: 0px solid rgba(0, 0, 0, 0); border-radius: 4px; padding: 1.5em 2em; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12); background-color: white; width: 100%; max-width: 1000px; margin: 0 auto; /* Center align the element horizontally */ } .full-article-author-meta { background-color: rgba(0, 0, 0, 0.02); padding: 1em 2em; margin: 2em -2em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); } .full-article-author-image { border-radius: 4px; max-height: 40px; display: inline-block; } #article .p:not(.meta), #article .card-block #htmlWithToc p:not(.meta) { font-size: 17px; } #article h3, h4, h5 { margin: 1.1em 0 0.5em 0; } #article table { margin: 2em -3em; display: block; overflow-x: auto; } #article thead { background-color: rgba(0, 0, 0, 0.03); border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); } #article th { padding: 1em; text-align: left; font-weight: 600; } #article tr:nth-child(even) { background-color: rgba(0, 0, 0, 0.02); } #article td { padding: 1em; border-right: 1px solid rgba(0, 0, 0, 0.06); font-size: 14px; min-width: 15em; } #article table>tbody>tr>td>pre { border-top: none; border-bottom: none; border-radius: 4px; margin: 0; padding: 1em; } #article ol { counter-reset: li; margin-left: 0; padding-left: 0; margin-top: 0; margin-bottom: 1rem; } #article ol>li { position: relative; margin: 0 0 6px 2em; padding: 0.3em 8px; list-style: none; } #article ol>li:before { /* color: #e80074; border-color: #ec0e79; background-color: #ffeaf4; */ color: #4D5A6D; border-color: #4D5A6D; background-color: #F6F7F9; content: counter(li); counter-increment: li; position: absolute; top: 0.1em; left: -2em; box-sizing: border-box; width: 1.5em; height: 1.5em; margin-right: 0.2em; margin-top: 0.4em; border-style: none; border-radius: 50%; line-height: 1.4em; text-align: center; } #article ol ol>li:before { content: counter(li, lower-latin); } #article ol ol ol>li:before { content: counter(li, lower-roman); } #article ul { list-style: none; padding: 0; font-size: 17px; margin: 1em 0; } #article ul>li { padding-left: 1em; text-indent: -.7em; } #article ul>li::before { content: "•"; padding-right: 0.25em; position: relative; top: 0.10em; font-size: 1.5em; /* color: #FF519E; */ color: #4D5A6D; } #article ul ul { margin: 0; } #article img { max-width: 100%; } #article pre { background-color: rgba(0, 0, 0, 0.03); padding: 2em 2em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); display: block; overflow-x: auto; } #article pre:before { content: attr(data-content); display: table; clear: both; text-transform: uppercase; font-size: 10px; padding-bottom: 1em; font-weight: 700; color: rgba(0, 0, 0, 0.20); } #article .tip-callout { background-color: #ddf5ff; margin: 2em 0; padding: 1em 1em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); padding-left: 3em; text-indent: -3em; } #article .tip-callout:before { content: '\f075'; margin-right: .75em; font-family: FontAwesome; color: white; padding: 0.5em; background-color: #36c6fe; border-radius: 4px; display: initial; margin-left: 0.3em; } #article .tip-callout a { color: #0a769e; font-weight: bold; text-decoration: none; text-indent: initial; } #article .tip-callout a:hover { cursor: pointer; } #article .note-callout { background-color: #fff5dd; margin: 2em 0; padding: 1em 1em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); padding-left: 3em; text-indent: -3em; } #article .note-callout:before { content: '\f05a'; margin-right: .75em; font-family: FontAwesome; color: white; padding: 0.5em; background-color: #ffbc00; border-radius: 4px; display: initial; margin-left: 0.3em; } #article .note-callout a { color: #c1961d; font-weight: bold; text-decoration: none; text-indent: initial; } #article .note-callout a:hover { cursor: pointer; text-decoration: underline; } #article .warning-callout { background-color: #ffd8d8; margin: 2em 0; padding: 1em 1em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); padding-left: 3em; text-indent: -3em; } #article .warning-callout:before { content: '\f071'; margin-right: .75em; font-family: FontAwesome; color: white; padding: 0.5em; background-color: #ff0000; border-radius: 4px; display: initial; margin-left: 0.3em; } #article .warning-callout a { color: #b51212; font-weight: bold; text-decoration: none; text-indent: initial; } #article .warning-callout a:hover { cursor: pointer; } #article .inline-code { color: #383a3c; } #article blockquote { background-color: rgba(0, 0, 0, 0.03); margin: 2em -3em; padding: 2em 3em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); display: block; overflow-x: auto; font-style: italic; } #article a { color: #3E4856; font-weight: 600; } #article a:after { content: '\00a0 \f08e'; font-family: FontAwesome; font-size: .75em; } #article #feedback { background-color: rgba(0, 0, 0, 0.02); border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 4px; padding: 0em 1em 1em 1em; width: 100%; } #article a.lightbox:after, #breadcrumbs a:after { content: ''; } #article #feedback h3 { text-align: center; font-weight: 500; } #article #feedback .btn-group { width: 100%; } #article #feedback .btn-group .btn { width: 33%; opacity: 0.6; transition: opacity 0.5s ease; } #article #feedback .btn-group .btn:hover { opacity: 1; } #article #feedback .thanks { text-align: center; } #article #feedback i { display: block; } #article #related { text-align: center; background-color: rgba(0, 0, 0, 0.02); border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.06); padding: 0em 1em 1em 1em; } #article #related>ul { list-style: none; } #article #related>ul>li { padding-left: 0; } #article #related ul>li::before { display: none; } @media only screen and (min-width: 70em) #article #toc { position: fixed !important; width: 300px; top: 200px; left: 30px; max-height: 500px; overflow-y: scroll; } @media only screen and (min-width: 95em) { #article #toc { position: fixed !important; width: 300px !important; top: 200px !important; left: 30px !important; max-height: 500px !important; overflow-y: scroll !important; } } #article #toc { padding: 20px; margin-bottom: 1em; background-color: rgba(0, 0, 0, 0.03); border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 4px; } #article #toc .card.responsive-toc { padding: 20px; margin-bottom: 1em; background-color: rgba(0, 0, 0, 0.03); border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 4px; } #article #toc::before { font-size: 20px; font-weight: 600; } #article #toc ul { margin: 0; } #article #toc>ul li { margin-top: 0; list-style: none; /* color: #FF519E; */ color: #4D5A6D; } /* Contact Form */ #contact-modal .modal-content { border: none; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12); } #contact-modal .btn-primary { background-color: #182229; /* CHANGE TO DYNAMIC */ border: none; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12); } #contact-modal ul.ticket-deflection-results { list-style: none; padding-left: 5px; text-transform: uppercase; font-size: 0.8em; } /* Krystal Overrides */ #article ol > li br { display: block; width: 10px; height: 1px; content: ' '; margin-top: 10px; } body { font-size: 1.1em } a, a:hover { transition: all .3s; } /*#content { max-width: 1200px; }*/ /*#main {border-bottom:50px solid #333} #main:after {content: "© Krystal Hosting Ltd 2003–2019";position: absolute;color: #fff;font-size: 15px;left: 40px;margin-top: 12px;}*/ #header { height: 240px; /* Old styles background: #3a50b3; background: -moz-linear-gradient(45deg, #3a50b3 0%, #7c1d83 99%); background: -webkit-linear-gradient(45deg, #3a50b3 0%, #7c1d83 99%); background: linear-gradient(45deg, #3a50b3 0%, #7c1d83 99%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3a50b3', endColorstr='#7c1d83', GradientType=1); */ background: #182229; position: relative; z-index: 10; } #header .nav-items { float: none; text-align: center; margin-top: 15px; font-size: 16px; } #header .navbar-nav .nav-item { float: none; display: inline } #header .navbar-nav .nav-item:last-child { display: none } .bg-faded { /* background-image: url(https://krystal.io/images/generic/tile_fragments_lg.png); */ background-color: transparent!important; height: 240px; } .logo { height: 335px; width: 41px; } .navbar-brand>span { display: none } .navbar-brand { float: none; display: block; margin: 0px auto 35px; background-image: url(https://cdn.krystal.io/img/helpdocs-logotype.svg); /* background-image: url(https://cdn.krystal.io/img/krystal_support_logo.svg); background-image: url(https://krystal.io/assets/images/support/logo_lrg_support.svg); */ max-width: 335px; height: 41px; background-repeat: no-repeat; transition: all .3s; } .navbar-brand:hover { opacity: .5; transition: all .3s; } .navbar-light .navbar-nav .nav-link { float: none; display: inline } .nav-link { background: rgba(0, 0, 0, .2); padding: 8px 15px; border-radius: 5px; color: #fff; font-size: 1.2rem; white-space: nowrap; } .nav-link:hover, .nav-link:focus { color: rgba(255, 255, 255); background: rgba(0, 0, 0, .5); transition: all .3s; } .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { color: rgba(255, 255, 255); background: rgba(0, 0, 0, .5); transition: all .5s ease; } #instant-search input { border: 5px solid rgba(0, 0, 0, .05); border-radius: 50px; padding: 1em 1em 1em 2em; } #search-container .fa { margin-right: 1.4em; margin-top: -2.1em; } #hits { border-radius: 4px } .search-article { padding-top: 1em; } .search-article hr { margin-bottom: 0 } .card-link { transition: all .3s; } .card-link:hover { transition: all .3s; opacity: .5 } .card-block { padding: 1.5em; } .card-title { font-size: 22px; font-weight: 600; /* color: #5750A8; */ color: #182229; } #article a, .search-article-title { /* color: #5750A8; */ color: #182229; } body #footer>a { display: none!important } body { /* background-image: url("https://krystal.io/images/generic/tile_fragments_lg.png"); background-color: #fbfcfe; */ background-color: #F7F6F9; } b, strong { font-weight: 600; } .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6, #article #feedback h3 { font-weight: 600; color: #182229; } .full-article-title { margin-bottom: 1em; } @media only screen and (max-width:768px) {} @media only screen and (max-width:576px) { .nav-link { padding: 5px 8px; font-size: 11px } .navbar-nav .nav-item+.nav-item { margin-left: 5px } .navbar-nav .nav-item+.nav-item:last-child { margin-left: 0 } } /*Lightbox CSS*/ .mfp-bg { z-index: 9999 !important; } .mfp-wrap { z-index: 10000 !important; } .lightbox:focus { outline: none !important; } html, body { height: 100% } footer { position: fixed; bottom: 0; left: 0; width: 100%; color: rgba(255, 255, 255, .5); padding: 10px 50px; background: rgba(0, 0, 0, .9); font-size: .8em; text-align: center; } #home .card-block .article-title-link:nth-child(n+6) { display: none; } .fa { font-size: 1rem; padding-right: 0.5rem; } .fa-circle { font-size: 0.8rem; } a.article-title-link { color: #444; } .small-capital-text a { /* color: #5750A8; */ color: #3E4856; } .category-label { display: inline-block; /* Keeps the box sized to the text */ background-color: #e0e0e0; /* Light grey background */ color: #333; /* Dark text color for contrast */ padding: 4px 8px; /* Space around the text */ border-radius: 4px; /* Rounded corners */ font-size: 0.9em; /* Slightly smaller font */ margin-top: 8px; /* Adds space above the label */ } #toc { margin-top: 2.25em; } #article div[*="callout"] a:hover { text-decoration: underline; !important } #article .card-block p:not(.meta), #article .card-block #htmlWithToc p:not(.meta), #article pre, #article td, #article ul { font-size: 1.1rem; } #article #feedback { min-height: max-content; } #article figure { margin: 2rem 0; } #article .full-article-author-meta a:after { content: ''; } #subcategory .card-block { min-height: 135px; } #article-card .card-block { display: flex; flex-direction: column; min-height: 250px; height: auto; } #search-container .fa { margin-right: 1em; margin-top: -2em; position: absolute; top: 30px; right: 20px; } footer { position: absolute; bottom: auto; } /* Columns Mobile responsive */ @media only screen and (max-width:840px) { .card-block { min-height: 465px; } #main { position: relative; } footer { position: absolute; bottom: 32px; } } @media only screen and (max-width:770px) { .card-block { min-height: 470px; } } @media only screen and (max-width:640px) { .card-block { min-height: 393px; } } @media only screen and (max-width:595px) { .card-block { min-height: 478px; } } @media only screen and (max-width:540px) { .card-block { min-height: 345px; } } table.doubleScroll-scroll-wrapper { margin:0 -3em !important; } /* Print CCS copied from Helpdiocs guide added by Mark West 200413 */ @media print { * { overflow: visible !important; } #content, #page { width: 100%; margin: 0; float: none; } @page { margin: 2cm } body { font: 13pt Georgia, "Times New Roman", Times, serif; line-height: 1.3; background: #fff !important; color: #000; } h1 { font-size: 24pt; } h2, h3, h4 { font-size: 14pt; margin-top: 25px; } a { page-break-inside:avoid } blockquote { page-break-inside: avoid; } h1, h2, h3, h4, h5, h6 { page-break-after:avoid; page-break-inside:avoid } img { page-break-inside:avoid; page-break-after:avoid; } table, pre { page-break-inside:avoid; } ul, ol, dl { page-break-before:avoid; } a:link, a:visited, a { background: transparent; color: #520; font-weight: bold; text-decoration: underline; text-align: left; } a { page-break-inside:avoid } a[href^=http]:after { content:" <" attr(href) "> "; } $a:after > img { content: ""; } article a[href^="#"]:after { content: ""; } a:not(:local-link):after { content:" <" attr(href) "> "; } #footer a:after { content: ""; } = .entry iframe, ins { display: none; width: 0 !important; height: 0 !important; overflow: hidden !important; line-height: 0pt !important; white-space: nowrap; } .embed-youtube, .embed-responsive { position: absolute; height: 0; overflow: hidden; } #header, #related, #feedback, #breadcrumbs, #disqus_thread, .hd-admin-bar, hr { display: none; } p, address, li, dt, dd, blockquote { font-size: 100% } code, pre { font-family: "Courier New", Courier, mono; } ul, ol { list-style: square; margin-left: 18pt; margin-bottom: 20pt; } li { line-height: 1.6em; } } </style> <meta property="hd-render" content="hbs"> </head> <body data-article-id="wzp63i9clu" data-category-id="miitk8wvsq" data-search-term="undefined" data-original-search-term="undefined" data-search-result-count="undefined" data-language-code="" data-default-language-code="en" data-account-id="8nzbvyta9f" data-domain="help.krystal.io" data-home-path="/" data-search-placeholder="Help me with..." data-see-more-results-string="See more results" data-all-categories-string="All categories" data-category-title="Domains" data-no-articles-found-string="No articles found" > <div id="main" data-hd-template="customhbs"> <!--<div class="top-bar"> <div class="container"> <span class="top-bar-title">Sales:</span> 0208 050 1337 </div> </div>--> <div id="header"> <div class="container-fluid"> <nav class="navbar navbar-light bg-faded"> <a class="navbar-brand" href="/" aria-label="Back to home"> <span> <img class="img-responsive logo" src="https://files.helpdocs.io/8nzbvyta9f/logo.png?t=1669998786961"> Krystal Hosting </span> </a> <div class="spacer"></div> <div class="nav-items"> <ul class="nav navbar-nav"> <li class="nav-item custom-link"> <a class="nav-link" href="https://krystal.io/client/" target="_blank" rel="noopener"> Client Login </a> </li> <li class="nav-item custom-link"> <a class="nav-link" href="https://krystal.io/contact" target="_blank" rel="noopener"> Contact Us </a> </li> <li class="nav-item custom-link"> <a class="nav-link" href="https://krystal.io/" target="_blank" rel="noopener"> Back to Krystal </a> </li> <li class="nav-item"> <a id="contact-modal-trigger" class="btn btn-primary btn-contact nav-link" href="#" data-toggle="modal" data-target="#contact-modal" data-popup-trigger="contact-modal" >Contact</a> </li> </ul> </div> </nav> </div> <div id="search-container" class="container-fluid search-responsive"> <div class="row"> <div class="col-xs-12 col-md-6 offset-md-3"> <div id="instant-search"> <form action="/search" method="GET"> <input id="hd-query" name="query" placeholder="Help me with..." aria-label="Help me with"> </form> </div> <span class="fa fa-search"></span> </div> </div> </div> <div id="searchresults" class="container-fluid"> <div id="articles" class="row"> <div class="col-xs-12 col-md-6 offset-md-3 col-lg-6 offset-lg-3"> <div id="hits"></div> </div> </div> </div> </div> <div class="container-fluid"> <div id="content"> <style> #toc::before { content: 'Table of Contents' !important; } </style> <div id="article"> <div id="meta" class="row"> <div class="col-xs-12 col-md-10 offset-md-1 col-lg-10 offset-lg-1"> <p id="breadcrumbs" class="small-capital-text"> <a href="/"> All Categories </a> > <a href="/domains" aria-label="Domains"> <span property="name">​Domains</span> </a> </li> > How do I setup custom nameservers? </p> </div> </div> <div id="body" class="row"> <div class="col-xs-12 col-md-10 offset-md-1 col-lg-10 offset-lg-1"> <div class="full-article-card"> <div class="card-block"> <h1 class="full-article-title">How do I setup custom nameservers?</h1> <p class="meta small-capital-text full-article-author-meta author-text"> <img class="img-fluid full-article-author-image" src="https://www.gravatar.com/avatar/c7d18870382596718fcad368bbae3ecd?d=mm&s=150"> <span class="text-muted"> Updated 1 year ago by Ben Oates </span> </p> <p>Custom nameservers allow you to use your domain name in the nameserver name - e.g. if your domain is <code>example.co.uk</code> you would be able to use <code>ns1.example.co.uk</code> and <code>ns2.example.co.uk</code></p><p>For shared hosting customers, whilst it is possible to set up custom nameservers for your domain we recommend using our <a href="/article/rl9sdcjhe2-what-are-krystal-s-name-servers">default nameservers</a>.</p><p>Setting up custom nameservers is more often performed by resellers to provide their branded nameserver details to clients.</p><div class="note-callout">Please be aware in both these cases, with these instructions you will not be running your own DNS server - setting up custom nameservers simply creates 'alias' nameservers using Krystal's nameserver IP address. Should we ever need to change the IP addresses of our nameservers we will publicise this and you will need to re-follow these instructions using the new IP addresses. Failing to do so will result in any domains using your custom nameservers to stop resolving.</div><p>There are four steps to set up your custom nameserver.</p><ol><li>Add <strong>A</strong> records for the new nameserver addresses in DNS <strong>cPanel > Domains > Zone Editor > + A Record</strong><br/>Enter the new nameservers name (just ns1/ns2 part) and IP address from the table below<br/>You'll need to add two <strong>A</strong> records, one for each of the <strong>Cloud hosting</strong> or <strong>Krystal</strong> nameserver IP's - using the details from the correct table below.<br/>We have a separate guide on <a href="/domains/managing-dns-using-c-panel-zone-editor">using the cPanel Zone editor</a>.<table><tbody><tr><td><p><strong>For Cloud hosting servers</strong></p><p>where your server name ends in <code>cloudhosting.co.uk</code></p></td><td><p>IP Address</p></td></tr><tr><td><p><strong>ns1</strong>.example.co.uk</p></td><td><p>77.72.0.13</p></td></tr><tr><td><p><strong>ns2</strong>.example.co.uk</p></td><td><p>139.162.254.53</p></td></tr></tbody></table>For any other Krystal servers the nameservers and their IP addresses are:<table><tbody><tr><td><p><strong>For all other Krystal servers</strong></p><p>where your hosting server name ends in <code>krystal.co.uk</code> or <code>uksrv.co.uk</code></p></td><td><p>IP address</p></td></tr><tr><td><p><strong>ns1</strong>.example.co.uk</p></td><td><p>77.72.0.11</p></td></tr><tr><td><p><strong>ns2</strong>.example.co.uk</p></td><td><p>139.162.230.184</p></td></tr></tbody></table><div class="note-callout"><strong>VPS or Dedicated Server</strong><br/>You'll use the IP address(es) of your VPS to create your custom name server records.</div>We have a separate guide on <a href="/domains/managing-dns-using-c-panel-zone-editor">using the cPanel Zone editor</a>.</li><li>Configure GLUE data for your nameserver addresses (for a visual explanation of what GLUE records do please see the end of this article)<ol><li style="counter-increment:li 0" start="1">To add GLUE records you'll need to login to your <a href="https://krystal.uk/client/">Krystal Client Area</a>.</li><li>Then visit My Domains<figure><img src="https://files.helpdocs.io/8nzbvyta9f/articles/wzp63i9clu/1696253261731/assign-ns-to-domain-image-1.png"/></figure></li><li>and click on the domain you want to add GLUE data to,<figure><img src="https://files.helpdocs.io/8nzbvyta9f/articles/wzp63i9clu/1696253266074/assign-ns-to-domain-image-2.png"/></figure></li><li>then select <strong>Register Nameservers</strong> from the right-hand menu.<figure><img src="https://files.helpdocs.io/8nzbvyta9f/articles/wzp63i9clu/1696253275332/custom-ns-iamge-1.png"/></figure></li><li>As for the A records, you added initially you'll need to register two new nameservers; ns1 and ns2 with their respective IP address from the table in Step 1<figure><img src="https://files.helpdocs.io/8nzbvyta9f/articles/wzp63i9clu/1696253280233/custom-ns-iamge-2.png"/></figure></li></ol></li><li>Once you have the A records and GLUE records in place you can <a href="/domains/how-to-assign-nameservers-to-a-domain">assign the new nameservers to your domain</a>.</li><li>This final step differs depending upon whether you are a reseller or shared host client:<ol><li style="counter-increment:li 0" start="1">If you are a reseller you'll be able to configure these new nameservers in WHM (<strong>WHM > Server Configuration - Basic WebHost Manager Setup</strong>) and also edit DNS zones to update the NS records for your domain.</li><li>If you are a shared hosting client you will need to log a support ticket detailing your new nameserver names and we will update your NS records.</li></ol></li></ol><h4 id="what_are_glue_records_and_why_do_things_break_without_it">What are GLUE records and why do things break without it?</h4><p>When you look up a website name, let's say <code>www.krystaldemo.co.uk</code>, this is a simplified explanation of the process (assuming the domain isn't cached by your ISP)</p><figure><img src="https://files.helpdocs.io/8nzbvyta9f/articles/wzp63i9clu/1550228661865/glue-5.png"/></figure><p> Your PC asks your ISP's DNS server for the IP address of <strong>www.krystaldemo.co.uk</strong>.</p><p> Your ISP (if it hasn't cached the information) then goes to the .uk root nameservers and asks who is responsible for <strong>krystaldemo.co.uk</strong>.</p><p> The .uk root nameservers return the answer - <strong>ns1.krystal.co.uk</strong> is responsible.</p><p> Your ISP then has to work out the IP address of ns1.krystal.co.uk, so it asks the .uk root servers who is responsible for <strong>krystal.co.uk</strong>.</p><p> The .uk root nameservers return the answer - <strong>ns1.krystal.co.uk</strong> is responsible.</p><p>Your ISP's DNS is then stuck because it can't work out the IP address of ns1.krystal.co.uk</p><h4 id="so_how_does_it_work_with_glue_data">So how does it work with GLUE data?</h4><p>Using the same example as above (looking up www.krystaldemo.co.uk).</p><figure><img src="https://files.helpdocs.io/8nzbvyta9f/articles/wzp63i9clu/1550228812746/glue-6.png"/></figure><p> Your PC asks your ISP's DNS server for the IP address of <strong>www.krystaldemo.co.uk</strong>.</p><p> Your ISP (if it hasn't cached the information) then goes to the .uk root nameservers and asks who is responsible for <strong>krystaldemo.co.uk</strong>.</p><p> The .uk root nameservers return the answer - <strong>ns1.krystal.co.uk is responsible AND they give the GLUE data, which is the IP address of ns1.krystal.co.uk</strong>.</p><p> Your ISP then asks ns1.krystal.co.uk directly, using its IP address, for the IP address of <strong>www.krystaldemo.co.uk</strong>.</p><p> <strong>Our DNS answers and gives the IP address for the website www.krystaldemo.co.uk back to your ISP.</strong></p><p> Your ISP now returns the completed query back to your PC, so your PC now knows the IP address of the Krystal web server that holds your website.</p><p> Your PC now connects to the correct web server IP address and requests your website.</p><p> Your website is served!</p> </div> <hr/> <div id="feedback" class="card-block" data-thanks="Got it!"> <h3>How did we do?</h3> <div class="btn-group" role='group' aria-label='Feedback'> <button class="feedback-positive btn btn-link" type='button'> <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg"> <g fill="none" fill-rule="evenodd"> <circle fill="#FFDF86" cx="25" cy="25" r="25"/> <path d="M13.6 18.8a79.3 79.3 0 0 1-6.3-7.3 5.4 5.4 0 0 1 .6-7.6 4 4 0 0 1 4.4-.4c.9.5 1.4 1.2 1.8 2 .2.3.6.3.8 0 .4-.9 1-1.6 2-2a4 4 0 0 1 3.7 0c2.8 1.7 3.1 5.8 1 8a83.7 83.7 0 0 1-6.1 7.3c-.6.5-1.4.5-2 0zm21 .6c-2.5-2.7-4.5-5-6.3-7.6a5.8 5.8 0 0 1 .6-7.9c1.3-1 3-1.2 4.4-.3.9.4 1.4 1.1 1.8 2 .2.3.6.3.8 0 .4-1 1-1.7 2-2.1 1.2-.7 2.6-.7 3.7 0 2.8 1.7 3.1 6 1 8.4a86 86 0 0 1-6.1 7.5c-.6.6-1.4.6-2 0z" fill="#F71272"/> <path d="M10 28c0-1.6 5.9 4.7 15 4.7S40 26 40 28s-5.3 14.8-15 14.8S10 29.6 10 28z" fill="#866B21"/> </g> </svg> </button> <button class="feedback-neutral btn btn-link" type='button'> <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg"> <g fill="none" fill-rule="evenodd"> <circle fill="#FFDF86" cx="25" cy="25" r="25"/> <path d="M16.6 20.7c2.5 0 4.6-3.5 4.6-6 0-2.6-2-5.7-4.6-5.7-2.5 0-4.6 3.1-4.6 5.7 0 2.5 2 6 4.6 6zm17 0c2.5 0 4.6-3.5 4.6-6 0-2.6-2-5.7-4.6-5.7-2.5 0-4.6 3.1-4.6 5.7 0 2.5 2 6 4.6 6z" fill="#866B21"/> <path d="M13.7 35.9h24" stroke="#866B21" stroke-width="4" stroke-linecap="round"/> </g> </svg> </button> <button class="feedback-negative btn btn-link" type='button'> <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg"> <g fill="none" fill-rule="evenodd"> <circle fill="#FFDF86" cx="25" cy="25" r="25"/> <path d="M17.7 27.4c3-.8 6.1-4.3 5.3-7.3-.8-3-1.5 1.3-6.5 2.7-5 1.3-8-2-7.2 1 .8 3 5.4 4.4 8.4 3.6zM25 35c-3.1 0-7 2.5-7 5.6 0 3 1.8-.8 7-.8s7.2 3.9 7.2.8c0-3-4.1-5.6-7.2-5.6zm7.8-7.6c-3-.8-6.2-4.3-5.4-7.3.8-3 1.6 1.3 6.6 2.7 5 1.3 8-2 7.2 1-.8 3-5.5 4.4-8.4 3.6z" fill="#866B21"/> </g> </svg> </button> </div> </div> <hr/> <div id="related" class="card-block"> <h3>Related Articles</h3> <ul> <li> <a href="/domains/how-to-assign-nameservers-to-a-domain">How do I assign nameservers to a domain?</a> </li> <li> <a href="/domains/what-are-krystal-s-name-servers">What are Krystal's NameServers?</a> </li> <li> <a href="/getting-started/how-do-i-setup-two-factor-authentication-2-fa-on-my-krystal-account">How do I setup Two-Factor Authentication (2FA) in Krystal Identity?</a> </li> </ul> </div> </div> </div> </div> </div> <script> (function() { $(function() { $('#article pre').each(function(i, el) { $el = $(el); $el.html($el.html().replace(/\n\s{10}/gi, '\n')); }); }); })(); </script> <div style="position: relative !important; bottom: 0 !important; text-align: center !important; margin: 2em !important; padding: initial !important; padding-bottom: 2em !important; display: block !important; visibility: visible !important;"> <a href="https://www.helpdocs.io?ref=hd" target="_blank" title="Powered by HelpDocs" style="display: initial !important; visibility: visible !important; position: initial !important; margin: 0 !important; padding: 0 !important; color: #ccc !important; text-decoration: none !important;" > <img src="https://cdn.helpdocs.io/img/logo_grey.png?v=1732636207" alt="Powered by HelpDocs" style="height: 2em !important; width: 2em !important; display: initial !important; visibility: visible !important; position: initial !important; margin: 0 !important; padding: 0 !important;" /> <span style="position: absolute;width: 1px;clip: rect(0 0 0 0);overflow: hidden;white-space: nowrap;">(opens in a new tab)</span> </a> </div> <script> window.hd_util_params = { disable_legacy_search_timers: true, search_article_template: ` <div class="row search-article-row"> <div class="col-xs"> <div id="search-article" class="search-article"> <a class="search-article-link" data-article-id="\{\{article_id\}\}" href="\{\{relative_url\}\}"> <h3 class="search-article-title">\{\{title\}\}</h3> <p class="category-title">\{\{category_title\}\}</p> <p class="search-article-description">\{\{description\}\}</p> </a> <hr> </div> </div> </div> ` }; </script> <footer>© Krystal Hosting Ltd 2002–<script>document.write(new Date().getFullYear())</script></footer> <script> (function() { $(function() { setTimeout(function() { $('pre').each(function(i, el) { $(el).attr('data-content', ($(el).attr('class') || '').replace('hljs ', '')); }); }, 1000); }); })(); </script> <div id="contact-modal" class="modal fade"> <div class="modal-dialog" role='document'> <div class="modal-content"> <div class="modal-header"> <button class="close" type='button' data-dismiss='modal' aria-label='Close'> <span aria-hidden='true'>×</span> </button> <h4 class="modal-title">Contact</h4> </div> <div class="modal-body"> <form id="contact-form" action="/contact" method="POST" data-article-id="wzp63i9clu" data-category-id="miitk8wvsq" data-search-term="" > <fieldset class="form-group"> <input id="name" class="form-control" type="text" placeholder="Jane Doe"> </fieldset> <fieldset class="form-group"> <input id="email" class="form-control" type="email" placeholder="my.email@example.com"> </fieldset> <fieldset class="form-group"> <textarea id="question" class="form-control" type="text" placeholder="Help Me With..." rows="5"></textarea> </fieldset> <input id="noop" type="text" name="noop" style="display: none !important"> </form> <button id="contact-form-submit" class="btn btn-primary btn-block" type='button'>Send</button> </div> </div> </div> </div> </div> </div> </div> <script src="https://cdn.helpdocs.io/js/js.cookie.min.js?v=1732636207"></script> <script src="https://cdn.helpdocs.io/js/highlight.min.js?v=1732636207"></script> <!-- Doorbell --> <script type="text/javascript"> (function() { function ready(fn) { if (document.readyState != 'loading'){ fn(); } else if (document.addEventListener) { document.addEventListener('DOMContentLoaded', fn); } else { document.attachEvent('onreadystatechange', function() { if (document.readyState != 'loading') fn(); }); } } ready(function() { var fb = document.querySelector("#feedback"); if (fb) { fb.insertAdjacentHTML('afterend', '<div id="doorbell-custom-inline" style="display: none"></div>'); } var doorbellInline = document.querySelector("#doorbell-custom-inline"); function showFeedback() { doorbell.show(); doorbellInline.style.display = ''; } function hideFeedback() { setTimeout(function() { doorbell.hide(); doorbellInline.style.display = 'none'; doorbellInline.parentNode.removeChild(doorbellInline); }, 1); } function init(count) { // Wait until required libs are loaded if (!count) count = 1; if (count > 10) return; if (!window.HDAnalytics) return setTimeout(function() { init(count+1) }, 500); // Overwrite feedback function to call doorbell var orig = HDAnalytics.leaveFeedback; HDAnalytics.leaveFeedback = function(sentiment) { if (["neutral", "negative"].indexOf(sentiment) > -1) showFeedback(); return orig(sentiment); } } window.doorbellOptions = { id: '10177', appKey: 'MA1nqqnj2jl16QewOyXSpdxGigHrnYT8GAtDcFPvdwYAsCwM0kvbz17kYdQ9sUEg', container: document.getElementById('doorbell-custom-inline'), tags: [ "helpdocs", "helpdocs-article-feedback", "helpdocs-article-feedback:article-wzp63i9clu", ], properties: { "HelpDocs Article ID": "wzp63i9clu", "HelpDocs Edit URL": window.location.protocol + "//" + window.location.hostname + "/app/content/article/wzp63i9clu", }, onSuccess: function() { hideFeedback(); }, }; (function(w, d, t) { var hasLoaded = false; function l() { if (hasLoaded) { return; } hasLoaded = true; window.doorbellOptions.windowLoaded = true; var g = d.createElement(t);g.id = 'doorbellScript';g.type = 'text/javascript';g.async = true;g.src = 'https://embed.doorbell.io/button/'+window.doorbellOptions['id']+'?t='+(new Date().getTime());(d.getElementsByTagName('head')[0]||d.getElementsByTagName('body')[0]).appendChild(g); } if (w.attachEvent) { w.attachEvent('onload', l); } else if (w.addEventListener) { w.addEventListener('load', l, false); } else { l(); } if (d.readyState == 'complete') { l(); } }(window, document, 'script')); init(); }) })(); </script> <script src="https://cdn.helpdocs.io/js/libs/hdanalytics.js?v=1732636207" type="text/javascript"></script> <script src="https://cdn.helpdocs.io/js/libs/instantsearch.js?v=1732636207" type="text/javascript"></script> <script src="https://cdn.helpdocs.io/js/libs/hdthemeutils.js?v=1732636207" type="text/javascript"></script> <script> // ** Resize videos ** (function() { function ready(fn) { if (document.readyState != 'loading'){ fn(); } else if (document.addEventListener) { document.addEventListener('DOMContentLoaded', fn); } else { document.attachEvent('onreadystatechange', function() { if (document.readyState != 'loading') fn(); }); } } ready(function () { var allVideos = document.querySelectorAll('iframe[src*="//www.youtube.com"], iframe[src*="//player.vimeo.com"], .hd--embed iframe, .hd--embed span[id^="vidyard_span_"]'); if (allVideos.length < 1) return; var isBackup = false; var fluidEl = document.querySelector('#article .card-block'); // Might be V4+ style of template if (!fluidEl) fluidEl = document.querySelector('#articleBody'); if (!fluidEl) { isBackup = true; fluidEl = document.querySelector('#article #body'); } Array.prototype.forEach.call(allVideos, function(video) { window.addEventListener('resize', function() { // Only set aspect ratio on resize of window video.setAttribute('aspectratio', (video.height / video.width) || 0.5625); if (video.getAttribute('aspectratio')) { video.removeAttribute('width'); video.removeAttribute('height'); } var newWidth = fluidEl.offsetWidth - (isBackup ? 200 : 0); if (!newWidth) return; Array.prototype.forEach.call(allVideos, function(video) { var ar = video.getAttribute('aspectratio'); video.setAttribute('width', newWidth); video.setAttribute('height', newWidth * ar); }); }); }); }); })(); </script> </body> </html>