LinuxForum.Fans
Тема

OpenVZ, NAT и tcp6

Автор: koka3000 2 сообщений 1753 просмотров
#375454

Здравствуйте. Есть сервер с 1 статическим ip адресом. На нем openvz контейнеры с локальными адресами 10.0.0.0/8. Некоторые их порты через NAT подключены к портам статического ip, чтобы можно было к ним подключаться через интернет (делал, как написано в 1https://openvz.org/Using_NAT_for_container_with_private_IPs). Например:
[console]
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;
[/console]

Все работает отлично.
Но мне понадобилось установить таким образом игровой сервер projectzomboid (раньше ставил starbound, там все нормально работало). Я это сделал таким правилом:
[console]
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;
[/console]

Клиент залогинивается на 16261 порту, все норм. Потом клиента должно кидать на 16262 + N порт и там уже проходить игра. Вот только этого почему-то не происходит.
Я протестировал на сервере с выделенным ip, зашел в игру и запустил команду netstat -ntu
[console]
netstat -ntu
tcp6 0 0 62.75.130.xxx:16263 95.135.118.xxx:25990 TIME_WAIT
[/console]

Выходит, нужно настроить iptables так, чтобы он пропускал tcp6 к локальному серверу. Но как это сделать?

#375458

1) Отключил поддержку ipv6 на сервере, теперь netstat показывает просто tcp, но все-равно почему-то не работает.
2) На сервере с выделенным IP запустил прослушку порта 16263
[console]nc -l -p 16263 -vv
listening on [any] 16263 ...
connect to [85.25.146.xxx] from 32-118-135-95.pool.ukrtel.net [95.135.118.32] 29171[/console]
Выходит, что NAT здесь вообще не срабатывает и запрос идет на статический ип, а не на локальный... Как быть?

Войдите или зарегистрируйтесь, чтобы ответить.