====== Установка xray-gateway на Ubuntu ======
Инструкция по установке прозрачного прокси xray для маршрутизации трафика с MikroTik через VLESS + Reality.
===== Схема работы =====
MikroTik → Linux (xray-gateway) → VPS (3X-UI) → Интернет
^ Компонент ^ IP ^ Роль ^
| MikroTik | 192.168.0.1 | Маршрутизатор |
| Linux (xray) | 192.168.0.131 | Прозрачный прокси |
| VPS (3X-UI) | 185.238.168.59 | Выходной сервер |
===== Требования =====
* Ubuntu 22.04 / 24.04
* Root-доступ
* Сетевой интерфейс **eth0**
===== Шаг 1: Установка Docker =====
apt update
apt install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable docker
systemctl start docker
Проверка:
docker --version
===== Шаг 2: Создание каталога и конфигов =====
mkdir -p /opt/xray-gateway
cd /opt/xray-gateway
==== config.json ====
nano /opt/xray-gateway/config.json
Содержимое:
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"tag": "socks",
"port": 10808,
"listen": "0.0.0.0",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true
}
},
{
"tag": "transparent",
"port": 12345,
"listen": "0.0.0.0",
"protocol": "dokodemo-door",
"settings": {
"network": "tcp,udp",
"followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
}
}
],
"outbounds": [
{
"tag": "proxy",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "185.238.168.59",
"port": 443,
"users": [
{
"id": "eac6da3c-e718-4661-80d5-d96838618122",
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"fingerprint": "chrome",
"serverName": "google.com",
"publicKey": "Ks7lJ4awVwB_yxTXNadU0CWUdIP3Jie28tJv60omWFk",
"shortId": "0f432ce5",
"spiderX": "/"
}
}
},
{
"tag": "direct",
"protocol": "freedom"
}
],
"routing": {
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
}
]
}
}
==== docker-compose.yml ====
nano /opt/xray-gateway/docker-compose.yml
Содержимое:
services:
xray:
image: ghcr.io/xtls/xray-core:latest
container_name: xray-gateway
restart: unless-stopped
command: ["run", "-c", "/etc/xray/config.json"]
network_mode: host
volumes:
- ./config.json:/etc/xray/config.json:ro
===== Шаг 3: Настройка IP forwarding =====
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
===== Шаг 4: Настройка iptables =====
Добавляем правила для разрешённых IP-адресов:
iptables -t nat -A PREROUTING -i eth0 -p tcp -s 151.252.108.239 -j REDIRECT --to-ports 12345
iptables -t nat -A PREROUTING -i eth0 -p tcp -s 85.175.4.197 -j REDIRECT --to-ports 12345
Сохраняем правила:
DEBIAN_FRONTEND=noninteractive apt install -y iptables-persistent
netfilter-persistent save
===== Шаг 5: Запуск контейнера =====
cd /opt/xray-gateway
docker compose up -d
===== Проверка =====
Логи контейнера:
docker compose -f /opt/xray-gateway/docker-compose.yml logs -f
Тест подключения:
curl -x socks5://127.0.0.1:10808 https://ifconfig.me
Должен вернуть **185.238.168.59** (IP VPS сервера).
===== Настройка MikroTik =====
Добавляем маршрут в таблицу **to_vpn**:
/ip route add dst-address=0.0.0.0/0 gateway=192.168.0.131 routing-table=to_vpn distance=1
Проверка:
/ip route print where routing-table=to_vpn
===== Управление =====
^ Команда ^ Описание ^
| ''docker compose up -d'' | Запуск |
| ''docker compose down'' | Остановка |
| ''docker compose restart'' | Перезапуск |
| ''docker compose logs -f'' | Просмотр логов |
===== Добавление нового IP =====
iptables -t nat -A PREROUTING -i eth0 -p tcp -s НОВЫЙ_IP -j REDIRECT --to-ports 12345
netfilter-persistent save
===== Удаление IP =====
iptables -t nat -D PREROUTING -i eth0 -p tcp -s УДАЛЯЕМЫЙ_IP -j REDIRECT --to-ports 12345
netfilter-persistent save
===== Просмотр правил iptables =====
iptables -t nat -L PREROUTING -n --line-numbers
===== Структура каталога =====
/opt/xray-gateway/
├── config.json
└── docker-compose.yml