Привет, народ. Я хочу запустить на компе почтовый сервер, мне надо чтобы трафик, исходящий из моего почтового сервера на порты 25, 465, 587, шел на интерфейс xray0. проблема в том, что, как я понял, я не могу просто сделать что-то типа
iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 2
, а потом
ip rule add fwmark 2 table 100
ip route add default dev xray0 table 100
, потому что у меня на этом же компе и запущен xray туннель, то есть если мне кто-то захочет передать письмо по 25 порту, откроется соединение от xray к почтовому серверу типа 127.0.0.1:7483->127.0.0.1:25, но этот пакет пометится маркой 2 и полетит опять в xray….. или нет? может, пакет сначала попадет под правила таблицы local??
можно сделать в xray такую штуку:
и потом типа
ip rule add dport 25 not fwmark 2 table 100
или если у нас стоит приоритет 0 для таблицы local, то есть, пакеты, которые пойдут на 127.0.0.1 по любому должны пройти через нее и попасть куда надо, то мне просто стоит добавить правило с номером приоритета больше, чем 0, то есть пакет попадет под мое правило ПОСЛЕ того как его проверит таблица локал. тогда мне просто нужно
iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK 2
ip rule add fwmark 2 priority 20 table 100
ip route add default dev xray0 table 100
и все будет работать??? или я не правильно понимаю? а вот еще вопрос, если пакет ушел через xray0, а вернулся через 127.0.0.1, то наверное, это тоже как-то неправильно, почтовик может не понять (да и ядро), что это именно ответ… тогда, возможно стоило бы ваще сделать tproxy на xray… но я пока не понял как.