<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=RustDesk</id>
	<title>RustDesk - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=RustDesk"/>
	<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=RustDesk&amp;action=history"/>
	<updated>2026-05-13T21:01:59Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=RustDesk&amp;diff=4616&amp;oldid=prev</id>
		<title>Vix: /* ИСТОЧНИКИ */</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=RustDesk&amp;diff=4616&amp;oldid=prev"/>
		<updated>2026-01-28T18:43:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;ИСТОЧНИКИ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 21:43, 28 января 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l521&quot;&gt;Строка 521:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 521:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://devtrends.ru/go/lejianwen-rustdesk-api RustDesk на стероидах - как этот API-сервер превращает удаленку в удовольствие]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://devtrends.ru/go/lejianwen-rustdesk-api RustDesk на стероидах - как этот API-сервер превращает удаленку в удовольствие]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://develop.qbpro.ru/master/rustdesk-server-lejianwen &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fork &lt;/del&gt;rustdesk-server for API]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://develop.qbpro.ru/master/rustdesk-server-lejianwen &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''fork &lt;/ins&gt;rustdesk-server for API&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://develop.qbpro.ru/master/rustdesk-api-lejianwen rustdesk-server-api GO-lang]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://develop.qbpro.ru/master/rustdesk-api-lejianwen &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''&lt;/ins&gt;rustdesk-server-api GO-lang&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://develop.qbpro.ru/master/rustdesk-api-web-lejianwen rustdesk webclient ]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://develop.qbpro.ru/master/rustdesk-api-web-lejianwen &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''&lt;/ins&gt;rustdesk webclient&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;''' &lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgdb4support-mediawiki-:diff::1.12:old-4615:rev-4616 --&gt;
&lt;/table&gt;</summary>
		<author><name>Vix</name></author>
	</entry>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=RustDesk&amp;diff=4615&amp;oldid=prev</id>
		<title>Vix: /* ИСТОЧНИКИ */</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=RustDesk&amp;diff=4615&amp;oldid=prev"/>
		<updated>2026-01-28T18:43:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;ИСТОЧНИКИ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 21:43, 28 января 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l518&quot;&gt;Строка 518:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 518:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=='''ИСТОЧНИКИ'''==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=='''ИСТОЧНИКИ'''==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://www.self-host.app/services/rustdesk#installation-guide RustDesk Self-Host Guide: Complete Setup and Configuration&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;* [https://www.self-host.app/services/rustdesk#installation-guide RustDesk Self-Host Guide: Complete Setup and Configuration]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [https://devtrends.ru/go/lejianwen-rustdesk-api RustDesk на стероидах - как этот API-сервер превращает удаленку в удовольствие]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [https://develop.qbpro.ru/master/rustdesk-server-lejianwen Fork rustdesk-server for API]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [https://develop.qbpro.ru/master/rustdesk-api-lejianwen rustdesk-server-api GO-lang]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [https://develop.qbpro.ru/master/rustdesk-api-web-lejianwen rustdesk webclient &lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgdb4support-mediawiki-:diff::1.12:old-4573:rev-4615 --&gt;
