TS-Server

Перенос сервера TeamSpeak: смена хостинга без потерь

Как перенести сервер TeamSpeak на другой VDS: какие файлы копировать, в каком порядке переезжать, что делать со сменой IP и как откатиться, если не вышло.

Проверено 7 августа 2026. Список файлов переезда сверен с официальной статьёй TeamSpeak «I want to move my server to another machine» 7 августа 2026 года; поведение бесплатной лицензии — по серверу 3.13.8.

Переезд сервера TeamSpeak — на другой VDS, к другому хостеру, хоть с Windows на Linux — это копирование нескольких файлов. Каналы, группы, права, баны и даже админки участников переедут вместе с ними, и никто не заметит подмены. Но у переезда есть три места, где легко потерять данные: копирование базы на работающем сервере, запуск на более старой версии и преждевременное удаление старой машины. Эта инструкция проводит через переезд так, чтобы в каждый момент у вас оставался путь назад.

Здесь речь именно о переносе. Регулярный бэкап — отдельная тема, он настроен отдельным шагом в инструкции по установке на Ubuntu: если бэкапа ещё нет, начните с него, потому что перенос по сути и есть восстановление свежего бэкапа на новом месте.

Что переедет, а что нет. В базе ts3server.sqlitedb живёт всё содержимое сервера: виртуальные серверы, каналы со всеми настройками, серверные и канальные группы, права, история банов, зарегистрированные идентификации пользователей вместе с их группами. В каталоге files/ — аватарки, иконки и файлы, загруженные в каналы. Переносите оба — переезжает всё. Не переедут только вещи, которые живут в операционной системе, а не в TeamSpeak: юнит systemd, правила фаервола, cron с бэкапом — их вы заново настроите на новой машине по той же инструкции.

Подготовьте новую машину

Выберите VDS — критерии те же, что при первой установке: минимальный тариф хватает с запасом, важен не CPU, а пинг до участников. Подробно — в статье про выбор VDS для TeamSpeak. Если заодно меняете регион, помните: переезд из Амстердама в Москву поменяет задержку всем участникам, в обе стороны.

Установите на новую машину сервер TeamSpeak по инструкции для Ubuntu — всё до шага с systemd включительно: пользователь, проверка контрольной суммы, принятие лицензии, юнит, фаервол. Первый запуск сделайте как обычно: сервер создаст свежую пустую базу и напечатает пароль serveradmin. Эти учётные данные можно не сохранять — база всё равно будет заменена вашей, вместе с вашим старым паролем serveradmin.

Про версии — важно. Ставьте версию той же или новее, чем на старом сервере. Более новый сервер при первом запуске со старой базой сам обновит её схему — это штатный путь. А вот в обратную сторону дороги нет: более старый сервер с базой, которую уже трогала новая версия, работать откажется. Понизить версию можно только ручной правкой базы по changelog — на практике это означает «нельзя». Проверить версию на старом сервере: ./ts3server_startscript.sh не покажет, а вот лог покажет первой же строкой:

grep -h "TeamSpeak 3 Server" /opt/teamspeak/teamspeak3-server_linux_amd64/logs/ts3server_*_1.log | tail -n 1

Проще способ: версия написана в имени скачанного архива, а на живом сервере её видно в клиенте — правый клик по серверу → в окне подключения, либо во вкладке с информацией о сервере.

Когда сервер на новой машине поднялся и вы дошли до пустого лобби — остановите его:

systemctl stop ts3server

Остановите старый сервер

Перед копированием старый сервер обязательно останавливается:

systemctl stop ts3server

Причина не в вежливости, а в устройстве SQLite. Работающий сервер пишет в ts3server.sqlitedb постоянно — кто-то зашёл, кто-то сменил канал, тикнул счётчик времени. Копируя файл в этот момент, вы можете застать его посреди транзакции: часть страниц базы уже новая, часть ещё старая. Такая копия — лотерея: в лучшем случае она откроется с потерей последних изменений, в худшем новый сервер объявит базу повреждённой и создаст пустую. Остановленный сервер закрывает базу корректно, и файл гарантированно цел.

Предупредите участников заранее: с этого момента и до переключения на новый адрес сервер недоступен. При подготовленной новой машине простой — минуты.

Скопируйте файлы переезда

Список — из официальной статьи TeamSpeak о переносе сервера. Всё лежит в каталоге сервера (в нашей установке — /opt/teamspeak/teamspeak3-server_linux_amd64/):

ФайлЧто в нём
ts3server.sqlitedbКаналы, группы, права, баны, идентификации
files/ целикомАватарки, иконки, файлы из каналов
ts3server.iniПорты и привязка ServerQuery
query_ip_allowlist.txt, query_ip_denylist.txtДоступ к ServerQuery
licensekey.datПлатная лицензия, если она есть

