PageSourceSearch

https://docs.rancherdesktop.io/assets/js/f2f0c48f.e1ee1393.js

js rancherdesktop.io collected 2026-09-24 15:24:15 UTC 10,530 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkdocs_rancherdesktop_io=self.webpackChunkdocs_rancherdesktop_io||[]).push([[9326],{4865:(e,a,n)=>{n.d(a,{A:()=>h});n(96540);var t=n(18215),r=n(17559),o=n(47751),s=n(23104),i=n(92303);const l={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var u=n(74848);function c({className:e}){const{selectedValue:a,selectValue:n,tabValues:r,block:i}=(0,o.uc)(),c=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.a_)(),p=e=>{const t=e.currentTarget,o=c.indexOf(t),s=r[o].value;s!==a&&(d(t),n(s))},h=e=>{let a=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;a=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;a=c[n]??c[c.length-1];break}}a?.focus()};return(0,u.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.A)("tabs",{"tabs--block":i},e),children:r.map((({value:e,label:n,attributes:r})=>(0,u.jsx)("li",{role:"tab",tabIndex:a===e?0:-1,"aria-selected":a===e,ref:e=>{c.push(e)},onKeyDown:h,onClick:p,...r,className:(0,t.A)("tabs__item",l.tabItem,r?.className,{"tabs__item--active":a===e}),children:n??e},e)))})}function d({children:e}){return(0,u.jsx)("div",{className:"margin-top--md",children:e})}function p({className:e,children:a}){return(0,u.jsxs)("div",{className:(0,t.A)(r.G.tabs.container,"tabs-container",l.tabList),
1children:[(0,u.jsx)(c,{className:e}),(0,u.jsx)(d,{children:a})]})}function h(e){const a=(0,i.A)(),n=(0,o.OC)(e);return(0,u.jsx)(o.O_,{value:n,children:(0,u.jsx)(p,{className:e.className,children:(0,o.vT)(e.children)})},String(a))}},19365:(e,a,n)=>{n.d(a,{A:()=>l});n(96540);var t=n(18215),r=n(47751);const o={tabItem:"tabItem_Ymn6"};var s=n(74848);function i({children:e,className:a,hidden:n}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,t.A)(o.tabItem,a),hidden:n,children:e})}function l({children:e,className:a,value:n}){const{selectedValue:t,lazy:o}=(0,r.uc)(),l=n===t;return!l&&o?null:(0,s.jsx)(i,{className:a,hidden:!l,children:e})}},28453:(e,a,n)=>{n.d(a,{R:()=>s,x:()=>i});var t=n(96540);const r={},o=t.createContext(r);function s(e){const a=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(o.Provider,{value:a},e.children)}},41669:(e,a,n)=>{n.d(a,{A:()=>s});var t=n(38193);const r=!!t.A.canUseDOM&&navigator.platform.startsWith("Mac"),o=!!t.A.canUseDOM&&navigator.platform.startsWith("Win"),s={defaultGuide:"quickstart",defaultOs:r?"macOS":o?"Windows":"Linux",defaultPackageManager:"npm",defaultPlatform:r?"ios":"android",defaultSyntax:"functional",defaultAndroidLanguage:"java",defaultJavaScriptSpecLanguages:"typescript",getDevNotesTabs:(e=["android","ios","web","windows"])=>[e.includes("android")?{label:"Android",value:"android"}:void 0,e.includes("ios")?{label:"iOS",value:"ios"}:void 0,e.includes("web")?{label:"Web",value:"web"}:void 0,e.includes("windows")?{label:"Windows",value:"windows"}:void 0].filter(Boolean),guides:[{label:"Expo Go Quickstart",value:"quickstart"},{label:"React Native CLI Quickstart",value:"native"}],oses:[{label:"macOS",value:"macOS"},{label:"Windows",value:"Windows"},{label:"Linux",value:"Linux"}],packageManagers:[{label:"npm",value:"npm"},{label:"Yarn",value:"yarn"}],platforms:[{label:"Android",value:"android"},{label:"iOS",value:"ios"}],syntax:[{label:"Function Component",value:"functional"},{label:"Class Component",value:"classical"}],androidLanguages:[{label:"Java",value:"java"},{label:"Kotlin",value:"kotlin"}],javaScriptSpecLanguages:[{label:"TypeScript",value:"typescript"},{label:"Flow",value:"flow"}],snackLanguages:[{label:"TypeScript",value:"typescript"},{label:"JavaScript",value:"javascript"}],defaultSnackLanguage:"typescript"}},47751:(e,a,n)=>{n.d(a,{OC:()=>m,O_:()=>b,uc:()=>f,vT:()=>c});var t=n(96540),r=n(56347),o=n(205),s=n(57485),i=n(31682),l=n(70679),u=n(74848);function c(e){return t.Children.toArray(e).filter((e=>"\n"!==e))}function d(e){const{values:a,children:n}=e;return(0,t.useMemo)((()=>{const e=a??function(e){return t.Children.toArray(e).flatMap((e=>{if(!e)return[];if((0,t.isValidElement)(e)&&function(e){const{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return[e];const a="string"==typeof e.type?e.type:e.type.name;throw new Error(`Docusaurus error: Bad <Tabs> child <${a}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.\nIf you do not want to pass on a "value" prop to the direct children of <Tabs>, you can also pass an explicit <Tabs values={...}> prop.`)})).map((({props:{value:e,label:a,attributes:n,default:t}})=>({value:e,label:a,attributes:n,default:t})))}(n);return function(e){const a=(0,i.XI)(e,((e,a)=>e.value===a.value));if(a.length>0)throw new Error(`Docusaurus error: Duplicate values "${a.map((e=>`'${e.value}'`)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[a,n])}function p({value:e,tabValues:a}){return a.some((a=>a.value===e))}function h({queryString:e=!1,groupId:a}){const n=(0,r.W6)(),o=function({queryString:e=!1,groupId:a}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:e,groupId:a});return[(0,s.aZ)(o),(0,t.useCallback)((e=>{if(!o)return;const a=new URLSearchParams(n.location.search);a.set(o,e),n.replace({...n.location,search:a.toString()})}),[o,n])]}function m(e){const{defaultValue:a,queryString:n=!1,groupId:r}=e,s=d(e),[i,u]=(0,t.useState)((()=>function({defaultValue:e,tabValues:a}){if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:a,tabValues:s}))),[c,m]=h({queryString:n,groupId:r}),[v,f]=function({groupId:e}){const a=function(e){return e?`docusaurus.tab.${e}`:null}(e),[n,r]=(0,l.Dv)(a);return[n,(0,t.useCallback)((e=>{a&&r.set(e)}),[a,r])]}({groupId:r}),b=(()=>{const e=c??v;return p({value:e,tabValues:s})?e:null})();(0,o.A)((()=>{b&&u(b)}),[b]);return{selectedValue:i,selectValue:(0,t.useCallback)((e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);u(e),m(e),f(e)}),[m,f,s]),tabValues:s,lazy:e.lazy??!1,block:e.block??!1}}const v=(0,t.createContext)(null);function f(){const e=t.useContext(v);if(!e)throw new Error("useTabsContext() must be used within a Tabs component");return e}function b(e){return(0,u.jsx)(v.Provider,{value:e.value,children:e.children})}},50575:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>d,contentTitle:()=>c,default:()=>m,frontMatter:()=>u,metadata:()=>t,toc:()=>p});
1const t=JSON.parse('{"id":"ui/port-forwarding","title":"Port Forwarding","description":"How to Forward a Port","source":"@site/versioned_docs/version-1.9/ui/port-forwarding.md","sourceDirName":"ui","slug":"/ui/port-forwarding","permalink":"/1.9/ui/port-forwarding","draft":false,"unlisted":false,"tags":[],"version":"1.9","frontMatter":{"sidebar_label":"Port Forwarding","title":"Port Forwarding"},"sidebar":"tutorialSidebar","previous":{"title":"General","permalink":"/1.9/ui/general"},"next":{"title":"Images","permalink":"/1.9/ui/images"}}');var r=n(74848),o=n(28453),s=n(4865),i=n(19365),l=n(41669);const u={sidebar_label:"Port Forwarding",title:"Port Forwarding"},c=void 0,d={},p=[{value:"How to Forward a Port",id:"how-to-forward-a-port",level:3},{value:"Admin vs Non-Admin Port Mappings",id:"admin-vs-non-admin-port-mappings",level:3}];function h(e){const a={a:"a",admonition:"admonition",code:"code",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.A,{groupId:"os",defaultValue:l.A.defaultOs,children:[(0,r.jsx)(i.A,{value:"Windows",children:(0,r.jsx)(a.p,{children:(0,r.jsx)(a.img,{src:"https://suse-rancher-media.s3.amazonaws.com/desktop/v1.9/ui-main/Windows_PortForwarding.png",alt:""})})}),(0,r.jsx)(i.A,{value:"macOS",children:(0,r.jsx)(a.p,{children:(0,r.jsx)(a.img,{src:"https://suse-rancher-media.s3.amazonaws.com/desktop/v1.9/ui-main/macOS_PortForwarding.png",alt:""})})}),(0,r.jsx)(i.A,{value:"Linux",children:(0,r.jsx)(a.p,{children:(0,r.jsx)(a.img,{src:"https://suse-rancher-media.s3.amazonaws.com/desktop/v1.9/ui-main/Linux_PortForwarding.png",alt:""})})})]}),"\n",(0,r.jsx)(a.h3,{id:"how-to-forward-a-port",children:"How to Forward a Port"}),"\n",(0,r.jsx)(a.p,{children:"The steps below outline how to forward a port:"}),"\n",(0,r.jsxs)(a.ol,{children:["\n",(0,r.jsxs)(a.li,{children:["Find the service and click ",(0,r.jsx)(a.strong,{children:"Forward"}),"."]}),"\n",(0,r.jsx)(a.li,{children:"Specify a port to use or use the randomly assigned port."}),"\n",(0,r.jsx)(a.li,{children:"Click the \u2713 button to confirm your selection."}),"\n",(0,r.jsxs)(a.li,{children:["Optional: click ",(0,r.jsx)(a.strong,{children:"Cancel"})," to remove the port assigned."]}),"\n"]}),"\n",(0,r.jsx)(a.h3,{id:"admin-vs-non-admin-port-mappings",children:"Admin vs Non-Admin Port Mappings"}),"\n",(0,r.jsxs)(a.p,{children:["Rancher Desktop includes automated port forwarding for versions ",(0,r.jsx)(a.code,{children:"1.9"})," and later. For non-admin port access, port mappings are configured to the localhost and unpriviliged ports ",(0,r.jsx)(a.code,{children:"> 1024"}
1),". Priviliged port mappings can also be configured by users with admin permissions for ports ",(0,r.jsx)(a.code,{children:"<= 1024"}),"."]}),"\n",(0,r.jsx)(a.admonition,{type:"note",children:(0,r.jsxs)(a.p,{children:["Please see ",(0,r.jsx)(a.a,{href:"https://docs.rancherdesktop.io/getting-started/installation/#traefik-port-binding-access",children:"Traefik Port Binding Access"})," to configure ports at the operating system level."]})})]})}function m(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.