¿Cómo utilizar sockets() para comunicarse entre máquinas virtuales Ubuntu instaladas en dos hosts físicos?
Dos puntos a distinguir:
1. El programa de sesión de red que ha escrito está bien hasta ahora. La prueba de la máquina física es válida;
2. El problema es que los dos sistemas de máquinas virtuales no están en el mismo segmento de red IP, por lo que no pueden hacer ping. Para decirlo sin rodeos, significa que la capa de conexión de red física no se puede abrir.
Métodos e ideas:
1 Primero, asegúrese de que la conexión de red de los dos sistemas físicos de la PC esté abierta y que estén en el mismo segmento de red IP.
2. Si la máquina física usa una conexión IP dinámica, puede considerar dos sistemas operativos en la máquina virtual y usar NAT Vnet8 para la traducción de direcciones IP. Generalmente, se puede lograr una conexión exitosa. >3. Si las máquinas físicas utilizan direcciones IP y de puerta de enlace fijas. Eso es mejor. Puede compartir la dirección física directamente en el sistema operativo de la máquina virtual y configurar su propia dirección IP en el sistema operativo de la máquina virtual. Esta dirección es el último dígito de la IP de la máquina física real.
Por ejemplo: IP de la máquina física: 172.18.6.6, puerta de enlace: 172.18.6.126, subred: 255.255.128.
Entonces la IP de la máquina virtual: 172.18.6.7-254 (ambas son aceptables) y la puerta de enlace y la máscara de subred son las mismas.
Presta atención a la dirección DNS, que debe ser coherente con el DNS de la máquina física. Asegúrese de que sea normal cuando se necesite el servicio de resolución de nombres de dominio.