mirror of https://github.com/telemt/telemt.git
Merge pull request #671 from miniusercoder/xray-double-hop
add documentation for Xray double hop setup
This commit is contained in:
commit
d23ce4a184
|
|
@ -0,0 +1,273 @@
|
||||||
|
<img src="https://gist.githubusercontent.com/avbor/1f8a128e628f47249aae6e058a57610b/raw/19013276c035e91058e0a9799ab145f8e70e3ff5/scheme.svg">
|
||||||
|
|
||||||
|
## Concept
|
||||||
|
- **Server A** (_e.g., RU_):\
|
||||||
|
Entry point, accepts Telegram proxy user traffic via **Xray** (port `443\tcp`)\
|
||||||
|
and sends it through the tunnel to Server **B**.\
|
||||||
|
Public port for Telegram clients — `443\tcp`
|
||||||
|
- **Server B** (_e.g., NL_):\
|
||||||
|
Exit point, runs the **Xray server** (to terminate the tunnel entry point) and **telemt**.\
|
||||||
|
The server must have unrestricted access to Telegram Data Centers.\
|
||||||
|
Public port for VLESS/REALITY (incoming) — `443\tcp`\
|
||||||
|
Internal telemt port (where decrypted Xray traffic ends up) — `8443\tcp`
|
||||||
|
|
||||||
|
The tunnel works over the `VLESS-XTLS-Reality` (or `VLESS/xhttp/reality`) protocol. The original client IP address is preserved thanks to the PROXYv2 protocol, which Xray on Server A dynamically injects via a local loopback before wrapping the traffic into Reality, transparently delivering the real IPs to telemt on Server B.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 1. Setup Xray Tunnel (A <-> B)
|
||||||
|
|
||||||
|
You must install **Xray-core** (version 1.8.4 or newer recommended) on both servers.
|
||||||
|
Official installation script (run on both servers):
|
||||||
|
```bash
|
||||||
|
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Key and Parameter Generation (Run Once)
|
||||||
|
For configuration, you need a unique UUID and Xray Reality keys. Run on any server with Xray installed:
|
||||||
|
1. **Client UUID:**
|
||||||
|
```bash
|
||||||
|
xray uuid
|
||||||
|
# Save the output (e.g.: 12345678-abcd-1234-abcd-1234567890ab) — this is <XRAY_UUID>
|
||||||
|
```
|
||||||
|
2. **X25519 Keypair (Private & Public) for Reality:**
|
||||||
|
```bash
|
||||||
|
xray x25519
|
||||||
|
# Save the Private key (<SERVER_B_PRIVATE_KEY>) and Public key (<SERVER_B_PUBLIC_KEY>)
|
||||||
|
```
|
||||||
|
3. **Short ID (Reality identifier):**
|
||||||
|
```bash
|
||||||
|
openssl rand -hex 16
|
||||||
|
# Save the output (e.g.: 0123456789abcdef0123456789abcdef) — this is <SHORT_ID>
|
||||||
|
```
|
||||||
|
4. **Random Path (for xhttp):**
|
||||||
|
```bash
|
||||||
|
openssl rand -hex 8
|
||||||
|
# Save the output (e.g., abc123def456) to replace <YOUR_RANDOM_PATH> in configs
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Configuration for Server B (_EU_):
|
||||||
|
|
||||||
|
Create or edit the file `/usr/local/etc/xray/config.json`.
|
||||||
|
This Xray instance will listen on the public `443` port and proxy valid Reality traffic, while routing "disguised" traffic (e.g., direct web browser scans) to `yahoo.com`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano /usr/local/etc/xray/config.json
|
||||||
|
```
|
||||||
|
|
||||||
|
File content:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"log": {
|
||||||
|
"loglevel": "error",
|
||||||
|
"access": "none"
|
||||||
|
},
|
||||||
|
"inbounds": [
|
||||||
|
{
|
||||||
|
"tag": "vless-in",
|
||||||
|
"port": 443,
|
||||||
|
"protocol": "vless",
|
||||||
|
"settings": {
|
||||||
|
"clients": [
|
||||||
|
{
|
||||||
|
"id": "<XRAY_UUID>"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"decryption": "none"
|
||||||
|
},
|
||||||
|
"streamSettings": {
|
||||||
|
"network": "xhttp",
|
||||||
|
"security": "reality",
|
||||||
|
"realitySettings": {
|
||||||
|
"dest": "yahoo.com:443",
|
||||||
|
"serverNames": [
|
||||||
|
"yahoo.com"
|
||||||
|
],
|
||||||
|
"privateKey": "<SERVER_B_PRIVATE_KEY>",
|
||||||
|
"shortIds": [
|
||||||
|
"<SHORT_ID>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"xhttpSettings": {
|
||||||
|
"path": "/<YOUR_RANDOM_PATH>",
|
||||||
|
"mode": "auto"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outbounds": [
|
||||||
|
{
|
||||||
|
"tag": "tunnel-to-telemt",
|
||||||
|
"protocol": "freedom",
|
||||||
|
"settings": {
|
||||||
|
"destination": "127.0.0.1:8443"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routing": {
|
||||||
|
"domainStrategy": "AsIs",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"inboundTag": [
|
||||||
|
"vless-in"
|
||||||
|
],
|
||||||
|
"outboundTag": "tunnel-to-telemt"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Open the firewall port (if enabled):
|
||||||
|
```bash
|
||||||
|
sudo ufw allow 443/tcp
|
||||||
|
```
|
||||||
|
Restart and setup Xray to run at boot:
|
||||||
|
```bash
|
||||||
|
sudo systemctl restart xray
|
||||||
|
sudo systemctl enable xray
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Configuration for Server A (_RU_):
|
||||||
|
|
||||||
|
Similarly, edit `/usr/local/etc/xray/config.json`.
|
||||||
|
Here Xray acts as the public entry point: it listens on `443\tcp`, uses a local loopback (via internal port `10444`) to prepend the `PROXYv2` header, and encapsulates the payload via Reality to Server B, instructing Server B to deliver it to its *local* `127.0.0.1:8443` port (where telemt will listen).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano /usr/local/etc/xray/config.json
|
||||||
|
```
|
||||||
|
|
||||||
|
File content:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"log": {
|
||||||
|
"loglevel": "error",
|
||||||
|
"access": "none"
|
||||||
|
},
|
||||||
|
"inbounds": [
|
||||||
|
{
|
||||||
|
"tag": "public-in",
|
||||||
|
"port": 443,
|
||||||
|
"listen": "0.0.0.0",
|
||||||
|
"protocol": "dokodemo-door",
|
||||||
|
"settings": {
|
||||||
|
"address": "127.0.0.1",
|
||||||
|
"port": 10444,
|
||||||
|
"network": "tcp"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "tunnel-in",
|
||||||
|
"port": 10444,
|
||||||
|
"listen": "127.0.0.1",
|
||||||
|
"protocol": "dokodemo-door",
|
||||||
|
"settings": {
|
||||||
|
"address": "127.0.0.1",
|
||||||
|
"port": 8443,
|
||||||
|
"network": "tcp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outbounds": [
|
||||||
|
{
|
||||||
|
"tag": "local-injector",
|
||||||
|
"protocol": "freedom",
|
||||||
|
"settings": {
|
||||||
|
"proxyProtocol": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "vless-out",
|
||||||
|
"protocol": "vless",
|
||||||
|
"settings": {
|
||||||
|
"vnext": [
|
||||||
|
{
|
||||||
|
"address": "<PUBLIC_IP_SERVER_B>",
|
||||||
|
"port": 443,
|
||||||
|
"users": [
|
||||||
|
{
|
||||||
|
"id": "<XRAY_UUID>",
|
||||||
|
"encryption": "none"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"streamSettings": {
|
||||||
|
"network": "xhttp",
|
||||||
|
"security": "reality",
|
||||||
|
"realitySettings": {
|
||||||
|
"serverName": "yahoo.com",
|
||||||
|
"publicKey": "<SERVER_B_PUBLIC_KEY>",
|
||||||
|
"shortId": "<SHORT_ID>",
|
||||||
|
"spiderX": "/",
|
||||||
|
"fingerprint": "chrome"
|
||||||
|
},
|
||||||
|
"xhttpSettings": {
|
||||||
|
"path": "/<YOUR_RANDOM_PATH>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routing": {
|
||||||
|
"domainStrategy": "AsIs",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"inboundTag": ["public-in"],
|
||||||
|
"outboundTag": "local-injector"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"inboundTag": ["tunnel-in"],
|
||||||
|
"outboundTag": "vless-out"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
*Replace `<PUBLIC_IP_SERVER_B>` with the public IP address of Server B.*
|
||||||
|
|
||||||
|
Open the firewall port for clients (if enabled):
|
||||||
|
```bash
|
||||||
|
sudo ufw allow 443/tcp
|
||||||
|
```
|
||||||
|
|
||||||
|
Restart and setup Xray to run at boot:
|
||||||
|
```bash
|
||||||
|
sudo systemctl restart xray
|
||||||
|
sudo systemctl enable xray
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 2. Install telemt on Server B (_EU_)
|
||||||
|
|
||||||
|
telemt installation is heavily covered in the [Quick Start Guide](../Quick_start/QUICK_START_GUIDE.en.md).
|
||||||
|
By contrast to standard setups, telemt must listen strictly _locally_ (since Xray occupies the public `443` interface) and must expect `PROXYv2` packets.
|
||||||
|
|
||||||
|
Edit the configuration file (`config.toml`) on Server B accordingly:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[server]
|
||||||
|
port = 8443
|
||||||
|
listen_addr_ipv4 = "127.0.0.1"
|
||||||
|
proxy_protocol = true
|
||||||
|
|
||||||
|
[general.links]
|
||||||
|
show = "*"
|
||||||
|
public_host = "<FQDN_OR_IP_SERVER_A>"
|
||||||
|
public_port = 443
|
||||||
|
```
|
||||||
|
|
||||||
|
- Address `127.0.0.1` and `port = 8443` instructs the core proxy router to process connections unpacked locally via Xray-server.
|
||||||
|
- `proxy_protocol = true` commands telemt to parse the injected PROXY header (from Server A's Xray local loopback) and log genuine end-user IPs.
|
||||||
|
- Under `public_host`, place Server A's public IP address or FQDN to ensure working links are generated for Telegram users.
|
||||||
|
|
||||||
|
Restart `telemt`. Your server is now robust against DPI scanners, passing traffic optimally.
|
||||||
|
|
||||||
|
|
@ -0,0 +1,272 @@
|
||||||
|
<img src="https://gist.githubusercontent.com/avbor/1f8a128e628f47249aae6e058a57610b/raw/19013276c035e91058e0a9799ab145f8e70e3ff5/scheme.svg">
|
||||||
|
|
||||||
|
## Концепция
|
||||||
|
- **Сервер A** (_РФ_):\
|
||||||
|
Точка входа, принимает трафик пользователей Telegram-прокси напрямую через **Xray** (порт `443\tcp`)\
|
||||||
|
и отправляет его в туннель на Сервер **B**.\
|
||||||
|
Порт для клиентов Telegram — `443\tcp`
|
||||||
|
- **Сервер B** (_условно Нидерланды_):\
|
||||||
|
Точка выхода, на нем работает **Xray-сервер** (принимает подключения точки входа) и **telemt**.\
|
||||||
|
На сервере должен быть неограниченный доступ до серверов Telegram.\
|
||||||
|
Порт для VLESS/REALITY (вход) — `443\tcp`\
|
||||||
|
Внутренний порт telemt (куда пробрасывается трафик) — `8443\tcp`
|
||||||
|
|
||||||
|
Туннель работает по протоколу VLESS-XTLS-Reality (или VLESS/xhttp/reality). Оригинальный IP-адрес клиента сохраняется благодаря протоколу PROXYv2, который Xray на Сервере А добавляет через локальный loopback перед упаковкой в туннель, благодаря чему прозрачно доходит до telemt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Шаг 1. Настройка туннеля Xray (A <-> B)
|
||||||
|
|
||||||
|
На обоих серверах необходимо установить **Xray-core** (рекомендуется версия 1.8.4 или новее).
|
||||||
|
Официальный скрипт установки (выполнить на обоих серверах):
|
||||||
|
```bash
|
||||||
|
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Генерация ключей и параметров (выполнить один раз)
|
||||||
|
Для конфигурации потребуются уникальные ID и ключи Xray Reality. Выполните на любом сервере с установленным Xray:
|
||||||
|
1. **UUID клиента:**
|
||||||
|
```bash
|
||||||
|
xray uuid
|
||||||
|
# Сохраните вывод (например: 12345678-abcd-1234-abcd-1234567890ab) — это <XRAY_UUID>
|
||||||
|
```
|
||||||
|
2. **Пара ключей X25519 (Private & Public) для Reality:**
|
||||||
|
```bash
|
||||||
|
xray x25519
|
||||||
|
# Сохраните Private key (<SERVER_B_PRIVATE_KEY>) и Public key (<SERVER_B_PUBLIC_KEY>)
|
||||||
|
```
|
||||||
|
3. **Short ID (идентификатор Reality):**
|
||||||
|
```bash
|
||||||
|
openssl rand -hex 16
|
||||||
|
# Сохраните вывод (например: 0123456789abcdef0123456789abcdef) — это <SHORT_ID>
|
||||||
|
```
|
||||||
|
4. **Random Path (путь для xhttp):**
|
||||||
|
```bash
|
||||||
|
openssl rand -hex 8
|
||||||
|
# Сохраните вывод (например, abc123def456), чтобы заменить <YOUR_RANDOM_PATH> в конфигах
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Конфигурация Сервера B (_Нидерланды_):
|
||||||
|
|
||||||
|
Создаем или редактируем файл `/usr/local/etc/xray/config.json`.
|
||||||
|
Этот Xray-сервер будет слушать порт `443` и прозрачно пропускать валидный Reality трафик дальше, а "замаскированный" трафик (например, если кто-то стучится в лоб веб-браузером) пойдет на `yahoo.com`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano /usr/local/etc/xray/config.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Содержимое файла:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"log": {
|
||||||
|
"loglevel": "error",
|
||||||
|
"access": "none"
|
||||||
|
},
|
||||||
|
"inbounds": [
|
||||||
|
{
|
||||||
|
"tag": "vless-in",
|
||||||
|
"port": 443,
|
||||||
|
"protocol": "vless",
|
||||||
|
"settings": {
|
||||||
|
"clients": [
|
||||||
|
{
|
||||||
|
"id": "<XRAY_UUID>"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"decryption": "none"
|
||||||
|
},
|
||||||
|
"streamSettings": {
|
||||||
|
"network": "xhttp",
|
||||||
|
"security": "reality",
|
||||||
|
"realitySettings": {
|
||||||
|
"dest": "yahoo.com:443",
|
||||||
|
"serverNames": [
|
||||||
|
"yahoo.com"
|
||||||
|
],
|
||||||
|
"privateKey": "<SERVER_B_PRIVATE_KEY>",
|
||||||
|
"shortIds": [
|
||||||
|
"<SHORT_ID>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"xhttpSettings": {
|
||||||
|
"path": "/<YOUR_RANDOM_PATH>",
|
||||||
|
"mode": "auto"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outbounds": [
|
||||||
|
{
|
||||||
|
"tag": "tunnel-to-telemt",
|
||||||
|
"protocol": "freedom",
|
||||||
|
"settings": {
|
||||||
|
"destination": "127.0.0.1:8443"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routing": {
|
||||||
|
"domainStrategy": "AsIs",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"inboundTag": [
|
||||||
|
"vless-in"
|
||||||
|
],
|
||||||
|
"outboundTag": "tunnel-to-telemt"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Открываем порт на фаерволе (если включен):
|
||||||
|
```bash
|
||||||
|
sudo ufw allow 443/tcp
|
||||||
|
```
|
||||||
|
Перезапускаем Xray:
|
||||||
|
```bash
|
||||||
|
sudo systemctl restart xray
|
||||||
|
sudo systemctl enable xray
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Конфигурация Сервера A (_РФ_):
|
||||||
|
|
||||||
|
Аналогично, редактируем `/usr/local/etc/xray/config.json`.
|
||||||
|
Здесь Xray выступает публичной точкой: он принимает трафик на внешний порт `443\tcp`, пропускает через локальный loopback (порт `10444`) для добавления PROXYv2-заголовка, и упаковывает в Reality до Сервера B, прося тот доставить данные на *свой локальный* порт `127.0.0.1:8443` (именно там будет слушать telemt).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano /usr/local/etc/xray/config.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Содержимое файла:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"log": {
|
||||||
|
"loglevel": "error",
|
||||||
|
"access": "none"
|
||||||
|
},
|
||||||
|
"inbounds": [
|
||||||
|
{
|
||||||
|
"tag": "public-in",
|
||||||
|
"port": 443,
|
||||||
|
"listen": "0.0.0.0",
|
||||||
|
"protocol": "dokodemo-door",
|
||||||
|
"settings": {
|
||||||
|
"address": "127.0.0.1",
|
||||||
|
"port": 10444,
|
||||||
|
"network": "tcp"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "tunnel-in",
|
||||||
|
"port": 10444,
|
||||||
|
"listen": "127.0.0.1",
|
||||||
|
"protocol": "dokodemo-door",
|
||||||
|
"settings": {
|
||||||
|
"address": "127.0.0.1",
|
||||||
|
"port": 8443,
|
||||||
|
"network": "tcp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outbounds": [
|
||||||
|
{
|
||||||
|
"tag": "local-injector",
|
||||||
|
"protocol": "freedom",
|
||||||
|
"settings": {
|
||||||
|
"proxyProtocol": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "vless-out",
|
||||||
|
"protocol": "vless",
|
||||||
|
"settings": {
|
||||||
|
"vnext": [
|
||||||
|
{
|
||||||
|
"address": "<PUBLIC_IP_SERVER_B>",
|
||||||
|
"port": 443,
|
||||||
|
"users": [
|
||||||
|
{
|
||||||
|
"id": "<XRAY_UUID>",
|
||||||
|
"encryption": "none"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"streamSettings": {
|
||||||
|
"network": "xhttp",
|
||||||
|
"security": "reality",
|
||||||
|
"realitySettings": {
|
||||||
|
"serverName": "yahoo.com",
|
||||||
|
"publicKey": "<SERVER_B_PUBLIC_KEY>",
|
||||||
|
"shortId": "<SHORT_ID>",
|
||||||
|
"spiderX": "/",
|
||||||
|
"fingerprint": "chrome"
|
||||||
|
},
|
||||||
|
"xhttpSettings": {
|
||||||
|
"path": "/<YOUR_RANDOM_PATH>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routing": {
|
||||||
|
"domainStrategy": "AsIs",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"inboundTag": ["public-in"],
|
||||||
|
"outboundTag": "local-injector"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"inboundTag": ["tunnel-in"],
|
||||||
|
"outboundTag": "vless-out"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
*Замените `<PUBLIC_IP_SERVER_B>` на внешний IP-адрес Сервера B.*
|
||||||
|
|
||||||
|
Открываем порт на фаерволе для клиентов:
|
||||||
|
```bash
|
||||||
|
sudo ufw allow 443/tcp
|
||||||
|
```
|
||||||
|
|
||||||
|
Перезапускаем Xray:
|
||||||
|
```bash
|
||||||
|
sudo systemctl restart xray
|
||||||
|
sudo systemctl enable xray
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Шаг 2. Установка и настройка telemt на Сервере B (_Нидерланды_)
|
||||||
|
|
||||||
|
Установка telemt описана [в основной инструкции](../Quick_start/QUICK_START_GUIDE.ru.md).
|
||||||
|
Отличие в том, что telemt должен слушать *внутренний* порт (так как 443 занят Xray-сервером), а также ожидать `PROXY` протокол из Xray туннеля.
|
||||||
|
|
||||||
|
В конфиге `config.toml` прокси (на Сервере B) укажите:
|
||||||
|
```toml
|
||||||
|
[server]
|
||||||
|
port = 8443
|
||||||
|
listen_addr_ipv4 = "127.0.0.1"
|
||||||
|
proxy_protocol = true
|
||||||
|
|
||||||
|
[general.links]
|
||||||
|
show = "*"
|
||||||
|
public_host = "<FQDN_OR_IP_SERVER_A>"
|
||||||
|
public_port = 443
|
||||||
|
```
|
||||||
|
|
||||||
|
- `port = 8443` и `listen_addr_ipv4 = "127.0.0.1"` означают, что telemt принимает подключения только изнутри (приходящие от локального Xray-процесса).
|
||||||
|
- `proxy_protocol = true` заставляет telemt парсить PROXYv2-заголовок (который добавил Xray на Сервере A через loopback), восстанавливая IP-адрес конечного пользователя (РФ).
|
||||||
|
- В `public_host` укажите публичный IP-адрес или домен Сервера A, чтобы ссылки на подключение генерировались корректно.
|
||||||
|
|
||||||
|
Перезапустите `telemt`, и клиенты смогут подключаться по выданным ссылкам.
|
||||||
|
|
||||||
Loading…
Reference in New Issue