[LINUX] Serveur de jeu avec deux PC

motivation

La différence entre un ordinateur personnel et un serveur réside principalement en termes de spécifications et d'utilisation prévue, et les limites sont plus ambiguës que prévu. En fait, vous pouvez utiliser votre ordinateur comme s'il s'agissait d'un serveur sur un autre réseau. Alors, simulons le travail d'un serveur distant en établissant une connexion SSH de l'un à l'autre en utilisant deux ordinateurs à la maison.

Choses à préparer / prémisse

Vérifiez l'adresse IP du PC de destination de la connexion

Pour Ubuntu

# server ubuntu
$ ip a
...
inet 192.168.X.Y/24 ...
...

Pour MacBook

# server macbook
$ ifconfig
...
inet 192.168.X.Y netmask 0xffffff00 ...
...

La commande ci-dessus affichera l'adresse IP privée du réseau connecté. Habituellement au format «192.168.X.Y», où X et Y sont des nombres de 0 à 255.

À propos de l'adresse IP

L'adresse IP est un nombre de 32 bits, et si vous la représentez par un nombre séparé par 8 bits, elle devient une adresse IP que vous voyez souvent. Puisque 8 bits représentent des nombres de 0 à 255, 4 nombres dans cette plage seront l'adresse IP.

S'il y a un «/ 24», cela signifie que les 24 premiers bits de l'adresse IP sont fixes dans le groupe. Autrement dit, les trois premiers nombres sont fixes et les derniers nombres sont différents. netmask 0xffffff00 exprime la même chose. Autrement dit, si le bit fixe est écrit en hexadécimal de sorte que le bit fixe est 1 et la partie variable est 0, c'est le cas.

Je ne savais pas pourquoi les adresses privées commencent généralement par «192.168».

Démarrez le service SSH côté serveur

Dans l'état initial, la connexion SSH n'est pas possible de l'extérieur. Vérifions-le avec ping.

#Source de connexion
$ ping 192.168.X.Y
Request timeout for icmp_seq 0
...

Pour «X» et «Y», entrez les valeurs que vous avez confirmées précédemment. Ce résultat signifie que vous ne pouvez pas accéder à l'adresse IP.

Par conséquent, essayez de démarrer le service SSH à la destination de la connexion.

Pour Ubuntu

#Connectez-vous à Ubuntu
$ sudo apt-get install -y openssh-server

