Tous les guides que j'ai trouvés sur la configuration d'un serveur dédié Valheim sous Linux présentaient des lacunes à un endroit ou à un autre., j'ai donc décidé de documenter ma propre configuration pour le bénéfice des autres. Ce guide s'adresse aux utilisateurs souhaitant configurer le serveur dédié Valheim sur un serveur Linux sans tête. Si vous souhaitez simplement l'exécuter sur un bureau toujours actif avec une connexion graphique, ce guide pourrait ne pas vous être aussi utile.
Ce guide est écrit pour Debian 11 (cible), mais une grande partie, sinon la totalité, s'appliquera également à Ubuntu, car il est basé sur Debian. Le crédit doit aller au Guide des serveurs d'hébergement sur le wiki Valheim Fandom pour des informations de base sur la façon d'invoquer l'exécutable du serveur, quels ports doivent être exposés au monde extérieur, et options de configuration.
Installez le jeu via SteamCMD
SteamCMD est essentiellement Steam sans tête pour les serveurs sans tête. Nous en avons besoin pour télécharger le serveur dédié de Valheim.
Configurer Multiarch
SteamCMD est fourni par Debian, mais comme un i386 (32-peu x86) emballer, vous devrez donc ajouter l'architecture i386 à dpkg sur votre système pour installer les packages i386. (Pour plus d'informations, voir MultiArch/HOWTO sur le wiki Debian.) Pour faire ça, exécutez les commandes suivantes.
$ sudo dpkg --add-architecture $ sudo apt-get mise à jour
Installer SteamCMD
Maintenant, installez SteamCMD lui-même.
$ sudo apt-get install steamcmd
Configurer un utilisateur et un groupe distincts pour Steam
Il est toujours préférable d'exécuter les services en tant qu'utilisateur et groupe dédiés à partir de tout le reste de votre système., de sorte que si un service est compromis, un attaquant ne peut accéder qu'à ce service’fichiers. (Nous renforcerons davantage le service du système Valheim plus tard.) Normalement, vous créeriez un « système » utilisateur pour les services système, mais Steam, même le SteamCMD sans tête, ne semble pas se comporter correctement à moins qu'il ne soit exécuté dans un environnement utilisateur normal. (Voir la page de manuel adduser(8) pour plus de détails sur la différence entre un utilisateur système et un utilisateur normal.)
Créez l'utilisateur Steam avec le « ajouter un utilisateur » commande, désactiver les connexions car nous allons utiliser ce compte uniquement via « sudo ».
$ sudo adduser --disabled-login vapeur
Exécutez SteamCMD
Malheureusement, SteamCMD n'a pas une très bonne interface, donc cette prochaine partie sera un peu gênante pour ceux d'entre vous qui connaissent déjà la ligne de commande Linux. Exécutez les commandes comme suit (la sortie de la commande est omise.)
$ sudo -iu vapeur # Ouvre un shell de connexion en tant que "vapeur" utilisateur. Voir la page de manuel sudo(8). $ steamcmd Steam>login anonymous Steam>force_install_dir ./valheim/ # Le serveur Valheim a un appID différent de celui du client. Vérifiez ceci lien. Vapeur>app_update 896660 Vapeur>quit ^C
Si le « quitter » la commande laisse simplement le programme suspendu sans invite, tapez Ctrl+C pour quitter complètement. Cela semble être un bug dans SteamCMD.
Maintenant que le serveur dédié Valheim est installé, il’Il est temps de configurer le service pour l'exécuter.
Exécutez le serveur Valheim via Systemd
Le serveur dédié Valheim est livré avec un script wrapper pour exécuter le serveur, mais nous allons exécuter l'exécutable du serveur directement pour notre unité de service systemd.
L'unité Systemd
Écrivez le code suivant dans le fichier « /usr/local/lib/systemd/system/valheim.service ».
[Unité] Description=Valheim Dedicated Server After=network-online.target [Service] Type=exec User=steam Group=steam Environment="LD_LIBRARY_PATH=/home/steam/valheim/linux64" "SteamAppId = 892970" ExecStart=/home/steam/valheim/valheim_server.x86_64 -name "J'ai oublié de nommer mon serveur" -monde "Midgard" -port 2456 -mot de passe "secrète" # Security settings LockPersonality=true NoNewPrivileges=true RestrictRealtime=true RestrictNamespaces=true SystemCallArchitectures=native SystemCallFilter=~@obsolete @clock @debug @module @mount @privileged @reboot @setuid @cpu-emulation CapabilityBoundingSet= RestrictAddressFamilies=AF_INET AF_INET6 RestrictSUIDSGID=true PrivateDevices=true PrivateTmp=true PrivateMounts=true PrivateUsers=true ProtectControlGroups=true ProtectHome=tmpfs BindPaths=/home/steam ProtectKernelModules=true ProtectKernelTunables=true ProtectSystem=full ProtectClock=true ProtectKernelLogs=true ProtectProc=invisible ProtectHostname=true RemoveIPC=true InaccessiblePaths=/srv/
Une explication complète des directives systemd utilisées dans cette unité dépasse la portée de ce guide., mais pour ceux que ça intéresse, les pages de manuel pertinentes sont les suivantes.
- systemd.unité(5)
- systemd.service(5)
- systemd.exec(5)
- systemd.resource-control(5)
Spécification d'un monde
Le « -monde » l'argument est facultatif; si tu le laisses de côté, le serveur générera un monde pour vous à partir d'une graine aléatoire lors de la première exécution.
Sinon, il spécifie le nom d'un monde à utiliser, qui doit exister dans le répertoire « /Accueil/steam/.config/unity3d/IronGate/Valheim/worlds/ ». Dans l'unité systemd ci-dessus, on précise le monde nommé « Midgard », il doit donc exister un fichier nommé « /Accueil/steam/.config/unity3d/IronGate/Valheim/worlds/Midgard.fwl ». Cela vous permet d'utiliser un monde copié d'ailleurs.
Si vous souhaitez utiliser un monde existant depuis votre PC, garder vos progrès, vous devez également copier le correspondant « .base de données » fichier au même endroit que le « .idiot » déposer.
Si vous souhaitez utiliser un nouveau monde mais avec une graine spécifique, vous devez créer le monde avec le client du jeu, car le serveur ne fournit aucun moyen de spécifier une graine pour la création initiale du monde.
Activation du service
Cela définit le service, mais systemd n'en est pas informé jusqu'à ce qu'il recharge les unités. Faites cela en exécutant
$ sudo systemctl démon-reload
Puis activez-le avec
$ sudo systemctl activer valheim.service
Désormais, le serveur Valheim démarrera automatiquement au démarrage, mais pas tant que le réseau n'est pas opérationnel (que’c'est quoi la ligne « Après=réseau-en ligne.target » fait.) Pour le démarrer maintenant sans redémarrer, courir
$ sudo systemctl start valheim.service
C'est tout ce que nous partageons aujourd'hui pour cela Valheim guide. Ce guide a été initialement créé et rédigé par aidealgol. Si nous ne parvenons pas à mettre à jour ce guide, vous pouvez trouver la dernière mise à jour en suivant ceci lien.