&lt;/table&gt;</summary>
		<author><name>Vix</name></author>
	</entry>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=RustDesk&amp;diff=4573&amp;oldid=prev</id>
		<title>Vix: /* ИСТОЧНИКИ */</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=RustDesk&amp;diff=4573&amp;oldid=prev"/>
		<updated>2025-12-24T14:53:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;ИСТОЧНИКИ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 17:53, 24 декабря 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l518&quot;&gt;Строка 518:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 518:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=='''ИСТОЧНИКИ'''==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=='''ИСТОЧНИКИ'''==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;hr&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  * [https://www.self-host.app/services/rustdesk#installation-guide RustDesk Self-Host Guide: Complete Setup and Configuration]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  * [https://www.self-host.app/services/rustdesk#installation-guide RustDesk Self-Host Guide: Complete Setup and Configuration]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgdb4support-mediawiki-:diff::1.12:old-4572:rev-4573 --&gt;
&lt;/table&gt;</summary>
		<author><name>Vix</name></author>
	</entry>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=RustDesk&amp;diff=4572&amp;oldid=prev</id>
		<title>Vix: Новая страница: «'''RustDesk Self-Host Guide: Complete Setup and Configuration'''  =='''What is RustDesk?'''== RustDesk is an open-source remote desktop software written in Rust. It's a powerful alternative to TeamViewer that allows you to control computers remotely with your own self-hosted server, ensuring complete privacy and security over your remote connections.  =='''RustDesk Interface'''==  =='''Features of RustDesk'''== Cross-Platform Support Windows: Full support wi...»</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=RustDesk&amp;diff=4572&amp;oldid=prev"/>
		<updated>2025-12-24T14:53:45Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&amp;#039;&amp;#039;&amp;#039;RustDesk Self-Host Guide: Complete Setup and Configuration&amp;#039;&amp;#039;&amp;#039;  ==&amp;#039;&amp;#039;&amp;#039;What is RustDesk?&amp;#039;&amp;#039;&amp;#039;== RustDesk is an open-source remote desktop software written in Rust. It&amp;#039;s a powerful alternative to TeamViewer that allows you to control computers remotely with your own self-hosted server, ensuring complete privacy and security over your remote connections.  ==&amp;#039;&amp;#039;&amp;#039;RustDesk Interface&amp;#039;&amp;#039;&amp;#039;==  ==&amp;#039;&amp;#039;&amp;#039;Features of RustDesk&amp;#039;&amp;#039;&amp;#039;== Cross-Platform Support Windows: Full support wi...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''RustDesk Self-Host Guide: Complete Setup and Configuration'''&lt;br /&gt;
&lt;br /&gt;
=='''What is RustDesk?'''==&lt;br /&gt;
RustDesk is an open-source remote desktop software written in Rust. It's a powerful alternative to TeamViewer that allows you to control computers remotely with your own self-hosted server, ensuring complete privacy and security over your remote connections.&lt;br /&gt;
&lt;br /&gt;
=='''RustDesk Interface'''==&lt;br /&gt;
&lt;br /&gt;
=='''Features of RustDesk'''==&lt;br /&gt;
Cross-Platform Support&lt;br /&gt;
Windows: Full support with all features&lt;br /&gt;
macOS: Complete compatibility including clipboard sync&lt;br /&gt;
Linux: Native support for all major distributions&lt;br /&gt;
Android/iOS: Mobile apps for remote access on-the-go&lt;br /&gt;
Web Browser: Browser-based client for quick access&lt;br /&gt;
Advanced Remote Desktop Features&lt;br /&gt;
High Performance: Hardware-accelerated encoding/decoding&lt;br /&gt;
Low Latency: Optimized for real-time interaction&lt;br /&gt;
Multi-Monitor: Support for multiple displays&lt;br /&gt;
File Transfer: Secure file sharing between devices&lt;br /&gt;
Clipboard Sync: Seamless copy-paste across devices&lt;br /&gt;
Audio Forwarding: Stream audio from remote computer&lt;br /&gt;
Security and Privacy&lt;br /&gt;
End-to-End Encryption: All connections are encrypted&lt;br /&gt;
2FA Support: Two-factor authentication for enhanced security&lt;br /&gt;
Access Control: Fine-grained permission management&lt;br /&gt;
Session Logging: Comprehensive audit trails&lt;br /&gt;
No Data Collection: Complete privacy with self-hosting&lt;br /&gt;
Enterprise Features&lt;br /&gt;
Address Book: Centralized device management&lt;br /&gt;
User Groups: Organize users and devices&lt;br /&gt;
Access Control: Role-based permissions&lt;br /&gt;
Unattended Access: Connect without user intervention&lt;br /&gt;
API Integration: Programmatic access for automation&lt;br /&gt;
Why Self Host RustDesk?&lt;br /&gt;
Self-hosting provides complete control and eliminates reliance on third-party services.&lt;br /&gt;
&lt;br /&gt;
Benefits of Self-Hosting RustDesk&lt;br /&gt;
Complete Privacy: No data passes through external servers&lt;br /&gt;
Cost Savings: No per-user licensing fees&lt;br /&gt;
Performance: Optimized for your network infrastructure&lt;br /&gt;
Customization: Tailor configuration to your needs&lt;br /&gt;
Compliance: Meet strict data governance requirements&lt;br /&gt;
Reliability: No dependency on external service availability&lt;br /&gt;
System Requirements&lt;br /&gt;
Minimum Requirements&lt;br /&gt;
CPU: 2 cores&lt;br /&gt;
RAM: 2GB&lt;br /&gt;
Storage: 10GB&lt;br /&gt;
Network: Stable internet connection with public IP&lt;br /&gt;
OS: Linux (Ubuntu 20.04+ recommended)&lt;br /&gt;
* Recommended Requirements&lt;br /&gt;
 CPU: 4+ cores&lt;br /&gt;
 RAM: 4GB+&lt;br /&gt;
 Storage: 50GB SSD&lt;br /&gt;
 Network: High-speed connection with low latency&lt;br /&gt;
 Firewall configured for RustDesk ports&lt;br /&gt;
 SSL certificate for secure web access&lt;br /&gt;
 Network Requirements&lt;br /&gt;
 TCP Port 21115: Relay server&lt;br /&gt;
 TCP Port 21116: ID server&lt;br /&gt;
 TCP Port 21117: HTTP API (optional)&lt;br /&gt;
 TCP Port 21118: Web console (optional)&lt;br /&gt;
 UDP Port 21116: NAT type test&lt;br /&gt;
=='''Installation Guide'''==&lt;br /&gt;
Using Docker (Recommended)&lt;br /&gt;
Create docker-compose.yml:&lt;br /&gt;
 version: '3.8'&lt;br /&gt;
 &lt;br /&gt;
 services:&lt;br /&gt;
   rustdesk-server:&lt;br /&gt;
     image: rustdesk/rustdesk-server:latest&lt;br /&gt;
     container_name: rustdesk-server&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;21115:21115&amp;quot;&lt;br /&gt;
       - &amp;quot;21116:21116&amp;quot;&lt;br /&gt;
       - &amp;quot;21116:21116/udp&amp;quot;&lt;br /&gt;
       - &amp;quot;21117:21117&amp;quot;&lt;br /&gt;
       - &amp;quot;21118:21118&amp;quot;&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./data:/data&lt;br /&gt;
     environment:&lt;br /&gt;
       - RELAY_HOST=your-domain.com&lt;br /&gt;
       - API_HOST=your-domain.com&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     &lt;br /&gt;
   rustdesk-api:&lt;br /&gt;
     image: rustdesk/rustdesk-api:latest&lt;br /&gt;
     container_name: rustdesk-api&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;21114:21114&amp;quot;&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./api-data:/data&lt;br /&gt;
     environment:&lt;br /&gt;
       - DB_URL=sqlite:///data/db.sqlite3&lt;br /&gt;
       - API_SECRET=your-secret-key&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     depends_on:&lt;br /&gt;
       - rustdesk-server&lt;br /&gt;
 Start the services:&lt;br /&gt;
 docker-compose up -d&lt;br /&gt;
 Generate server key:&lt;br /&gt;
 docker exec rustdesk-server /usr/bin/rustdesk-utils genkey&lt;br /&gt;
=='''Manual Installation'''==&lt;br /&gt;
* Download RustDesk server:&lt;br /&gt;
 wget https://github.com/rustdesk/rustdesk-server/releases/latest/download/rustdesk-server-linux-amd64.tar.gz&lt;br /&gt;
 tar -xzf rustdesk-server-linux-amd64.tar.gz&lt;br /&gt;
 cd rustdesk-server-linux-amd64&lt;br /&gt;
* Generate encryption keys:&lt;br /&gt;
./rustdesk-utils genkey&lt;br /&gt;
 # This creates id_ed25519 and id_ed25519.pub files&lt;br /&gt;
* Create systemd service:&lt;br /&gt;
 # /etc/systemd/system/rustdesk-relay.service&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=RustDesk Relay Server&lt;br /&gt;
 After=network.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=rustdesk&lt;br /&gt;
 WorkingDirectory=/opt/rustdesk&lt;br /&gt;
 ExecStart=/opt/rustdesk/rustdesk-relay -k /opt/rustdesk/id_ed25519&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=5&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 Create ID server service:&lt;br /&gt;
 # /etc/systemd/system/rustdesk-signal.service&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=RustDesk Signal Server&lt;br /&gt;
 After=network.target &lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=rustdesk&lt;br /&gt;
 WorkingDirectory=/opt/rustdesk&lt;br /&gt;
 ExecStart=/opt/rustdesk/rustdesk-signal -k /opt/rustdesk/id_ed25519&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=5&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 Start services:&lt;br /&gt;
 sudo systemctl enable --now rustdesk-relay&lt;br /&gt;
 sudo systemctl enable --now rustdesk-signal&lt;br /&gt;
* Using Pre-built Binaries&lt;br /&gt;
 Install from GitHub releases:&lt;br /&gt;
 # Download latest release&lt;br /&gt;
 curl -s https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep &amp;quot;browser_download_url.*linux.*tar.gz&amp;quot; | cut -d '&amp;quot;' -f 4 | wget -i -&lt;br /&gt;
&lt;br /&gt;
* Extract and install&lt;br /&gt;
 tar -xzf rustdesk-server-*.tar.gz&lt;br /&gt;
 sudo cp rustdesk-server-*/rustdesk-* /usr/local/bin/&lt;br /&gt;
 sudo chmod +x /usr/local/bin/rustdesk-*&lt;br /&gt;
=='''Configuration'''==&lt;br /&gt;
* Server Configuration&lt;br /&gt;
 # rustdesk.toml&lt;br /&gt;
 [server]&lt;br /&gt;
 # Server hostname or IP&lt;br /&gt;
 host = &amp;quot;your-domain.com&amp;quot;&lt;br /&gt;
 # Relay port&lt;br /&gt;
 relay_port = 21115&lt;br /&gt;
 # Signal port  &lt;br /&gt;
 signal_port = 21116&lt;br /&gt;
 # API port&lt;br /&gt;
 api_port = 21117&lt;br /&gt;
 &lt;br /&gt;
 [security]&lt;br /&gt;
 # Enable encryption&lt;br /&gt;
 encryption = true&lt;br /&gt;
 # Key file path&lt;br /&gt;
 key_file = &amp;quot;/opt/rustdesk/id_ed25519&amp;quot;&lt;br /&gt;
 # Password protection&lt;br /&gt;
 password = &amp;quot;your-server-password&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 [logging]&lt;br /&gt;
 # Log level: error, warn, info, debug, trace&lt;br /&gt;
 level = &amp;quot;info&amp;quot;&lt;br /&gt;
 # Log file path&lt;br /&gt;
 file = &amp;quot;/var/log/rustdesk/server.log&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 [api]&lt;br /&gt;
 # Enable web API&lt;br /&gt;
 enabled = true&lt;br /&gt;
 # API secret key&lt;br /&gt;
 secret = &amp;quot;your-api-secret&amp;quot;&lt;br /&gt;
 # Admin user&lt;br /&gt;
 admin_user = &amp;quot;admin&amp;quot;&lt;br /&gt;
 admin_password = &amp;quot;admin-password&amp;quot;&lt;br /&gt;
* Environment Variables&lt;br /&gt;
 # Server Configuration&lt;br /&gt;
 RUSTDESK_HOST=your-domain.com&lt;br /&gt;
 RUSTDESK_RELAY_PORT=21115&lt;br /&gt;
 RUSTDESK_SIGNAL_PORT=21116&lt;br /&gt;
 RUSTDESK_API_PORT=21117&lt;br /&gt;
 &lt;br /&gt;
 # Security&lt;br /&gt;
 RUSTDESK_KEY_FILE=/data/id_ed25519&lt;br /&gt;
 RUSTDESK_PASSWORD=your-server-password&lt;br /&gt;
 RUSTDESK_ENCRYPTION=true&lt;br /&gt;
 &lt;br /&gt;
 # Logging&lt;br /&gt;
 RUSTDESK_LOG_LEVEL=info&lt;br /&gt;
 RUSTDESK_LOG_FILE=/var/log/rustdesk.log&lt;br /&gt;
 &lt;br /&gt;
 # API&lt;br /&gt;
 RUSTDESK_API_ENABLED=true&lt;br /&gt;
 RUSTDESK_API_SECRET=your-api-secret&lt;br /&gt;
 RUSTDESK_ADMIN_USER=admin&lt;br /&gt;
 RUSTDESK_ADMIN_PASSWORD=admin-password&lt;br /&gt;
 &lt;br /&gt;
 # Database (if using API server)&lt;br /&gt;
 DATABASE_URL=sqlite:///data/db.sqlite3&lt;br /&gt;
=='''Nginx Reverse Proxy'''==&lt;br /&gt;
 # /etc/nginx/sites-available/rustdesk&lt;br /&gt;
 server {&lt;br /&gt;
     listen 80;&lt;br /&gt;
     server_name your-domain.com;&lt;br /&gt;
     return 301 https://$server_name$request_uri;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
     listen 443 ssl http2;&lt;br /&gt;
     server_name your-domain.com;&lt;br /&gt;
     &lt;br /&gt;
     ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;&lt;br /&gt;
     ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;&lt;br /&gt;
     &lt;br /&gt;
     # API endpoint&lt;br /&gt;
     location /api/ {&lt;br /&gt;
         proxy_pass http://localhost:21117/;&lt;br /&gt;
         proxy_set_header Host $host;&lt;br /&gt;
         proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
         proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     # Web console&lt;br /&gt;
     location / {&lt;br /&gt;
         proxy_pass http://localhost:21118/;&lt;br /&gt;
         proxy_set_header Host $host;&lt;br /&gt;
         proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
         proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
         &lt;br /&gt;
         # WebSocket support&lt;br /&gt;
         proxy_http_version 1.1;&lt;br /&gt;
         proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
         proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
=='''Client Setup'''==&lt;br /&gt;
* Desktop Client Configuration&lt;br /&gt;
 Download RustDesk client:&lt;br /&gt;
 &lt;br /&gt;
 Windows: Download from RustDesk website&lt;br /&gt;
 Linux: Install via package manager or download binary&lt;br /&gt;
 macOS: Download from website or use Homebrew&lt;br /&gt;
* Configure server settings:&lt;br /&gt;
&lt;br /&gt;
 Open RustDesk client&lt;br /&gt;
 Go to Settings → Network&lt;br /&gt;
 Set ID Server: your-domain.com:21116&lt;br /&gt;
 Set Relay Server: your-domain.com:21115&lt;br /&gt;
 Set Key: (paste your public key content)&lt;br /&gt;
 Import configuration automatically:&lt;br /&gt;
&lt;br /&gt;
* Create configuration file&lt;br /&gt;
 cat &amp;gt; rustdesk.toml &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [options]&lt;br /&gt;
 relay-server = &amp;quot;your-domain.com:21115&amp;quot;&lt;br /&gt;
 id-server = &amp;quot;your-domain.com:21116&amp;quot;&lt;br /&gt;
 key = &amp;quot;your-public-key-here&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
* Import configuration&lt;br /&gt;
 rustdesk --import-config rustdesk.toml&lt;br /&gt;
 Mobile App Configuration&lt;br /&gt;
 Install RustDesk mobile app:&lt;br /&gt;
&lt;br /&gt;
 Android: Google Play Store or F-Droid&lt;br /&gt;
 iOS: App Store&lt;br /&gt;
* Configure server:&lt;br /&gt;
 &lt;br /&gt;
 Open app settings&lt;br /&gt;
 Add custom server&lt;br /&gt;
 Enter server details and key&lt;br /&gt;
* Web Client Setup&lt;br /&gt;
**Enable web console in server config:&lt;br /&gt;
 [web]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port = 21118&lt;br /&gt;
&lt;br /&gt;
*Access via browser:&lt;br /&gt;
**Navigate to https://your-domain.com&lt;br /&gt;
 Enter server credentials&lt;br /&gt;
 Connect to remote devices&lt;br /&gt;
 Security Configuration&lt;br /&gt;
* SSL/TLS Setup&lt;br /&gt;
**Generate SSL certificate:&lt;br /&gt;
 # Using Let's Encrypt&lt;br /&gt;
 sudo certbot certonly --standalone -d your-domain.com&lt;br /&gt;
&lt;br /&gt;
 # Or generate self-signed certificate&lt;br /&gt;
 openssl req -x509 -newkey rsa:4096 -keyout rustdesk.key -out rustdesk.crt -days 365 -nodes&lt;br /&gt;
* Configure SSL in RustDesk:&lt;br /&gt;
 [ssl]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 cert_file = &amp;quot;/etc/ssl/certs/rustdesk.crt&amp;quot;&lt;br /&gt;
 key_file = &amp;quot;/etc/ssl/private/rustdesk.key&amp;quot;&lt;br /&gt;
* Firewall Configuration&lt;br /&gt;
 # UFW (Ubuntu)&lt;br /&gt;
 sudo ufw allow 21115/tcp&lt;br /&gt;
 sudo ufw allow 21116/tcp&lt;br /&gt;
 sudo ufw allow 21116/udp&lt;br /&gt;
 sudo ufw allow 21117/tcp&lt;br /&gt;
 sudo ufw allow 21118/tcp&lt;br /&gt;
 &lt;br /&gt;
 # iptables&lt;br /&gt;
 iptables -A INPUT -p tcp --dport 21115 -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -p tcp --dport 21116 -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -p udp --dport 21116 -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -p tcp --dport 21117 -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -p tcp --dport 21118 -j ACCEPT&lt;br /&gt;
*Access Control&lt;br /&gt;
 [access]&lt;br /&gt;
 # Whitelist specific IPs&lt;br /&gt;
 allowed_ips = [&amp;quot;192.168.1.0/24&amp;quot;, &amp;quot;10.0.0.0/8&amp;quot;]&lt;br /&gt;
 # Blacklist IPs&lt;br /&gt;
 blocked_ips = [&amp;quot;1.2.3.4&amp;quot;]&lt;br /&gt;
 # Require password for connections&lt;br /&gt;
 require_password = true&lt;br /&gt;
 # Enable session logging&lt;br /&gt;
 session_logging = true&lt;br /&gt;
 Two-Factor Authentication&lt;br /&gt;
 [2fa]&lt;br /&gt;
 # Enable 2FA&lt;br /&gt;
 enabled = true&lt;br /&gt;
 # TOTP issuer name&lt;br /&gt;
 issuer = &amp;quot;RustDesk Server&amp;quot;&lt;br /&gt;
 # Require 2FA for all users&lt;br /&gt;
 required = false&lt;br /&gt;
=='''Backup and Maintenance'''==&lt;br /&gt;
 Backup Strategy&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # RustDesk backup script&lt;br /&gt;
 &lt;br /&gt;
 BACKUP_DIR=&amp;quot;/backup/rustdesk&amp;quot;&lt;br /&gt;
 DATE=$(date +%Y%m%d_%H%M%S)&lt;br /&gt;
 &lt;br /&gt;
 # Create backup directory&lt;br /&gt;
 mkdir -p $BACKUP_DIR &lt;br /&gt;
 &lt;br /&gt;
 # Backup configuration files&lt;br /&gt;
 tar -czf $BACKUP_DIR/config-$DATE.tar.gz /opt/rustdesk/*.toml /opt/rustdesk/id_ed25519*&lt;br /&gt;
 &lt;br /&gt;
 # Backup database (if using API server)&lt;br /&gt;
 if [ -f /data/db.sqlite3 ]; then&lt;br /&gt;
     cp /data/db.sqlite3 $BACKUP_DIR/db-$DATE.sqlite3&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 # Backup logs&lt;br /&gt;
 tar -czf $BACKUP_DIR/logs-$DATE.tar.gz /var/log/rustdesk/&lt;br /&gt;
 &lt;br /&gt;
 # Cleanup old backups (keep 30 days)&lt;br /&gt;
 find $BACKUP_DIR -name &amp;quot;*.tar.gz&amp;quot; -mtime +30 -delete&lt;br /&gt;
 find $BACKUP_DIR -name &amp;quot;*.sqlite3&amp;quot; -mtime +30 -delete&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Backup completed: $DATE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=='''Update Process'''==&lt;br /&gt;
* Stop services:&lt;br /&gt;
 sudo systemctl stop rustdesk-relay rustdesk-signal&lt;br /&gt;
* Backup current installation:&lt;br /&gt;
 cp -r /opt/rustdesk /opt/rustdesk-backup-$(date +%Y%m%d) &lt;br /&gt;
* Download and install update:&lt;br /&gt;
 wget https://github.com/rustdesk/rustdesk-server/releases/latest/download/rustdesk-server-linux-amd64.tar.gz&lt;br /&gt;
 tar -xzf rustdesk-server-linux-amd64.tar.gz&lt;br /&gt;
 sudo cp rustdesk-server-linux-amd64/* /opt/rustdesk/&lt;br /&gt;
* Restart services:&lt;br /&gt;
 sudo systemctl start rustdesk-relay rustdesk-signal&lt;br /&gt;
 sudo systemctl status rustdesk-relay rustdesk-signal&lt;br /&gt;
* Monitoring&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # Monitoring script&lt;br /&gt;
 &lt;br /&gt;
 # Check service status&lt;br /&gt;
 if ! systemctl is-active --quiet rustdesk-relay; then&lt;br /&gt;
     echo &amp;quot;RustDesk relay service is down!&amp;quot;&lt;br /&gt;
     # Send alert or restart service&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 if ! systemctl is-active --quiet rustdesk-signal; then&lt;br /&gt;
     echo &amp;quot;RustDesk signal service is down!&amp;quot;&lt;br /&gt;
     # Send alert or restart service&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 # Check port connectivity&lt;br /&gt;
 if ! nc -z localhost 21115; then&lt;br /&gt;
     echo &amp;quot;Relay port 21115 is not accessible!&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 if ! nc -z localhost 21116; then&lt;br /&gt;
     echo &amp;quot;Signal port 21116 is not accessible!&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 # Check disk space&lt;br /&gt;
 DISK_USAGE=$(df /opt/rustdesk | tail -1 | awk '{print $5}' | sed 's/%//')&lt;br /&gt;
 if [ $DISK_USAGE -gt 80 ]; then&lt;br /&gt;
     echo &amp;quot;Disk usage is above 80%: ${DISK_USAGE}%&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 # Check memory usage&lt;br /&gt;
 MEMORY_USAGE=$(free | grep Mem | awk '{printf &amp;quot;%.0f&amp;quot;, $3/$2 * 100.0}')&lt;br /&gt;
 if [ $MEMORY_USAGE -gt 90 ]; then&lt;br /&gt;
     echo &amp;quot;Memory usage is above 90%: ${MEMORY_USAGE}%&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=='''Troubleshooting'''==&lt;br /&gt;
* Common Issues&lt;br /&gt;
** Connection Problems&lt;br /&gt;
 # Test server connectivity&lt;br /&gt;
 telnet your-domain.com 21115&lt;br /&gt;
 telnet your-domain.com 21116&lt;br /&gt;
 &lt;br /&gt;
 # Check firewall rules&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
 sudo iptables -L&lt;br /&gt;
 &lt;br /&gt;
 # Test DNS resolution&lt;br /&gt;
 nslookup your-domain.com&lt;br /&gt;
 dig your-domain.com&lt;br /&gt;
 Service Issues&lt;br /&gt;
 # Check service status&lt;br /&gt;
 sudo systemctl status rustdesk-relay&lt;br /&gt;
 sudo systemctl status rustdesk-signal&lt;br /&gt;
 &lt;br /&gt;
 # View service logs&lt;br /&gt;
 sudo journalctl -u rustdesk-relay -f&lt;br /&gt;
 sudo journalctl -u rustdesk-signal -f&lt;br /&gt;
 &lt;br /&gt;
 # Restart services&lt;br /&gt;
 sudo systemctl restart rustdesk-relay rustdesk-signal&lt;br /&gt;
* Performance Issues&lt;br /&gt;
# Monitor system resources&lt;br /&gt;
 htop&lt;br /&gt;
 iotop&lt;br /&gt;
 netstat -tlnp&lt;br /&gt;
 &lt;br /&gt;
 # Check network latency&lt;br /&gt;
 ping your-domain.com&lt;br /&gt;
 mtr your-domain.com&lt;br /&gt;
 &lt;br /&gt;
 # Monitor RustDesk processes&lt;br /&gt;
 ps aux | grep rustdesk&lt;br /&gt;
 Key/Certificate Problems&lt;br /&gt;
 # Regenerate server keys&lt;br /&gt;
 ./rustdesk-utils genkey&lt;br /&gt;
 &lt;br /&gt;
 # Verify key permissions&lt;br /&gt;
 ls -la /opt/rustdesk/id_ed25519*&lt;br /&gt;
 sudo chmod 600 /opt/rustdesk/id_ed25519&lt;br /&gt;
 sudo chmod 644 /opt/rustdesk/id_ed25519.pub&lt;br /&gt;
 &lt;br /&gt;
 # Test SSL certificate&lt;br /&gt;
 openssl s_client -connect your-domain.com:443&lt;br /&gt;
 Log Analysis&lt;br /&gt;
 # Server logs location&lt;br /&gt;
 tail -f /var/log/rustdesk/server.log&lt;br /&gt;
 &lt;br /&gt;
 # System logs&lt;br /&gt;
 tail -f /var/log/syslog | grep rustdesk&lt;br /&gt;
 &lt;br /&gt;
 # Docker logs&lt;br /&gt;
 docker logs -f rustdesk-server&lt;br /&gt;
 FAQ&lt;br /&gt;
 How does RustDesk compare to TeamViewer?&lt;br /&gt;
 RustDesk offers similar functionality to TeamViewer but with complete self-hosting capabilities, no licensing fees, and full &lt;br /&gt;
 data privacy.&lt;br /&gt;
 &lt;br /&gt;
 Can I use RustDesk without a public IP?&lt;br /&gt;
 Yes, you can use services like Cloudflare Tunnel or VPN to expose your RustDesk server without a public IP.&lt;br /&gt;
 &lt;br /&gt;
 Is RustDesk secure for business use?&lt;br /&gt;
 Yes, RustDesk uses end-to-end encryption and allows complete control over your infrastructure, making it suitable for business &lt;br /&gt;
 environments.&lt;br /&gt;
&lt;br /&gt;
 How do I migrate from TeamViewer to RustDesk?&lt;br /&gt;
 Set up your RustDesk server&lt;br /&gt;
 Install RustDesk clients on all devices&lt;br /&gt;
 Configure clients to use your server&lt;br /&gt;
 Export/import address books if needed&lt;br /&gt;
 Train users on the new interface&lt;br /&gt;
 Can I customize the RustDesk client?&lt;br /&gt;
 Yes, RustDesk is open-source, allowing you to customize the client application for your specific needs.&lt;br /&gt;
 &lt;br /&gt;
 What's the maximum number of concurrent connections?&lt;br /&gt;
 The limit depends on your server resources. A typical server can handle hundreds of concurrent connections.&lt;br /&gt;
&lt;br /&gt;
 How do I set up automatic updates?&lt;br /&gt;
 # Create update script&lt;br /&gt;
 cat &amp;gt; /usr/local/bin/rustdesk-update.sh &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # Auto-update script for RustDesk&lt;br /&gt;
 # Add to crontab: 0 2 * * 0 /usr/local/bin/rustdesk-update.sh&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/local/bin/rustdesk-update.sh&lt;br /&gt;
 Can I use RustDesk with load balancing?&lt;br /&gt;
 Yes, you can run multiple RustDesk servers behind a load balancer for high availability and scalability.&lt;br /&gt;
 &lt;br /&gt;
* How do I enable session recording?&lt;br /&gt;
 [recording]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 path = &amp;quot;/var/log/rustdesk/sessions/&amp;quot;&lt;br /&gt;
 format = &amp;quot;mp4&amp;quot;&lt;br /&gt;
 quality = &amp;quot;high&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=='''ИСТОЧНИКИ'''==&lt;br /&gt;
 &amp;lt;hr&amp;gt;&lt;br /&gt;
 * [https://www.self-host.app/services/rustdesk#installation-guide RustDesk Self-Host Guide: Complete Setup and Configuration]&lt;/div&gt;</summary>
		<author><name>Vix</name></author>
	</entry>
</feed>