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

相关文章
|
6月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
189 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
10月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
290 18
|
10月前
|
Linux 数据安全/隐私保护
使用Linux命令行接入无线网络Wi-Fi的示例。
现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
819 12
|
Ubuntu 网络协议 Unix
02理解网络IO:实现服务与客户端通信
网络IO指客户端与服务端通过网络进行数据收发的过程,常见于微信、QQ等应用。本文详解如何用C语言实现一个支持多客户端连接的TCP服务端,涉及socket编程、线程处理及通信流程,并分析“一消息一线程”模式的优缺点。
460 0
|
10月前
|
安全 Ubuntu Linux
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
419 0
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
|
12月前
|
Ubuntu Linux
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
1970 20
|
12月前
|
JSON 运维 Ubuntu
Linux下如何使用Curl进行网络请求
希望这篇文章能帮助您在Linux下更好地使用Curl进行网络请求。如有疑问,请随时提问!
671 10
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
379 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
296 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。