You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
arthas/en/doc/tunnel.html

88 lines
76 KiB
HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
3 years ago
<meta name="generator" content="VuePress 2.0.0-beta.51">
<style>
:root {
--c-bg: #fff;
}
html.dark {
--c-bg: #22272e;
}
html, body {
background-color: var(--c-bg);
}
</style>
<script>
const userMode = localStorage.getItem('vuepress-color-scheme');
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
document.documentElement.classList.toggle('dark', true);
}
</script>
3 years ago
<link rel="icon" href="/images/favicon.ico"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta property="og:title" content="Arthas"><meta property="og:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta property="og:image" content="/images/arthas_mate_image.png"><meta property="og:description" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="600"><meta property="twitter:image:src" content="/images/arthas_mate_image.png"><meta property="twitter:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta itemprop="name" content="Arthas"><meta itemprop="image" content="/images/arthas_mate_image.png"><meta itemprop="description" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
2 years ago
</script><meta name="aes-config" content="pid=xux-opensource&user_type=101&uid=&username=&dim10=arthas"><script src="//g.alicdn.com/alilog/mlog/aplus_v2.js" id="beacon-aplus" exparams="clog=o&aplus&sidx=aplusSidx&ckx=aplusCkx"></script><script src="//g.alicdn.com/aes/??tracker/1.0.34/index.js,tracker-plugin-pv/2.4.5/index.js,tracker-plugin-event/1.2.5/index.js,tracker-plugin-jserror/1.0.13/index.js,tracker-plugin-api/1.1.14/index.js,tracker-plugin-perf/1.1.8/index.js,tracker-plugin-eventTiming/1.0.4/index.js"></script><title>Arthas Tunnel | arthas</title><meta name="description" content="arthas user document">
2 years ago
<link rel="modulepreload" href="/assets/app.170c6bb7.js"><link rel="modulepreload" href="/assets/tunnel.html.5ca8f80e.js"><link rel="modulepreload" href="/assets/tunnel-server-agents.03d5eafa.js"><link rel="modulepreload" href="/assets/tunnel.html.31a6c7ce.js"><link rel="prefetch" href="/assets/index.html.027a535c.js"><link rel="prefetch" href="/assets/index.html.f4fc56b4.js"><link rel="prefetch" href="/assets/index.html.4fabef9a.js"><link rel="prefetch" href="/assets/advanced-use.html.a364a077.js"><link rel="prefetch" href="/assets/advice-class.html.1e16b78a.js"><link rel="prefetch" href="/assets/agent.html.ea4b4c17.js"><link rel="prefetch" href="/assets/arthas-properties.html.3c6dd837.js"><link rel="prefetch" href="/assets/arthas3.html.653e03bd.js"><link rel="prefetch" href="/assets/async.html.c7f2ec88.js"><link rel="prefetch" href="/assets/auth.html.976ea268.js"><link rel="prefetch" href="/assets/base64.html.0ce179d7.js"><link rel="prefetch" href="/assets/batch-support.html.a8ea483a.js"><link rel="prefetch" href="/assets/cat.html.57193482.js"><link rel="prefetch" href="/assets/classloader.html.1cccb103.js"><link rel="prefetch" href="/assets/cls.html.9cc716a2.js"><link rel="prefetch" href="/assets/commands.html.9b04eeb3.js"><link rel="prefetch" href="/assets/contact-us.html.4b75bb12.js"><link rel="prefetch" href="/assets/dashboard.html.471cdbf0.js"><link rel="prefetch" href="/assets/docker.html.eef4a9b6.js"><link rel="prefetch" href="/assets/download.html.ff354b6f.js"><link rel="prefetch" href="/assets/dump.html.c72d4940.js"><link rel="prefetch" href="/assets/echo.html.49af5ef2.js"><link rel="prefetch" href="/assets/faq.html.75378aba.js"><link rel="prefetch" href="/assets/getstatic.html.dafe19bf.js"><link rel="prefetch" href="/assets/grep.html.1d94643c.js"><link rel="prefetch" href="/assets/groovy.html.982837a9.js"><link rel="prefetch" href="/assets/heapdump.html.770781d7.js"><link rel="prefetch" href="/assets/help.html.509b4db6.js"><link rel="prefetch" href="/assets/history.html.24c98bc1.js"><link rel="prefetch" href="/assets/http-api.html.c0834238.js"><link rel="prefetch" href="/assets/idea-plugin.html.ec624e96.js"><link rel="prefetch" href="/assets/install-detail.html.76d1df70.js"><link rel="prefetch" href="/assets/jad.html.f02068c8.js"><link rel="prefetch" href="/assets/jfr.html.0b62ef92.js"><link rel="prefetch" href="/assets/jvm.html.9b6cb899.js"><link rel="prefetch" href="/assets/keymap.html.a8e445a7.js"><link rel="prefetch" href="/assets/logger.html.635d0790.js"><link rel="prefetch" href="/assets/manual-install.html.c49561b2.js"><link rel="prefetch" href="/assets/mbean.html.c09c879d.js"><link rel="prefetch" href="/assets/mc.html.d9028bda.js"><link rel="prefetch" href="/assets/memory.html.953a0d4f.js"><link rel="prefetch" href="/assets/monitor.html.7df88e93.js"><link rel="prefetch" href="/assets/ognl.html.aa12b486.js"><link rel="prefetch" href="/assets/options.html.0348e01c.js"><link rel="prefetch" href="/assets/perfcounter.html.098c9c9e.js"><link rel="prefetch" href="/assets/profiler.html.8be69b54.js"><link rel="prefetch" href="/assets/pwd.html.713f9c32.js"><link rel="prefetch" href="/assets/quick-start.html.be359054.js"><link rel="prefetch" href="/assets/quit.html.02ca41a5.js"><link rel="prefetch" href="/assets/redefine.html.5a9b270a.js"><link rel="prefetch" href="/assets/release-notes.html.a57b43af.js"><link rel="prefetch" href="/assets/reset.html.9c4606b8.js"><link rel="prefetch" href="/assets/retransform.html.6e43ccc9.js"><link rel="prefetch" href="/assets/save-log.html.8bdd55ac.js"><link rel="prefetch" href="/assets/sc.html.a90007ab.js"><link rel="prefetch" href="/assets/session.html.e6db1dfb.js"><link rel="prefetch" href="/assets/sm.html.24ba31c4.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.b19d8a00.js"><link rel="prefetch" href="/assets/stack.html.466606a8.js"><link rel="prefetch" href="/assets/start-arthas.html.b89051d7.js"><link rel="prefetch" href="/assets/stop.html.31f63c78.js"><link rel="prefetch" href="/assets/sysenv.html.bac684ed.js"><link rel="prefetch" href="/assets/syspro
3 years ago
<link rel="stylesheet" href="/assets/style.da1934a3.css">
</head>
<body>
2 years ago
<div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/en/" class="" data-v-61144abc><!----><span class="site-name can-hide" data-v-61144abc>arthas</span><span class="navbar-version" data-v-61144abc>v3.7.0</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/en/" class="" aria-label="HOME"><!--[--><!--]--> HOME <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=en&amp;id=arthas-basics" rel="noopener noreferrer" target="_blank" aria-label="ONLINE TUTORIALS"><!--[--><!--]--><span>ONLINE TUTORIALS</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc" class="router-link-active" aria-label="DOCS"><!--[--><!--]--> DOCS <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc/commands.md" class="" aria-label="COMMANDS"><!--[--><!--]--> COMMANDS <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc/download.md" class="" aria-label="DOWNLOAD"><!--[--><!--]--> DOWNLOAD <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="SOLUTIONS"><span class="title">SOLUTIONS</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="SOLUTIONS"><span class="title">SOLUTIONS</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://cn.aliyun.com/product/aliware/mse?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="Microservice solutions"><!--[--><!--]--><span>Microservice solutions</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/aliware/txc?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="Distributed transaction solutions"><!--[--><!--]--><span>Distributed transaction solutions</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/product/aha
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>By default, the web port of the arthas tunnel server is <code>8080</code>, and the port connected by the arthas agent is <code>7777</code>.</p><p>Once started, you can go to <a href="http://127.0.0.1:8080/" target="_blank" rel="noopener noreferrer">http://127.0.0.1:8080/<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a> and connect to the registered arthas agent via <code>agentId</code>.</p><p>Through Spring Boot&#39;s Endpoint, you can view the specific connection information: <a href="http://127.0.0.1:8080/actuator/arthas" target="_blank" rel="noopener noreferrer">http://127.0.0.1:8080/actuator/arthas<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a>, the login user name is <code>arthas</code>, and the password can be found in the log of arthas tunnel server, for example:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>32851 [main] INFO o.s.b.a.s.s.UserDetailsServiceAutoConfiguration
Using generated security password: f1dca050-3777-48f4-a577-6367e55a78a2
3 years ago
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="connecting-to-the-tunnel-server-when-starting-arthas" tabindex="-1"><a class="header-anchor" href="#connecting-to-the-tunnel-server-when-starting-arthas" aria-hidden="true">#</a> Connecting to the tunnel server when starting arthas</h2><p>When starting arthas, you can use the <code>--tunnel-server</code> parameter, for example:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>as.sh --tunnel-server <span class="token string">&#39;ws://127.0.0.1:7777/ws&#39;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>You can also use the following test address (not guaranteed to be available all the time):</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>as.sh --tunnel-server <span class="token string">&#39;ws://47.75.156.201:80/ws&#39;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><ul><li>You can specify the agentId by the <code>--agent-id</code> parameter. By default, a random ID is generated.</li></ul><p>After Arthas attach succeeds, the agentId will be printed, such as:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code> ,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O <span class="token punctuation">\</span> <span class="token operator">|</span> .--. <span class="token string">&#39;&#39;</span>--. .--<span class="token string">&#39;| &#39;</span>--<span class="token string">&#39; | / O \ &#39;</span> .-<span class="token string">&#39;
| .-. || &#39;</span>--<span class="token string">&#39;.&#39;</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> .--. <span class="token operator">||</span> .-. <span class="token operator">|</span><span class="token variable"><span class="token variable">`</span><span class="token builtin class-name">.</span> <span class="token variable">`</span></span>-.
<span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">||</span> <span class="token operator">|</span><span class="token punctuation">\</span> <span class="token punctuation">\</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">||</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span>.-<span class="token string">&#39; |
`--&#39;</span> <span class="token variable"><span class="token variable">`</span>--&#39;<span class="token variable">`</span></span>--<span class="token string">&#39; &#39;</span>--<span class="token string">&#39; `--&#39;</span> <span class="token variable"><span class="token variable">`</span>--&#39; <span class="token variable">`</span></span>--<span class="token string">&#39;`--&#39;</span> <span class="token variable"><span class="token variable">`</span>--&#39;<span class="token variable">`</span></span>-----&#39;
wiki https://arthas.aliyun.com/doc
tutorials https://arthas.aliyun.com/doc/arthas-tutorials.html
version <span class="token number">3.1</span>.2
pid <span class="token number">86183</span>
<span class="token function">time</span> <span class="token number">2019</span>-08-30 <span class="token number">15</span>:40:53
<span class="token function">id</span> URJZ5L48RPBR2ALI5K4V
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>If the connection is not connected to the tunnel server at startup, you can also obtain the agentId through the <code>session</code> command after reconnection succeeds:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@86183<span class="token punctuation">]</span>$ session
Name Value
-----------------------------------------------------
JAVA_PID <span class="token number">86183</span>
SESSION_ID f7273eb5-e7b0-4a00-bc5b-3fe55d741882
AGENT_ID URJZ5L48RPBR2ALI5K4V
TUNNEL_SERVER ws://47.75.156.201:80/ws
3 years ago
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>For the above example, go to <a href="http://47.75.156.201/arthas/?port=80" target="_blank" rel="noopener noreferrer">http://47.75.156.201/arthas/?port=80<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a> in the browser and input the <code>agentId</code> to connect to arthas on remote machine.</p><p><img src="/images/arthas-tunnel-server.png" alt=""></p><h2 id="best-practices" tabindex="-1"><a class="header-anchor" href="#best-practices" aria-hidden="true">#</a> Best practices</h2><div class="custom-container warning"><p class="custom-container-title">WARNING</p><p>Note that the agentId must be unique, otherwise it will conflict on the tunnel server and not work properly.</p></div><p>If the arthas agent is configured with <code>appName</code>, the generated agentId will be prefixed with <code>appName</code>.</p><p>For example, if you add the startup parameter <code>as.sh --tunnel-server &#39;ws://127.0.0.1:7777/ws&#39; --app-name demoapp</code>, the generated agentId might be <code>demoapp_URJZ5L48RPBR2ALI5K4V</code>.</p><p>Tunnel server will use <code>_</code> as a delimiter to extract <code>appName</code>, which is convenient to manage by application.</p><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Alternatively, you can configure <code>appName</code> in <code>arthas.properties</code> in the unzipped arthas directory, or in <code>application.properties</code> of the spring boot application.</p></div><h2 id="tunnel-server-management-page" tabindex="-1"><a class="header-anchor" href="#tunnel-server-management-page" aria-hidden="true">#</a> Tunnel Server Management Page</h2><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Need to configure <code>arthas.enable-detail-pages=true</code> in <code>application.properties</code> of spring boot</p><p><strong>Attention, opening admin pages is risky! There is no security blocking function on the management page, you must add security measures by yourself.</strong></p></div><p>Start the tunnel-server locally, then use <code>as.sh</code> attach, and specify the application name <code>--app-name test</code>:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ as.sh --tunnel-server &#39;ws://127.0.0.1:7777/ws&#39; --app-name test
telnet connecting to arthas server... current timestamp is 1627539688
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is &#39;^]&#39;.
,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O \ | .--. &#39;&#39;--. .--&#39;| &#39;--&#39; | / O \ &#39; .-&#39;
| .-. || &#39;--&#39;.&#39; | | | .--. || .-. |`. `-.
| | | || |\ \ | | | | | || | | |.-&#39; |
`--&#39; `--&#39;`--&#39; &#39;--&#39; `--&#39; `--&#39; `--&#39;`--&#39; `--&#39;`-----&#39;
wiki https://arthas.aliyun.com/doc
tutorials https://arthas.aliyun.com/doc/arthas-tutorials.html
version 3.5.3
main_class demo.MathGame
pid 65825
time 2021-07-29 14:21:29
id test_PE3LZO9NA9ENJYTPGL9L
3 years ago
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>Then visit tunnel-server, you can see a list of all connected applications:</p><p><a href="http://localhost:8080/apps.html" target="_blank" rel="noopener noreferrer">http://localhost:8080/apps.html<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p><p><img src="/images/tunnel-server-apps.png" alt=""></p><p>Then open the details, you can see a list of all connected agents:</p><p><a href="http://localhost:8080/agents.html?app=test" target="_blank" rel="noopener noreferrer">http://localhost:8080/agents.html?app=test<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p><p><img src="/images/tunnel-server-agents.png" alt=""></p><h2 id="security-and-privilege-management" tabindex="-1"><a class="header-anchor" href="#security-and-privilege-management" aria-hidden="true">#</a> Security and Privilege Management</h2><div class="custom-container tip"><p class="custom-container-title">TIP</p><p><strong>It is strongly recommended not to expose the tunnel server directly to the public network.</strong></p></div><p>Currently tunnel server does not have special permission management</p><ol><li>Users need to develop by themselves and authenticate the app name.</li><li>If the management page is opened, security measures need to be added.</li></ol><h2 id="cluster-management" tabindex="-1"><a class="header-anchor" href="#cluster-management" aria-hidden="true">#</a> Cluster Management</h2><p>If you want to deploy multiple tunnel servers, you can use nginx for forwarding and redis to store agent information.</p><p>Nginx needs to configure sticky session to ensure that the user&#39;s web socket is connected to the same back-end tunnel server. The simple configuration method is to use <code>ip_hash</code>.</p><h2 id="how-arthas-tunnel-server-works" tabindex="-1"><a class="header-anchor" href="#how-arthas-tunnel-server-works" aria-hidden="true">#</a> How arthas tunnel server works</h2><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>browser &lt;-&gt; arthas tunnel server &lt;-&gt; arthas tunnel client &lt;-&gt; arthas agent
3 years ago
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p><a href="https://github.com/alibaba/arthas/blob/master/tunnel-server/README.md#" target="_blank" rel="noopener noreferrer">tunnel-server/README.md<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p></div><!--[--><!--]--></div><footer class="page-meta right-menu-padding" data-v-fdd717e0><div class="meta-item edit-link"><a class="external-link meta-item-label" href="https://github.com/alibaba/arthas/edit/master/site/docs/en/doc/tunnel.md" rel="noopener noreferrer" target="_blank" aria-label="Edit this page on GitHub"><!--[--><!--]--><span>Edit this page on GitHub</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">Contributors: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: hengyunabc@gmail.com">hengyunabc</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: hengyunabc@users.noreply.github.com">hengyunabc</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: i@fatpandac.com">Fatpandac</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav right-menu-padding" data-v-fdd717e0><p class="inner"><span class="prev"><a href="/en/doc/web-console.html" class="" aria-label="Web Console"><!--[--><!--]--> Web Console <!--[--><!--]--></a></span><span class="next"><a href="/en/doc/http-api.html" class="" aria-label="Http API"><!--[--><!--]--> Http API <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
2 years ago
<script type="module" src="/assets/app.170c6bb7.js" defer></script>
</body>
</html>