J'ai un vps qui a l'environnement xfce de base et tightvncserver installé.
J'aimerais que tightvncserver démarre automatiquement chaque fois que je lance une connexion au port sur lequel il est exécuté (dans mon cas, 5901
).
J'ai vu des billets sur l'utilisation de inetd
ou xinetd
pour le faire, mais j'ai aussi vu beaucoup de messages disant que (x) inetd n'est pas inclus dans Ubuntu pour une raison, et qu'il s'agit d'un mauvaise idée de l'utiliser.
Quoi qu'il en soit, je cherche un moyen de le démarrage automatique de tightvncserver chaque fois qu'il existe une connexion entrante vers le port 5901, de préférence avec le moins de dépendances possible
Je ne sais pas pourquoi est "une mauvaise idée d'utiliser xinetd ou inetd" . J'ai vérifié les deux traqueurs de bogues et je n'ai vu aucun problème de sécurité.
Cela dit, je vais essayer de répéter ce que vous avez déjà trouvé sur la configuration de 'xinetd':
xinetd
est assez simple à configurer. Il utilise le répertoire /etc/xinetd.d/
pour stocker toute la configuration par service. Il vous suffit donc de créer la configuration pour démarrer tightvncserver
, un Sudo vim /etc/xinetd.d/tightvncserver
pour créer un fichier, puis insérez votre configuration ( cela peut être modifié selon vos besoins):
service tightvncserver
{
socket_type = stream
protocol = tcp
wait = no
## I don't run a vnc server myself, but you should change this for the user your VNC service uses.
user = root
port = 5901
server = /usr/sbin/tightvncserver
## This allows access from anyone in the 192.168 subnet, if you want anyone, just do not add this line.
only_from = 192.168.0.0
log_on_failure += USERID
disable = no
}
C'est tout. Vous devez maintenant désactiver le démarrage de tightvncserver
dans les répertoires rc-d.
Il y a plus d'options que vous pouvez ajouter à cela, mais je vais laisser cela au manuel .
Plutôt que d'essayer d'utiliser tightvncserver
, je tenterais la même chose que celle suggérée par @ Braiam, mais avec Xvnc.
service Xvnc
{
disable = no
type = UNLISTED
socket_type = stream
protocol = tcp
user = nobody
wait = yes
server = /usr/bin/Xvnc
server_args = -inetd :1 -query localhost -geometry 1024x768 -depth 16 -NeverShared -once -rfbauth /root/.vncpasswd
port = 5901
}
Vous pouvez ajuster l'emplacement du fichier de mots de passe en modifiant le bit ci-dessus: /root/.vncpasswd
. Les autorisations sur ce fichier peuvent être compliquées, vous devrez peut-être les attribuer à chmod 600 .vncpasswd
.
Si vous souhaitez plus de détails, jetez un coup d’œil au tutoriel, 2. Lancement du serveur VNC avec xinetd qui montre de nombreuses façons différentes d’exécuter VNC en tant que service xinetd
.
L'ensemble du commentaire sur la non utilisation de xinetd est superposé. C'est un service parfait à utiliser et, comme pour tout le reste, vous devez comprendre les implications de l'utilisation de la technologie X, rien de plus.