Задать вопрос
@Dumatel

Как направить трафик на прокси сервер с помощью Mikrotik?

Добрый день!
Есть прозрачный прокси сервер XRAY который проксирует всё и маркирует свой трафик:
{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "tag": "all-in",
      "port": 12345,
      "protocol": "dokodemo-door",
      "settings": {
        "network": "tcp,udp",
        "followRedirect": true
      },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls", "quic"]
      },
      "streamSettings": {
        "sockopt": {
          "tproxy": "tproxy"
        }
      }
    }
  ],
  "outbounds": [
    {
     ....Настройки сервера
      },
      "streamSettings": {
        "sockopt": {
          # Маркировка проксированного трафика 
          "mark": 255
        },
     ....Настройки сервера
        }
      }
    },
   },
    {
      "tag": "dns-out",
      "protocol": "dns",
      "streamSettings": {
        "sockopt": {
          "mark": 255
        }
      }
    }
  ],
  "dns": {
    "servers": [
      "https://1.1.1.1/dns-query",
      "https://dns.google/dns-query",
    ]
  },
  "routing": {
    "domainMatcher": "mph",
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "inboundTag": ["all-in"],
        "port": 53,
        "network": "udp",
        "outboundTag": "dns-out"
      },
      {
        "type": "field",
        "ip": ["1.1.1.1", "8.8.8.8"],
        "outboundTag": "proxy"
      },
    ]
  }
}


iptables на пк с прокси, прописан net.ipv4.ip_forward=1
# Исключаем трафик прокси и другое
iptables -t mangle -N XRAY
iptables -t mangle -A XRAY -d 127.0.0.1/32 -j RETURN
iptables -t mangle -A XRAY -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A XRAY -d 255.255.255.255/32 -j RETURN
iptables -t mangle -A XRAY -d 192.168.0.0/24 -p tcp -j RETURN
iptables -t mangle -A XRAY -d 192.168.0.0/24 -p udp ! --dport 53 -j RETURN
iptables -t mangle -A XRAY -j RETURN -m mark --mark 0xff
iptables -t mangle -A XRAY -p udp -j TPROXY --on-ip 127.0.0.1 --on-port 12345 --tproxy-mark 1
iptables -t mangle -A XRAY -p tcp -j TPROXY --on-ip 127.0.0.1 --on-port 12345 --tproxy-mark 1
iptables -t mangle -A PREROUTING -j XRAY

iptables -t mangle -N XRAY_MASK
iptables -t mangle -A XRAY_MASK -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A XRAY_MASK -d 255.255.255.255/32 -j RETURN
iptables -t mangle -A XRAY_MASK -d 192.168.0.0/24 -p tcp -j RETURN
iptables -t mangle -A XRAY_MASK -d 192.168.0.0/24 -p udp ! --dport 53 -j RETURN
iptables -t mangle -A XRAY_MASK -j RETURN -m mark --mark 0xff
iptables -t mangle -A XRAY_MASK -p udp -j MARK --set-mark 1
iptables -t mangle -A XRAY_MASK -p tcp -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -j XRAY_MASK

iptables -t mangle -N DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT
iptables -t mangle -I PREROUTING -p tcp -m socket -j DIVERT

Всё отлично работает, если на другом клиентском ПК настроить шлюзом этот пк с прокси.
Как направить трафик через микротик? (Клиентские ПК -> Микротик -> Прокси) На микротике как-то так:
/ip firewall mangle
add action=mark-connection chain=prerouting connection-mark=no-mark connection-state=new dst-address-list=to-proxy new-connection-mark=to-proxy-conn
add action=mark-routing chain=prerouting connection-mark=to-proxy-conn new-routing-mark=proxy
/ip route
add distance=1 dst-address=0.0.0.0/0 gateway=192.168.0.5 routing-table=proxy scope=30 suppress-hw-offload=no target-scope=10

Т.е. по отдельности всё работает, проблема связать микротик и прокси. Все ПК находятся в одной сети 192.168.0.0/24
  • Вопрос задан
  • 35 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    1C-разработчик
    8 месяцев
    Далее
  • Нетология
    Python-разработчик с нуля
    6 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы