<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Telegram &#8211; REMADMIN</title>
	<atom:link href="https://remadmin.com/tags/telegram/feed/" rel="self" type="application/rss+xml" />
	<link>https://remadmin.com</link>
	<description>Удалённый системный администратор</description>
	<lastBuildDate>Thu, 23 Feb 2023 12:49:40 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>Как поднять собственный Telegram MTProto Proxy</title>
		<link>https://remadmin.com/blog/linux/telegram-mtproto-proxy/</link>
					<comments>https://remadmin.com/blog/linux/telegram-mtproto-proxy/#comments</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Sun, 05 Feb 2023 21:26:54 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Telegram]]></category>
		<category><![CDATA[Прокси]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7105</guid>

					<description><![CDATA[MTProto, это специальный протокол разработанный командой Дурова, предназначенный для шифрования трафика мессенджера Telegram. MTProto Proxy &#8211; это промежуточный сервер, выполняющий роль посредника между пользователем и серверами Telegram, позволяя получать доступ к Telegram, если по каким-то причинам он недоступен, скрывая свой IP адрес и маскируя трафик. Telegram MTProto Proxy используется не только для обхода блокировок Telegram [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>MTProto</strong>, это специальный протокол разработанный командой Дурова, предназначенный для шифрования трафика мессенджера Telegram.</p>
<p><strong>MTProto Proxy</strong> &#8211; это промежуточный сервер, выполняющий роль посредника между пользователем и серверами Telegram, позволяя получать доступ к Telegram, если по каким-то причинам он недоступен, скрывая свой IP адрес и маскируя трафик.<span id="more-7105"></span></p>
<p><strong>Telegram MTProto Proxy</strong> используется не только для обхода блокировок Telegram (который уже давно перестали блокировать, поняв бесполезность затеи), но и может помочь в случае проблем с доступом к Telegram у вашего провайдера, или при наличии проблем у самого Telegram в конкретной стране.</p>
<h5>Как установить Telegram MTProto Proxy на сервер CentOS/RHEL или Debian/Ubuntu</h5>
<p>Для личного использования подойдёт любой сервер, даже самый дешёвый VPS.</p>
<p>Для начала устанавливаем необходимые пакеты.</p>
<p><strong>Для Debian/Ubuntu:</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">apt install git curl build-essential libssl-dev zlib1g-dev mc</pre>
<p><strong>Для CentOS/RHEL:</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">yum install openssl-devel zlib-devel vim-common mc
yum groupinstall "Development Tools"</pre>
<p>Клонируем репозиторий, переходим в его папку, компилируем:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy
make</pre>
<p>Если что-то пошло не так, разбираемся что именно, и затем, перед повторной сборкой, не забываем выполнить:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">make clean</pre>
<p>Наведём порядок, разложим всё по своим местам:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">cp objs/bin/mtproto-proxy /usr/bin/
chmod 775 /usr/bin/mtproto-proxy
cd /etc
mkdir mtproto-proxy
cd mtproto-proxy</pre>
<p>Получаем секретный файл, нужный для подключения к серверам Telegram:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">curl -s https://core.telegram.org/getProxySecret -o proxy-secret</pre>
<p>Получаем текущую конфигурацию Telegram:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf</pre>
<p>Она может периодически меняться, поэтому не лишним будет обновлять файл раз в сутки:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">echo "curl -s  https://core.telegram.org/getProxyConfig -o /etc/mtproto-proxy/proxy-multi.conf" &gt; /etc/cron.daily/mtproto-proxy
chmod 755 /etc/cron.daily/mtproto-proxy</pre>
<p>Создаем <strong>секрет</strong>, который будет использоваться пользователями для подключения к нашему прокси и сохраняем его себе:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">head -c 16 /dev/urandom | xxd -ps</pre>
<p>Создаём служебный файл systemd, чтобы <strong>Telegram MTProto Proxy</strong> работал как служба. Например через редактор mcedit:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">mcedit /etc/systemd/system/mtproto-proxy.service</pre>
<p>И вставляем в него:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">[Unit]
Description=MTProxy
After=network.target
[Service]
ExecStart=/usr/bin/mtproto-proxy -u nobody -p 8888 -H 443 -S &lt;secret&gt; --aes-pwd /etc/mtproto-proxy/proxy-secret /etc/mtproto-proxy/proxy-multi.conf -M 1
Restart=on-failure
[Install]
WantedBy=multi-user.target</pre>
<p>Где:</p>
<ul>
<li><strong>443</strong> &#8211; порт, к которому вы будете подключаться к <strong>Telegram MTProto Proxy</strong>. Если занят, используйте другой.</li>
<li><strong>8888</strong> &#8211; локальный порт для просмотра статистики, доступен только с самого сервера. Посмотреть статистику можно командой <strong>wget localhost:8888/stats</strong></li>
<li><strong>&lt;secret&gt;</strong> &#8211; меняете на тот, который генерировали и сохранили выше.</li>
</ul>
<p>Перезагружаем systemd:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">systemctl daemon-reload</pre>
<p>Запускаем службу и проверяем нормально ли она запустилась:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">systemctl restart mtproto-proxy
systemctl status mtproto-proxy</pre>
<p>Если всё ок, то добавляем в автозагрузку:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">systemctl enable mtproto-proxy</pre>
<p>На Centos 8 у меня не запустился. Если просто запустить из консоли:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">/usr/bin/mtproto-proxy -u nobody -p 8888 -H 443 -S &lt;secret&gt; --aes-pwd /etc/mtproto-proxy/proxy-secret /etc/mtproto-proxy/proxy-multi.conf -M 1</pre>
<p>то видна проблема: <strong>mtproto-proxy: common/pid.c:42: init_common_PID: Assertion `!(p &amp; 0xffff0000)&#8217; failed</strong>.</p>
<p>Решается так:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">echo "kernel.pid_max=65535" &gt; /etc/sysctl.conf
sysctl -p</pre>
<p>Ну и на этом всё. Чтобы подключиться к вашему <strong>Telegram MTProto Proxy</strong>, используйте ссылку, заменив в ней данные на свои:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">tg://proxy?server=&lt;IP сервера&gt;&amp;port=&lt;ПОРТ&gt;&amp;secret=&lt;СЕКРЕТ&gt;</pre>
<p>Иногда правда бывает, что провайдеры вычисляют по размеру пакетов, и блокируют MTProxy. В этом случае, к вашему секрету в начале допишите 2 буквы <strong>dd</strong>. Тогда к пакетам будут добавляться случайные данные.</p>
<blockquote><p>Внимание! Использование прокси в некоторых странах может нарушать законодательство. Ознакомьтесь с законами страны прежде чем устанавливать и использовать Telegram MTProto Proxy.<br />
Все операции описанные в статье производились на тестовом сервере, и после написания статьи были удалены.</p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/linux/telegram-mtproto-proxy/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>