Что случится, если забыть каждый из них:

  • ts3server.sqlitedb — потеряете всё. Новый сервер поднимется пустым, права придётся раздавать заново.
  • files/ — сервер работает, но иконки групп пропали, аватарки пустые, файловые каналы обнулились.
  • ts3server.ini — сервер стартует с настройками по умолчанию. Нестандартные порты слетят, а ServerQuery, привязанный к localhost, снова начнёт слушать все адреса.
  • Списки доступа — сервер создаст их заново с одним 127.0.0.1, и ваши доверенные адреса вместе с банами query-ботов пропадут.
  • licensekey.dat — сервер откатится на бесплатную лицензию: один виртуальный сервер, 32 слота. Что даёт каждая — в справочнике по лицензиям. На бесплатной лицензии этого файла нет, копировать нечего.

В старых версиях сервера списки доступа назывались query_ip_whitelist.txt и query_ip_blacklist.txt — если у вас такие, копируйте их, новый сервер поймёт. Если сервер использует TSDNS, добавьте к списку tsdns/tsdns_settings.ini; в типовой установке TSDNS не используется — его давно заменила SRV-запись. Каталог logs/ переносить не обязательно: история в нём полезная, но на работу сервера не влияет.

Собираем архив на старой машине и перекидываем на новую одной командой:

cd /opt/teamspeak/teamspeak3-server_linux_amd64
tar czf /root/ts3-move.tar.gz --ignore-failed-read \
    ts3server.sqlitedb files ts3server.ini \
    query_ip_allowlist.txt query_ip_denylist.txt licensekey.dat
scp /root/ts3-move.tar.gz root@203.0.113.20:/root/

203.0.113.20 — адрес новой машины. Флаг --ignore-failed-read позволяет команде не падать из-за файлов, которых у вас нет (например, licensekey.dat на бесплатной лицензии).

Один нюанс для владельцев платной лицензии: пока licensekey.dat лежит на обеих машинах, не запускайте оба сервера одновременно. Сервер учёта лицензий TeamSpeak видит один ключ с двух адресов, и один из серверов ляжет с ошибкой virtual server is running elsewhere, shutting down!. Наш порядок это исключает сам собой — старый сервер остановлен ещё до копирования, — но не поднимайте его «на минутку посмотреть», пока работает новый.

Разверните архив и запустите новый сервер

На новой машине распакуйте архив поверх свежей установки. Пустую базу, созданную при первом запуске, просто перезаписываем:

cd /opt/teamspeak/teamspeak3-server_linux_amd64
tar xzf /root/ts3-move.tar.gz
chown -R teamspeak:teamspeak /opt/teamspeak
systemctl start ts3server

chown обязателен: файлы приехали от root, а сервер работает от пользователя teamspeak — без смены владельца он не сможет писать в собственную базу. Если новая версия сервера новее старой, при этом первом запуске она обновит схему базы — в логе появятся строки про миграцию, это нормально.

Проверьте, что сервис поднялся и в логе нет ошибок про базу:

systemctl status ts3server
tail -n 30 /opt/teamspeak/teamspeak3-server_linux_amd64/logs/$(ls -t /opt/teamspeak/teamspeak3-server_linux_amd64/logs | head -1)

Проверьте перенос, пока старый сервер цел

Старая машина сейчас — ваша страховка. Не трогайте её, пока лично не убедитесь, что на новой всё на месте. Подключитесь клиентом напрямую по IP новой машины (203.0.113.20) и пройдитесь по списку:

  • Каналы — вся структура на месте, включая подканалы и пароли на каналах.
  • Ваши права — рядом с ником иконка вашей группы, контекстные меню администратора доступны. Если да — идентификации переехали: сервер узнал ваш клиентский ключ по базе, никаких privilege key вводить не нужно.
  • Иконки и аватарки — иконки групп и каналов отрисовались, а не показывают заглушки. Это проверка каталога files/ и заодно порта 30033/TCP на новом фаерволе: файлы ходят отдельным портом, и забытое правило ufw проявится именно здесь.
  • Баны — список банов на месте (в клиенте: Tools → Ban List).
  • Второй человек — попросите кого-то из участников зайти по новому IP и сказать пару слов. Голос в обе стороны — финальная проверка UDP 9987.

Что-то не сошлось — разбирайтесь сейчас, у вас есть нетронутый оригинал и сколько угодно попыток: остановите новый сервер, поправьте, распакуйте архив заново.

Переключите участников на новый адрес

Сервер переехал, но участники об этом не знают: в их закладках — старый адрес. Клиент TeamSpeak не умеет узнавать о переезде сам, здесь нет никакого механизма перенаправления. Дальнейшее зависит от того, что было в закладках.

