0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

VM虚拟机上的网络设置

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2022-08-14 09:23 次阅读

1. 前言

一般Linux编程时,经常都会使用虚拟机跑Linux系统,VMware Workstation Pro 虚拟机里的系统不管是Linux、还是windows、还是其他系统想要上网就必须配置好虚拟网络连接方式。VMware Workstation 支持共享、桥接,选择网卡的方法自定义上网方式。

如果虚拟机里的系统想要拥有一个独立的IP地址(路由器认为是一台新设备),那么就需要设置成桥接模式。

如果虚拟机里的系统只想要上外网,而连接的WIFI又需要输入密码,或者像校园网这种,一个账号不能多台设备同时使用这种,那么就设置成NAT共享方式即可。

想要在虚拟机你跑的系统愉快的上网,进行各种网络编程、服务器搭建,那么第一步首先得先把系统接入网络才行。

下面章节就介绍ubuntu16.04、readhat6.3系统下如何配置网络实现网络连接。

2. ubuntu 16.04 设置网络连接方式

2.1 打开虚拟机的网络编辑器

img

2.2 选择桥接电脑当前连接网络的网卡

比如: 当前电脑使用有线连接路由器,那么就选择桥接到有线网卡。如果当前电脑使用的是WIFI方式连接路由器,那么就选择桥接到无线网卡。

image-20211202140019257

如果不知道自己网卡的名字是哪一个怎么办?

可以在windows下打开网络适配器进行查看。

image-20211202140032972image-20211202140055849image-20211202140117912

2.3 设置虚拟机的联网方式

image-20211202140145638image-20211202140200409image-20211202140220072

2.4 测试网络是否畅通

image-20211202140249862image-20211202140309408image-20211202140328210image-20211202140345585image-20211202140401526

3.5 编写代码测试网络通信

使用代码创建一个TCP服务器,然后windows系统通过网络调试助手连接进来,进行通信。

#include 
#include           /* See NOTES */
#include 
#include 
#include 
#include 
#include 
#include 
#include 

/* According to earlier standards */
#include 
#include 
#include 

/*
设置网卡的IP地址
$ sudo ifconfig eth0 192.168.1.23  

服务器创建流程:
1. 创建socket套接字(文件描述符)---类型open函数一样
2. 绑定端口号(创建服务器:提供端口号和IP地址)
3. 设置监听的客户端数量(设置待处理的队列最大缓存待连接的客户端数量)
4. 等待客户端连接(被动--阻塞): 多线程和多进程方式并发处理客户端连接。
5. 实现通信(客户端连接成功)
*/
int main(int argc,char **argv)
{
    if(argc!=2)
    {
        printf("参数: ./tcp_server <端口号>\n");
        return 0;
    }
    /*1. 创建socket套接字*/
    int sockfd;
    sockfd=socket(AF_INET,SOCK_STREAM,0);
    if(sockfd<0)
    {
        printf("服务器:套接字创建失败.\n");
        return 0;
    }
    /*2. 绑定端口号*/
    struct sockaddr_in addr;
    addr.sin_family=AF_INET; //IPV4
    addr.sin_port=htons(atoi(argv[1])); //65535
    //addr.sin_addr.s_addr=inet_addr("192.168.2.16");
    addr.sin_addr.s_addr=INADDR_ANY; //本地所有IP地址 "0.0.0.0"
    if(bind(sockfd,(const struct sockaddr *)&addr,sizeof(struct sockaddr)))
    {
        printf("服务器:端口号绑定失败.\n");
        return 0;
    }
    /*3. 设置等待连接的客户端数量*/
    listen(sockfd,10);
    /*4. 等待客户端连接(被动--阻塞)*/
    struct sockaddr_in client_addr;
    socklen_t addrlen=sizeof(struct sockaddr_in);
    int client_sockfd; //客户端的套接字
    client_sockfd=accept(sockfd,(struct sockaddr *)&client_addr,&addrlen);
    if(client_sockfd<0)
    {
        printf("服务器:处理客户端的连接失败.\n");
        return 0;
    }
    /*5. 实现数据通信*/
    printf("连接上的客户端IP地址:%s\n",inet_ntoa(client_addr.sin_addr));
    printf("连接上的客户端端口:%d\n",ntohs(client_addr.sin_port));

    char buff[100];
    int cnt;
    while(1)
    {
        cnt=read(client_sockfd,buff,100);
        buff[cnt]='\0';
        printf("服务器接收的数据:%d,%s\n",cnt,buff);
        sleep(5);
    }
    /*6. 关闭套接字*/
    close(client_sockfd);
    close(sockfd);
    return 0;
}

3. RedHat 红帽6.3系统

3.1 设置网络

