Jump to content

Question

Posted (edited)

Всем доброго времени суток!
Помогите, пожалуйста, с решением проблемы iptables.

Задача
Перенаправления трафика с использованием TPROXY.

Проблема
При попытке перенаправления трафика на порт 51271 с помощью команды

iptables -t mangle -A XRAY -p tcp -j TPROXY --on-port 51271 --tproxy-mark 1

Получаю ошибку

iptables: No chain/target/match by that name.

Дополнение

  1. Цепочка Xray точно существует в таблице mangle
  2. Модуль xt_TPROXY.ko точно установлен согласно выводу
    ls /lib/modules/$(uname -r)/ | grep -i proxy
    
      xt_TPROXY.ko
  3. Правила для пропуска пакетов в цепочку установились согласно выводу 

Устройство и обеспечение

  • Keenetic Ultra KN1811
  • Keenetic OS 4.0.2
  • Модули ядра подсистемы Netfilter включены
  • Iptables 1.4.21

Весь скрипт

Скрытый текст
#30.30.30.30 — IP VPS сервера
#192.168.1.1 — IP LAN


#Задача для входящего трафика: 
#Трафик адресованный к локальной сети должен обрабатываться локально.
#UDP / TCP трафик должен маркироваться и отправляться на 51271 на локальном интерфейсе через порт TPROXY
#
#Задача для исходящего трафика: 
#Трафик адресованный к VPS пропускается без проксирования
#Остальной трафик маркируется
#UDP / TCP трафик должен маркироваться и отправляться на 51271 на локальном интерфейсе через порт TPROXY


#Проксирование локальной сети
ip rule add fwmark 1 table 100

#Маршрут для локальных пакетов
ip route add local 0.0.0.0/0 dev lo table 100

#Создаем цепочку xray
iptables -t mangle -N XRAY

#Пропустить пакеты / LAN
iptables -t mangle -A XRAY -d 192.168.1.1 -j RETURN

#Пропустить пакеты / Мультикастовые
iptables -t mangle -A XRAY -d 224.0.0.0/3 -j RETURN

#Перенаправляем TCP на порт 51271
iptables -t mangle -A XRAY -p 'tcp' -j TPROXY --on-port 51271 --tproxy-mark 1

#Перенаправляем UDP на порт 51271
iptables -t mangle -A XRAY -p 'udp' -j TPROXY --on-port 51271 --tproxy-mark 1

#Добавляем правило в цепочку PREROUTING
iptables -t mangle -A PREROUTING -j XRAY


#Проксирование сервера

#Создаем цепочку v2ray_mask
iptables -t mangle -N XRAY_MASK

#Пропустить пакеты / LAN
iptables -t mangle -A XRAY_MASK -d 192.168.1.1 -j RETURN

#Пропустить пакеты / Мультикастовые
iptables -t mangle -A XRAY_MASK -d 224.0.0.0/3 -j RETURN

#Пропустить пакеты / Прямые запросы на VPS
iptables -t mangle -A XRAY_MASK -d 30.30.30.30/32 -j RETURN

#Маркикуем остальной трафик
iptables -t mangle -A XRAY_MASK -j MARK --set-mark 1

#Применяем цепочку в исходящему TCP трафику
iptables -t mangle -A OUTPUT -p tcp -j XRAY_MASK

#Применяем цепочку в исходящему UDP трафику
iptables -t mangle -A OUTPUT -p udp -j XRAY_MASK

Буду признательна за любые рекомендации и помощь в решении подобной проблемы!

Edited by Skrill0

5 answers to this question

Recommended Posts

  • 0
Posted (edited)

Модуль надо загрузить перед использованием

insmod /lib/modules/$(uname -r)/xt_TPROXY.ko

Edited by r13
  • Upvote 1
  • 0
Posted

Добрый день.

У меня аналогичная проблема, но в директории /lib/modules/$(uname -r) нет модуля xt_TPROXY.ko.

Может какого компонента не хватает?

Большое спасибо!

  • 0
Posted

Кажется разобрался, не хватало компонента:

Модули ядра подсистемы Netfilter

  • 0
Posted (edited)

Уважаемые участники, это опять я.

Замучился, не могу настроить Xray в режиме TPROXY на роутере Keneetic. Прошу Вашей помощи.

Сконфигурировал Xray:

"inbounds": [
	{
        "tag": "tproxy",
        "port": 12345,
        "protocol": "dokodemo-door",
        "settings": {
            "network": "tcp,udp",
            "followRedirect": true
        },
        "streamSettings": {
            "sockopt": {
                "tproxy": "tproxy"
            }
        }   
]

Прописал маршруты:

ip rule add fwmark 0x1 table 100
ip route add local 0.0.0.0/0 dev lo table 100

Добавляю клиента:

iptables -t mangle -A PREROUTING -m mac --mac-source XX:XX:XX:XX:XX:XX -p tcp -j TPROXY --on-port 12345 --tproxy-mark 0x1
iptables -t mangle -A PREROUTING -m mac --mac-source XX:XX:XX:XX:XX:XX -p udp -j TPROXY --on-port 12345 --tproxy-mark 0x1

Все... после этого у клиента полностью пропадает доступ IPv4.

IPv6 продолжает работать, что логично.

Для проверки outbounds и работы Xray в целом добавил еще один inbound:

"inbounds": [
	{
        "tag": "redirect",
        "port": 12345,
        "protocol": "dokodemo-door",
        "settings": {
            "network": "tcp",
            "followRedirect": true
        }   
]

Добавляю того же клиента:

iptables -t nat -A PREROUTING -m mac --mac-source XX:XX:XX:XX:XX:XX -p tcp -j REDIRECT --to-port 12345
ip6tables -t nat -A PREROUTING -m mac --mac-source XX:XX:XX:XX:XX:XX -p tcp -j REDIRECT --to-port 12345

Все замечательно работает. IPv4 и IPv6 адреса на клиенте меняется на адрес моего VPS.

А вот в режиме прозрачного прокси ну никак не могу настроить.

Большое спасибо!

Edited by AGluk
  • 0
Posted

Доброго здоровья!
Вводные данные. Роутер вива 1910, прошивка 4.2.2. В локальной сети на отдельном компе с ubuntu-server крутится xray c настройкой через веб морду x-ui. 
Кинетик подключен в inbound xray по протоколу wireguard, отдельные устройства локальной сети настроены по данному маршруту через отдельную политику. Все маршрутизируется отлично. 
Как всегда, есть но... Использование протокола wireguard в локальной сети во первых не изящное решение (шифровать трафик в локальной сети). во вторых, режет скорость с 200 мб на 100 из за нагрузки на процессор.
Пробовал подключаться через клиент прокси сокс5 кинетика. Уморил он меня. Не запускается после перезагрузки роутера, надо дергать вручную. Запрыгивает вперед основного подключения к провайдеру и вешает все соединения, то просто не дает соединяться, комп, включенный в эту политику пытается подключиться к интернету, но никак. Может днс как-то не так срабатывает. Пробовал подключать разные днс на эту политику, включая DoT, DoH. Может прокси еще не допилен, или я что-то не втыкаю.
Хотелось бы, в локальной сети заворачивать трафик определенной политики роутера без шифрования в inbound dokodemo-door или еще как-нибудь без шифрования. 
Может накинете идей, как это можно сделать.
 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.