Здравствуйте. Есть сервер с 1 статическим ip адресом. На нем openvz контейнеры с локальными адресами 10.0.0.0/8. Некоторые их порты через NAT подключены к портам статического ip, чтобы можно было к ним подключаться через интернет (делал, как написано здесь https://openvz.org/Using_NAT_for_container_with_private_IPs). Например:
iptables -t nat -I PREROUTING 1 -p udp -d 85.25.146.xxx --dport 1000 -i eth0 -j DNAT --to-destination 10.0.0.1:22;
iptables -t nat -I PREROUTING 1 -p tcp -d 85.25.146.xxx --dport 1000 -i eth0 -j DNAT --to-destination 10.0.0.1:22;
Все работает отлично. Но мне понадобилось установить таким образом игровой сервер projectzomboid (раньше ставил starbound, там все нормально работало). Я это сделал таким правилом:
iptables -t nat -I PREROUTING 1 -p tcp -d 85.25.146.xxx --dport 1001 -i eth0 -j DNAT --to-destination 10.0.0.1:16261;
iptables -t nat -I PREROUTING 1 -p udp -d 85.25.146.xxx --dport 1001 -i eth0 -j DNAT --to-destination 10.0.0.1:16261;
Клиент залогинивается на 16261 порту, все норм. Потом клиента должно кидать на 16262 + N порт и там уже проходить игра. Вот только этого почему-то не происходит. Я протестировал на сервере с выделенным ip, зашел в игру и запустил команду netstat -ntu
netstat -ntu
tcp6 0 0 62.75.130.xxx:16263 95.135.118.xxx:25990 TIME_WAIT
Выходит, нужно настроить iptables так, чтобы он пропускал tcp6 к локальному серверу. Но как это сделать?
Отключил поддержку ipv6 на сервере, теперь netstat показывает просто tcp, но все-равно почему-то не работает.