Если участники подключались по IP — придётся написать каждому: «новый адрес такой-то, поменяйте закладку». Кто сообщение пропустил, тот будет стучаться в мёртвый адрес и решит, что сервер умер. Это худший сценарий, и он же — причина завести домен прямо сейчас, чтобы следующий переезд прошёл без рассылки.

Если участники подключались по домену — переезд для них невидим. Зайдите в панель DNS и поменяйте в A-записи старый IP на новый:

ts.example.com.    3600    IN    A    203.0.113.20

SRV-запись менять не нужно: она указывает на имя ts.example.com, а не на IP, и порт не изменился. Клиенты подхватят новый адрес, когда истечёт TTL записи — при TTL 3600 это до часа. Хотите переключение быстрее — за день до переезда уменьшите TTL до 300, а после переезда верните. Как завести домен и настроить обе записи с нуля — в шаге про домен инструкции по установке.

Погасите старый сервер — не сразу

Даже после успешной проверки не удаляйте старую машину в день переезда. Подержите её выключенной неделю: за это время всплывёт то, что не всплыло при проверке, — участник с экзотической ролью, забытый query-бот, файл из дальнего канала. VDS на неделю стоит копейки по сравнению с ценой невосстановимой потери.

На старой машине сервер уже остановлен — осталось запретить ему подниматься после случайной перезагрузки:

systemctl disable ts3server

Это особенно важно при платной лицензии: случайно ожившая старая машина с тем же licensekey.dat уронит новую (см. выше про virtual server is running elsewhere). Через неделю-две спокойной работы забирайте со старой машины последний архив ts3-move.tar.gz к себе на компьютер — и удаляйте VDS. Не забудьте перенастроить на новой машине ночной бэкап: cron не переехал вместе с базой.

Откатитесь, если что-то пошло не так

План отката простой, потому что мы ничего не ломали: старая машина всё это время стоит с нетронутыми данными.

  1. Остановите новый сервер: systemctl stop ts3server на новой машине.
  2. Запустите старый: systemctl start ts3server на старой (и systemctl enable ts3server, если успели отключить).
  3. Верните A-запись на старый IP, если успели поменять.

Одно предостережение. Если новый сервер успел поработать и участники на нём что-то меняли — создавали каналы, получали права, — эти изменения живут в базе новой машины и при откате пропадут. Перенести их назад копированием базы получится, только если версии серверов совпадают: базу, которую трогала более новая версия, старый сервер не примет. Поэтому решение об откате принимайте быстро, пока на новом сервере не накопилась жизнь, которую жалко терять.


Весь переезд — это одна остановка сервера, один архив с базой и настройками и одна A-запись. Данные ни в один момент не существуют в единственном экземпляре, у каждого шага есть путь назад, а участники с доменом в закладках вообще не узнают, что сервер сменил страну. Именно так и выглядит правильный переезд: скучно.

Если следующий переезд ещё только планируется, заранее сравните хостинги TeamSpeak по локации, каналу и условиям возврата. Это проще сделать до оплаты новой машины, пока старый сервер продолжает работать.

Частые вопросы

Можно ли скопировать базу TeamSpeak, не останавливая сервер?

Нельзя. База ts3server.sqlitedb — это SQLite, и во время работы сервер пишет в неё постоянно. Копия, снятая на ходу, может поймать момент незавершённой записи — такой файл на новой машине не откроется или откроется с потерянными данными. Остановка сервера на время копирования занимает секунды и полностью снимает риск.

Сохранятся ли права администраторов после переноса?

Да, автоматически. Права в TeamSpeak привязаны не к нику, а к идентификации — криптографическому ключу в клиенте пользователя. Сервер хранит в базе ts3server.sqlitedb только публичные отпечатки этих ключей вместе с группами. Переносите базу — переносятся и они: каждый участник зайдёт на новый сервер со своей идентификацией и получит свои группы без всяких privilege key.

Можно ли перенести сервер TeamSpeak с Windows на Linux?

Да. Формат базы SQLite не зависит от операционной системы, каталог files/ — обычные файлы. Установите на Linux сервер той же или более новой версии, скопируйте в его каталог ts3server.sqlitedb, files/ и остальные файлы из списка — всё поднимется. Единственное отличие — конфиг ts3server.ini стоит просмотреть глазами: пути в нём могли быть записаны по-виндовому.

Что делать, если старый сервер уже недоступен?

Тогда перенос превращается в восстановление из бэкапа: разворачиваете последний архив на новой машине тем же способом. Если бэкапов нет — восстанавливать нечего, сервер придётся настраивать с нуля, а участникам заново раздавать права. Это главный аргумент за ночной бэкап с копией на другой машине: настройте его до того, как он понадобится.

Что почитать дальше