Bridge网络模式下Linux虚拟机和主机进行通信

简介:

我的VMware版本是8.0.3。其他版本的设置应该大致相同。

1、注意我们的网络模式是Bridge

image

2、我们的网卡设置

image

image

3、目标虚拟机(Linux)的IP

image

4、我的主机的IP地址

image

5、网络调试助手的设置

image

6、上一段用来调试网络的代码。这段代码使用UDP进行通信,主要的作用是应答式的,一回一答。

复制代码
#include <sys/types.h>  
#include <sys/socket.h>  
#include <arpa/inet.h>  
#include <stdio.h>  
#define BUFLEN 255  
  
int main(int argc, char **argv)  
{  
    struct sockaddr_in peeraddr, localaddr;  
    int sockfd;  
    char recmsg[BUFLEN+1];  
    int socklen, n;  
  
    if(argc!=5){  
        printf("%s <dest IP address> <dest port> <source IP address> <source port>\n", argv[0]);  
        exit(0);  
    }  
  
    sockfd = socket(AF_INET, SOCK_DGRAM, 0);  
    if(sockfd<0){  
        printf("socket creating err in udptalk\n");  
        exit(1);  
    }  
     printf("IP address Checking!\n");  
    socklen = sizeof(struct sockaddr_in);  
    memset(&peeraddr, 0, socklen);  
    peeraddr.sin_family=AF_INET;  
    peeraddr.sin_port=htons(atoi(argv[2]));  
    if(inet_pton(AF_INET, argv[1], &peeraddr.sin_addr)<=0){  
        printf("Wrong dest IP address!\n");  
        exit(0);  
    }  
    memset(&localaddr, 0, socklen);  
    localaddr.sin_family=AF_INET;  
    if(inet_pton(AF_INET, argv[3], &localaddr.sin_addr)<=0){  
        printf("Wrong source IP address!\n");  
        exit(0);  
    }  
    printf("try to bind local address \n");  
    localaddr.sin_port=htons(atoi(argv[4]));  
    if(bind(sockfd, &localaddr, socklen)<0){   
        printf("bind local address err in udptalk!\n");  
        exit(2);  
    }  
 printf("Please Type Some Message To Server\n");    
    if(fgets(recmsg, BUFLEN, stdin) == NULL) {
        printf("get nothing exit\n"); 
        exit(0);
    }  
 //    printf("end of fgets \n");  
    if(sendto(sockfd, "HELLO", strlen("HELLO"), 0, &peeraddr, socklen)<0){  
        printf("sendto err in udptalk!\n");  
        exit(3);  
    }  
 printf("end of sendto \n");  
      printf("start of recv&send message loop!\n");  
    for(;;){  
        /*recv&send message loop*/  
        printf("Waiting For Message...!\n");  
        n = recvfrom(sockfd, recmsg, BUFLEN, 0, &peeraddr, &socklen);  
        if(n<0){  
            printf("recvfrom err in udptalk!\n");  
            exit(4);  
        }else{  
            recmsg[n]=0;  
            printf("peer:%s\n", recmsg);    
        }  
     printf("Please Type Some Message To Server\n");    
        if(fgets(recmsg, BUFLEN, stdin) == NULL) exit(0);  
        if(sendto(sockfd, recmsg, strlen(recmsg), 0, &peeraddr, socklen)<0){  
            printf("sendto err in udptalk!\n");  
            exit(3);  
        }  
    }  
}
复制代码

下图是以上代码运行的实例

其中./udptalk 192.168.41.24 2000 192.168.92.128 2000  是启动的命令。在应用这段代码的时候,把192.168.41.24替换成要接受消息的主机(destination)。第一个2000是目标端口。192.168.92.128是本机地址,第二个2000是发送端口。

image

 

注意事项:

你要确保默认网关是有效的,不然虚拟机和主机的通信就会失败。比如说你的网关设的是局域网内的一台主机,但是跟局域网相连的网线又被你拔了,这时候,虚拟机和主机的通信就会失败。

 

其实最好将虚拟机的所用的虚拟网卡的网关设成真实主机的地址,这样就不用再借助一台主机来充当网关。(如下图所示)

本文转自陈哈哈博客园博客,原文链接http://www.cnblogs.com/kissazi2/archive/2013/06/14/3136153.html如需转载请自行联系原作者


kissazi2

相关文章
|
2天前
|
安全 网络协议 网络安全
当虚拟机出现网络连接问题时,应该先检查Hyper-V的网卡连接配置
当虚拟机出现网络连接问题时,应首先检查Hyper-V的网卡配置。具体步骤包括:确认虚拟机运行状态、检查虚拟交换机类型和物理网卡连接、确保虚拟机网络适配器正确连接到虚拟交换机,并验证网络配置(IP地址等)。常见问题如虚拟交换机配置错误、网络适配器未连接或防火墙阻止连接,可通过重新配置或调整设置解决。必要时重启虚拟机和宿主机,查看事件日志或联系技术支持以进一步排查问题。
|
3天前
|
虚拟化 网络虚拟化 Windows
导入虚拟机到Hyper-V环境时,理解并配置网络适配器设置是确保网络通信的关键
在Hyper-V环境中,正确配置虚拟机的网络适配器是确保其网络通信的关键。需先启用Hyper-V功能并创建虚拟交换机。接着,在Hyper-V管理器中选择目标虚拟机,添加或配置网络适配器,选择合适的虚拟交换机(外部、内部或私有),并根据需求配置VLAN、MAC地址等选项。最后,启动虚拟机并验证网络连接,确保其能正常访问外部网络、与主机及其他虚拟机通信。常见问题包括无法访问外部网络或获取IP地址,需检查虚拟交换机和适配器设置。
|
2月前
|
Linux 网络性能优化 网络安全
Linux(openwrt)下iptables+tc工具实现网络流量限速控制(QoS)
通过以上步骤,您可以在Linux(OpenWrt)系统中使用iptables和tc工具实现网络流量限速控制(QoS)。这种方法灵活且功能强大,可以帮助管理员有效管理网络带宽,确保关键业务的网络性能。希望本文能够为您提供有价值的参考。
123 28
|
2月前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
51 11
|
2月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
125 15
|
3月前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
308 7
|
3月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
94 17
|
3月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
3月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
67 10

热门文章

最新文章