ʻLorsque vous installez openssh-server`, le service SSH démarre automatiquement. Vous pouvez le vérifier avec la commande suivante.

#Connectez-vous à Ubuntu
$ sudo systemctl status ssh
...
Active: active (running)
...

Le service SSH démarre automatiquement la prochaine fois que vous démarrez votre PC. Si vous souhaitez arrêter le démarrage automatique, il semble y avoir la méthode suivante (Reference) ..

  1. Renommez le fichier ssh.conf avec la commande suivante (restaurez le nom pour le démarrage automatique)

    $ sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled
    
  2. Commentez la partie relative au démarrage automatique dans / etc / init / ssh.conf

...
#start on filesystem or runlevel [2345] 
...

Pour MacBook

Dans Préférences Système> Partage, sélectionnez "Connexion à distance" et sélectionnez un utilisateur accessible (Référence -accès-à-votre-mac-mchlp1066 / mac)). Un écran comme celui ci-dessous. Il enseigne poliment les commandes SSH. Sharing.png

Maintenant, essayez à nouveau ping.

$ ping 192.168.X.Y
64 bytes from 192.168.10.224: icmp_seq=0 ttl=64 time=108.883 ms
...

Si tout se passe bien, vous pouvez voir l'accès à l'adresse IP.

Connectez-vous avec SSH

La méthode de connexion est la même qu'un serveur normal.

#Source de connexion
$ ssh <user>@192.168.X.Y

Étant donné que les PC ordinaires ont une connexion par mot de passe, il vous sera souvent demandé votre mot de passe après cela. Vous devriez pouvoir vous connecter en entrant le mot de passe de connexion que vous utilisez normalement à la destination de la connexion.

Configurer le pare-feu

Au stade du démarrage du service SSH, la seule protection contre les accès non autorisés est le mot de passe. En définissant un pare-feu à la destination de la connexion, vous pouvez limiter la méthode d'accès.

Pour Ubuntu

Vérifiez l'état actuel du pare-feu.

$ sudo ufw status
Status: inactive

«Inactif» signifie que le pare-feu n'est pas configuré.

Premièrement, en principe, l'accès est interdit et seul SSH est autorisé.

$ sudo ufw default deny
$ sudo ufw allow ssh
$ sudo ufw enable

Cela empêchera l'accès à autre chose que SSH (port 22). Vous pouvez le vérifier avec la commande suivante.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere      
22/tcp (v6)                ALLOW       Anywhere (v6)

Pour le rendre un peu plus sécurisé, vous pouvez limiter la source au même segment de réseau.

$ sudo ufw reset
$ sudo ufw default deny
$ sudo ufw allow from 192.168.X.0/24 to any port ssh
$ sudo ufw enable

Remplacez «X» par le numéro de l'adresse IP confirmée. «/ 24» permet l'accès uniquement à partir de réseaux où les 24 premiers bits (trois nombres) de cette IP correspondent.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       192.168.10.0/24

Pour MacBook

Il peut être défini à partir de l'onglet "Pare-feu" des Préférences Système> Sécurité et confidentialité. Si vous autorisez l'accès SSH, il semble que seul le port SSH est automatiquement configuré pour être accessible. Screen Shot 2020-07-05 at 14.23.55.png

Recommended Posts

Serveur de jeu avec deux PC
Créer un serveur Flask avec Docker
Réalisez une file d'attente avec deux piles
J'ai créé un serveur Web avec Razpai pour regarder des anime
J'ai essayé de communiquer avec un serveur distant par communication Socket avec Python.
Comment ajouter un package avec PyCharm
Configurer un serveur Samba avec Docker
Envoyez du courrier avec mailx à un serveur SMTP factice configuré avec python.
Seulement 8 techniques pour prétendre être un data scientist
Notes pour créer des figures pouvant être publiées dans des revues avec matplotlib
Une histoire déroutante avec deux façons d'implémenter XGBoost en Python + notes générales
Lorsque je me suis connecté à un serveur Jupyter distant avec VScode, il était distant mais local.
Connexion SSH au serveur cible à partir de Windows en un clic sur un raccourci
[Python] Comment créer un environnement de serveur Web local avec SimpleHTTPServer et CGIHTTPServer
Démarrez un serveur http temporaire localement avec Pytest
Envoyer un message de Slack à un serveur Python
Créer un serveur local avec une commande sur une seule ligne [Mac]
Comment lire un fichier CSV avec Python 2/3
Connectez-vous à un serveur distant avec SSH
Configurer un serveur HTTPS simple avec asyncio
Envoyer un message à LINE avec Python (LINE Notify)
Un mémorandum pour faire WebDAV uniquement avec nginx
Connexion ODBC à FileMaker 11 Server Advanced avec Python 3
Comment développer une application de panier avec Django
Comment créer un dictionnaire avec une structure hiérarchique.
Je veux faire un jeu avec Python
Démarrez un serveur Web Python simple avec Docker
Je veux être OREMO avec setParam!
Créez un chat bot et entraînez-vous à être populaire.
Essayez de créer un code de "décryptage" en Python
Décidez d'une mission de laboratoire avec Python (fiction)
Configurer un serveur local avec le téléchargement Go-File-
Étapes pour créer un bot Twitter avec Python
Lancer un serveur Web avec Python et Flask
Enregistrer l'objet dans un fichier avec pickle
Essayez de créer un groupe de dièdre avec Python
Comment configurer un serveur de développement local
Procédure de création d'application multi-plateforme avec kivy
AWS Step Functions pour apprendre avec un exemple
Monter le répertoire d'un autre serveur avec sshfs
[Dédié à Telewa! ] J'utilise un PC avec une webcam.
Je veux écrire dans un fichier avec Python
Créer un serveur "Hello World" (HTTP) dans Tornado
Zubu amateur veut démarrer Python
Utilisez tkinter pour déplacer le code de sortie en tant que "A et prétendant être B" en python
Convertir des images du SDK FlyCapture en un formulaire pouvant être utilisé avec openCV
[Mac] Je souhaite créer un serveur HTTP simple qui exécute CGI avec Python
J'ai essayé de générer automatiquement la chaîne de caractères à entrer dans M. Adjustment avec Python
[Go language] Soyez prudent lors de la création d'un serveur avec mux + cors + alice. Surtout à propos de ce à quoi j'étais accro autour de CORS.
Comment convertir / restaurer une chaîne avec [] en python
Mémo connecté à HiveServer2 d'EMR avec python
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Je veux faire la transition avec un bouton sur le ballon
Faisons un outil de veille de commande avec python
Python Ver. Présentation de WebPay avec un peu de code
J'ai créé un serveur syslog prêt à l'emploi avec Play with Docker
Comment créer un sous-menu avec le plug-in [Blender]
Je veux escalader une montagne avec l'apprentissage par renforcement