Подключитесь к серверу от имени root и выполните:
nano install.sh
Вставьте данный скрипт:
Загрузка содержимого install_remna.sh...
Подключитесь к серверу от имени root и выполните:
chmod +x install.sh && bash install.sh
Добавьте этот блок в раздел outbounds вашего конфига Xray:
{
"tag": "warp-out",
"protocol": "freedom",
"settings": {},
"streamSettings": {
"sockopt": {
"interface": "warp",
"tcpFastOpen": true
}
}
}
Добавьте этот блок в раздел routing вашего конфига Xray:
domain: Прописать домены (или geosite) для маршрутизации определенных сайтов.
inboundTag: Прописать ваши инбаунды "Node-1" и "Node-2", чтобы весь их трафик пустить через WARP
{
"type": "field",
"domain": ["netflix.com", "youtube.com", "geosite:category-ru"],
"inboundTag": ["Node-1", "Node-2"],
"outboundTag": "warp-out"
}
В настройках конфигурации Xray укажите путь к логам: /var/log/remnanode/access.log
"log": {
"error": "/var/log/remnanode/error.log",
"access": "/var/log/remnanode/access.log",
"loglevel": "error"
},
В конфиг Xray добавьте правило маршрутизации routing:
{
"type": "field",
"protocol": ["bittorrent"],
"outboundTag": "TORRENT"
}
И соответствующий outbound:
{
"protocol": "blackhole",
"tag": "TORRENT"
}
Измените ваш streamSettings в inbounds вашего конфига Xray:
Необходимо установить xver 1, так как в nginx включен proxy_protocol, чтобы логи nginx определяли реальный IP клиента, открывшего адрес заглушки.
В target (он же dest) указываем локальный адрес и порт заглушки.
В serverNames указываем domain заглушки.
"streamSettings": {
"network": "raw",
"security": "reality",
"realitySettings": {
"show": false,
"xver": 1,
"target": "127.0.0.1:9443",
"shortIds": [
""
],
"publicKey": "",
"privateKey": "",
"serverNames": [
"gateway.domain.com"
]
}
}
Функция для автоматического переключения DNS-записи на наименее загруженную ноду. Включено в меню Доп. Компоненты -> Load Balancer.
Порядок настройки:
Первым пунктом необходимо настроить конфигурацию Xray на зарубежной ноде.
Измените target, serverNames, сгенерируйте ключи publicKey и privateKey
Запомните publicKey вашего инбаунда, он понадобится при настройке RU ноды.
{
"log": {
"error": "/var/log/remnanode/error.log",
"access": "/var/log/remnanode/access.log",
"loglevel": "error"
},
"inbounds": [
{
"tag": "Vless TCP Reality EU",
"port": 443,
"listen": "0.0.0.0",
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
},
"streamSettings": {
"network": "raw",
"security": "reality",
"realitySettings": {
"show": false,
"xver": 0,
"target": "example.com:443",
"shortIds": [
""
],
"publicKey": "12345678qwerty",
"privateKey": "87654321",
"serverNames": [
"example.com"
]
}
}
}
],
"outbounds": [
{
"tag": "DIRECT",
"protocol": "freedom"
},
{
"tag": "BLOCK",
"protocol": "blackhole"
}
],
"routing": {
"rules": [
{
"ip": [
"geoip:private"
],
"type": "field",
"outboundTag": "BLOCK"
},
{
"type": "field",
"domain": [
"geosite:private"
],
"outboundTag": "BLOCK"
},
{
"type": "field",
"protocol": [
"bittorrent"
],
"outboundTag": "BLOCK"
}
]
}
}
Вторым этапом необходимо создать пользователя Bridge (он будет сервисным пользователем, не давайте ключи для подключения к данному профилю!).
Запомните VLESS UUID пользователя Bridge, он понадобится при настройке RU ноды.
Третьим этапом необходимо настроить конфигурацию Xray на RU ноде.
В inbounds Vless TCP Reality RU измените target, serverNames, сгенерируйте ключи publicKey и privateKey
В outbounds vnext-outbound замените IP/domain вашей EU ноды, VLESS UUID пользователя Bridge, serverNames EU ноды.
В routing добавьте правила маршрутизации. geoip:ru и geosite:category-ru пустите напрямую с RU ноды, inboundTag укажите ваш inbound RU ноды, чтобы весь оставшийся трафик ушел на EU ноду.
{
"log": {
"error": "/var/log/remnanode/error.log",
"access": "/var/log/remnanode/access.log",
"loglevel": "error"
},
"inbounds": [
{
"tag": "Vless TCP Reality RU",
"port": 443,
"listen": "0.0.0.0",
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
},
"streamSettings": {
"network": "raw",
"security": "reality",
"realitySettings": {
"target": "example.com:443",
"show": false,
"xver": 0,
"shortIds": [
""
],
"publicKey": "REPLACE_WITH_YOUR_PUBLIC_KEY",
"privateKey": "REPLACE_WITH_YOUR_PRIVATE_KEY",
"serverNames": [
"example.com"
]
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "DIRECT"
},
{
"protocol": "blackhole",
"tag": "BLOCK"
},
{
"protocol": "vless",
"tag": "vnext-outbound",
"settings": {
"vnext": [
{
"address": "IP_вашей_ноды_EU",
"port": 443,
"users": [
{
"id": "VLESS UUID_пользователя_Bride",
"flow": "xtls-rprx-vision",
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "raw",
"security": "reality",
"realitySettings": {
"serverName": "example.com",
"publicKey": "publicKey_вашей_ноды_EUы",
"spiderX": "/"
}
}
}
],
"routing": {
"rules": [
{
"ip": [
"geoip:private"
],
"outboundTag": "BLOCK",
"type": "field"
},
{
"domain": [
"geosite:private"
],
"outboundTag": "BLOCK",
"type": "field"
},
{
"protocol": [
"bittorrent"
],
"outboundTag": "BLOCK",
"type": "field"
},
{
"ip": [
"geoip:ru"
],
"outboundTag": "DIRECT",
"type": "field"
},
{
"domain": [
"geosite:category-ru"
],
"outboundTag": "DIRECT",
"type": "field"
},
{
"type": "field",
"inboundTag": [
"Vless TCP Reality RU"
],
"outboundTag": "vnext-outbound"
}
]
}
}