设置方法与ubuntu 系统一样。

image-20211202140446344image-20211202140501355image-20211202140514919image-20211202140526372image-20211202140538259

3.2 关闭防火墙

image-20211202140613370

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11030

    浏览量

    207241
  • 网络编程
    +关注

    关注

    0

    文章

    64

    浏览量

    9999
  • 虚拟机
    +关注

    关注

    1

    文章

    870

    浏览量

    27574
收藏 人收藏

    评论

    相关推荐

    VM虚拟机与主机不能互ping通

    VM桥接方式将LINUX虚拟机加入主机的局域网,两者一个网段一个网关,然后发现虚拟机能ping通局域网内除了主机外的所有设备,唯独不能ping通主机,同样,主机也不能ping 通虚拟机
    发表于 04-10 21:55

    虚拟机上设置求助

    虚拟机上设置,按回车没反应,,怎么回事?
    发表于 09-04 21:10

    虚拟机上的Linux系统挂载SD卡失败原因分析

    虚拟机上的Linux系统挂载SD卡失败原因分析 虚拟机上安装Linux系统后,相信很多人都碰到过在Linux系统中SD卡或U盘不能正常读取的状况。这里整理了一些常见的解决方法:1. 如果在
    发表于 09-16 09:48

    vm虚拟机构建局域网的三种链接模式介绍

    虚拟机还有主机还有互联网是双向连通的,通过这种方式可以构建局域网,只用将虚拟机的ip地址设置成与主机的同一个网段,而网关和子网掩码设置成和主机相同就能实现
    发表于 07-04 03:05

    VM虚拟机开机等待1分30秒怎么解决

    VM虚拟机开机时多出1分30秒的解决方案
    发表于 10-30 08:36

    VMware中虚拟机网络设置方法

    虚拟机linux上网问题一、VMware中虚拟机网络的三种设置第一种:桥接(bridged)第二种:NAT第三种:Host only 。该模式下仅主机可以上网,
    发表于 11-05 08:04

    怎样通过NAT模式去实现虚拟机共享主机网络

    内建立一个虚拟服务器,并为局域网用户提供服务,那就得选择该模式。NAT模式:Nat模式,虚拟机通过宿主机所在的网络来访问internet,即虚拟机把宿主机作为路由器来访问互联网。开始配
    发表于 10-17 16:21

    VM虚拟机详细使用安装教程

    VM虚拟机详细使用安装教程
    发表于 07-30 16:16 0次下载

    vm建好虚拟机找不到应该如何解决

      1,今天装vm12,虚拟机建好后,vm上面没有对应的虚拟系统,网上搜了一下,有人说把防火墙关了就可以了,试了一下,果然凑效。
    发表于 08-19 17:31 0次下载
    <b class='flag-5'>vm</b>建好<b class='flag-5'>虚拟机</b>找不到应该如何解决

    虚拟机:QEMU虚拟机和主机无线网络通讯设置

    虚拟机:QEMU虚拟机和主机无线网络通讯设置
    的头像 发表于 06-22 10:19 5130次阅读
    <b class='flag-5'>虚拟机</b>:QEMU<b class='flag-5'>虚拟机</b>和主机无线<b class='flag-5'>网络</b>通讯<b class='flag-5'>设置</b>

    vm虚拟机linux系统怎么编程

    虚拟机中编程Linux系统是学习和探索计算机科学的一个重要方面。使用虚拟机可以在主机上模拟出一个或多个独立的计算环境,我们可以在其中安装和运行不同的操作系统。通过创建虚拟机,我们可以
    的头像 发表于 11-17 10:10 1278次阅读

    虚拟机如何运行c程序

    虚拟机(Virtual Machine,VM)是一种模拟了物理计算机的软件,可以在计算机上创建虚拟的硬件平台,使得用户可以在其中运行操作系统和应用程序。在
    的头像 发表于 11-17 10:14 3458次阅读

    如何在虚拟机上运行c源代码

    如何在虚拟机上运行C源代码 确保虚拟机环境设置正确 在使用虚拟机之前,首先需要确保虚拟机已正确安装并正确
    的头像 发表于 11-17 10:16 2638次阅读

    虚拟机的root权限在哪里设置

    设置虚拟机的root权限是一项关键且复杂的任务,需要在虚拟机的操作系统中进行。下面将详细介绍如何在不同的虚拟化平台中设置
    的头像 发表于 11-23 10:55 7815次阅读

    VMware虚拟机的三种网络模式

    VMware虚拟机的三种网络模式 VMware是一种广泛使用的虚拟机软件,可以创建和管理多个虚拟机。在使用VMware虚拟机时,
    的头像 发表于 02-04 11:17 714次阅读