Шлюз XRay Vless tun2socks

инструкция полностью рабочая на октябрь 2025 года

Предполагается что вы уже настроили серверную часть Xray например с помощью панели управления 3x-ui и протестировали конфигурацию клиента например на смартфоне или персональном ПК.

Используем внешний мини ПК с Debian Linux (один сетевой порт достаточно) или виртуальную машину. Debian будет работать как промежуточный узел: весь трафик с MikroTik будет направляться на Debian, где tun2socks отправит его в Xray socks прокси.

Установка на Linux

Установите Debian 12.5 на мини ПК или в виртуальную машину. Во время установки выберете минимальный набор. SSH сервер

Теперь подключимся по SSH любым способом можно Termius если виртуальная машина можно и на рабочем столе

Дадим root доступ для нашего пользователя (у вас имя пользователя может отличаться):

su - 
sudo usermod -aG sudo kadmin

По желанию:

apt install mc htop -y

Включение маршрутизации в Linux

Откройте /etc/sysctl.conf

sudo nano /etc/sysctl.conf

Раскоментируйте строку net.ipv4.ip_forward=1

net.ipv4.ip_forward=1

ctrl+o сохраняем и ctrl+x выходим Далее, чтобы применить новую настройку, которую мы добавили, нам необходимо выполнить следующую команду:

sudo sysctl -p

Перегрузитесь. Проверка:

sysctl net.ipv4.ip_forward
# вывод: net.ipv4.ip_forward = 1

Установка Xray

Скачайте готовый бинарник Xray под вашу архитектуру из релизов: https://github.com/XTLS/Xray-core/releases/ и распакуйте в /opt/xray/: предварительно создав их

Все команды из под root (su -)

mkdir /opt/xray/
mkdir /opt/xray/config/

В каталог /opt/xray/config/ позже положим конфиг.

Распаковать и переместить можно через MC

cd /opt/xray
unzip Xray-linux-64.zip

Установка tun2socks

Скачайте готовый бинарник tun2socks из релизов: https://github.com/xjasonlyu/tun2socks/releases/ и распакуйте в /opt/tun2socks/:

mkdir /opt/tun2socks/
cd /opt/tun2socks/
unzip tun2socks-linux-amd64.zip

Подготовка скрипта start.sh

Создаём исполняемый скрипт touch /opt/start.sh, который будет:

  • останавливать старые процессы

  • настраивать интерфейсы и маршруты

  • генерировать конфиг Xray на основе переменных

  • запускать Xray и tun2socks

Пример содержимого (вставьте ваши значения для переменных):

Переменная
Пример значения (у вас должны быть свои)
Пояснение

SERVER_ADDRESS

myhost.com

Конфигурация Xray клиента

SERVER_PORT

443

Конфигурация Xray клиента

USER_ID

e3203dfe-9s62-4de5-bf9b-ecd36c9af225

Конфигурация Xray клиента

ENCRYPTION

none

Конфигурация Xray клиента

FINGERPRINT_FP

chrome

Конфигурация Xray клиента

SERVER_NAME_SNI

apple.com

Конфигурация Xray клиента

PUBLIC_KEY_PBK

fTndnleCTkK9_jtpwCAdxtEwJUkQ22oY1W8dTza2xHs

Конфигурация Xray клиента

SHORT_ID_SID

29d2d3d5a398

Конфигурация Xray клиента

GATEWAY

172.18.20.5

IP шлюз по-умолчанию в Linux (подсмотреть через ip r)

ADAPTER_NAME

eth0

Название физического адаптера в Linux (подсмотреть через ip a)

FLOW

xtls-rprx-vision

Конфигурация Xray клиента

Открываем его на редактирование и вместо *** вставляем данные

nano /opt/start.sh
#!/bin/sh
echo "Starting setup Linux please wait"
pkill xray
pkill tun2socks
sleep 1

# Заполните данные переменные:
SERVER_ADDRESS=***
SERVER_PORT=***
USER_ID=***
ENCRYPTION=***
FINGERPRINT_FP=***
SERVER_NAME_SNI=***
PUBLIC_KEY_PBK=***
SHORT_ID_SID=***
GATEWAY=***
ADAPTER_NAME=***
FLOW=***

# Получение IP-адреса
SERVER_IP_ADDRESS=$(getent ahosts $SERVER_ADDRESS | head -n 1 | awk '{print $1}')
if [ -z "$SERVER_IP_ADDRESS" ]; then
  echo "Failed to obtain an IP address for FQDN $SERVER_ADDRESS"
  exit 1
fi

# Сетевые настройки
ip tuntap del mode tun dev tun0
ip tuntap add mode tun dev tun0
ip addr add 172.31.200.10/30 dev tun0
ip link set dev tun0 up
ip route del default via $GATEWAY
ip route add default via 172.31.200.10
ip route add $SERVER_IP_ADDRESS/32 via $GATEWAY
ip route add 1.0.0.1/32 via $GATEWAY
ip route add 8.8.4.4/32 via $GATEWAY
ip route add 192.168.0.0/16 via $GATEWAY
ip route add 10.0.0.0/8 via $GATEWAY
ip route add 172.16.0.0/12 via $GATEWAY

# Обновление resolv.conf
rm -f /etc/resolv.conf
tee -a /etc/resolv.conf <<< "nameserver $GATEWAY"
tee -a /etc/resolv.conf <<< "nameserver 1.0.0.1"
tee -a /etc/resolv.conf <<< "nameserver 8.8.4.4"

# Генерация конфигурации для Xray
cat <<EOF > /opt/xray/config/config.json
{
  "log": {
    "loglevel": "silent"
  },
  "inbounds": [
    {
      "port": 10800,
      "listen": "0.0.0.0",
      "protocol": "socks",
      "settings": {
        "auth": "noauth",
        "udp": true
      },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls", "quic"],
        "routeOnly": true
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "vless",
      "settings": {
        "vnext": [
          {
            "address": "$SERVER_ADDRESS",
            "port": $SERVER_PORT,
            "users": [
              {
                "id": "$USER_ID",
                "encryption": "$ENCRYPTION",
                "flow" : "xtls-rprx-vision",
                "alterId": 0
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "fingerprint": "$FINGERPRINT_FP",
          "serverName": "$SERVER_NAME_SNI",
          "publicKey": "$PUBLIC_KEY_PBK",
          "spiderX": "",
          "shortId": "$SHORT_ID_SID"
        }
      },
      "tag": "proxy"
    }
  ]
}
EOF

echo "Start Xray core"
/opt/xray/xray run -config /opt/xray/config/config.json &

echo "Start tun2socks"
/opt/tun2socks/tun2socks-linux-amd64 -loglevel silent -tcp-sndbuf 3m -tcp-rcvbuf 3m -device tun0 -proxy socks5://127.0.0.1:10800 -interface $ADAPTER_NAME &

echo "Linux customization is complete"

Все данные берем из ссылки 3X-UI

Сохраняем, делаем исполняемым и запускаем:

chmod +x /opt/start.sh
/bin/bash /opt/start.sh

Должно получиться так

далее надо его включить на автозапуск при загрузки по этой инструкции

Включение rc.local в Debian 10

Как этим пользоваться- либо перенаправить трафик например в роутере или на машинах установить шлюз ip Дебиана (например для ТВ)


На кофе автору

Последнее обновление