Имеется два сервака на бубунтах 22. Оба имеют внешний айпишники, и соединены в локальную сеть посредством ZeroTier. Нужно прокинуть порт 25566 с шлюза, на порт 25566 игровой тачки, при этом сохранив исходный айпишник клиента.
С моим текущим конфигом игровая тачка видит при подключении айпишник шлюза.
Настроил проброс через nftables, но не откажусь от других вариантов с отдельным прокси, который решит мою задачу, но с учётом того, что прокинуть в сумме мне нужно будет несколько сотен портов, и каждый отдельно вписывать я не буду, но для тестов пока обойдёмся одним
Машина 1 - шлюз:
IP внешний - 144.144.144.144
Внешний интерфейс - ens3
IP локальный 10.147.17.22
Интерфейс локальный ztcfwzuixs
Машина 2 - игровой сервак
IP внешний - 133.133.133.133
Внешний интерфейс - eno1
IP локальный 10.147.17.92
Интерфейс локальный ztcfwzuixs
На шлюзе с божьей помощью слепил конфиг nftables
table ip nat {
chain PREROUTING {
type nat hook prerouting priority 0; policy accept;
tcp dport 25566 dnat to 10.147.17.92:25566
udp dport 25566 dnat to 10.147.17.92:25566
}
chain POSTROUTING {
type nat hook postrouting priority 100;
oif "ztcfwzuixs" counter masquerade
}
chain OUTPUT {
type nat hook output priority 0; policy accept;
}
}
table ip filter {
chain INPUT {
type filter hook input priority 0; policy accept;
}
chain FORWARD {
type filter hook forward priority 0; policy accept;
}
}
Без маскарадинга коннекта нет вообще. Я +- понимаю, как это всё работает, но сети в целом для меня употребимы только под тяжёлыми веществами