写点什么

VMware Workstation Pro 虚拟机网络设置

作者:DS小龙哥
  • 2022 年 4 月 02 日
  • 本文字数:1689 字

    阅读完需:约 6 分钟

1. 前言

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


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


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


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


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

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

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

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

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



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


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




2.3 设置虚拟机的联网方式



2.4 测试网络是否畅通





3.5 编写代码测试网络通信

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


#include <stdio.h>#include <sys/types.h>          /* See NOTES */#include <sys/socket.h>#include <stdlib.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/select.h>
/* According to earlier standards */#include <sys/time.h>#include <sys/types.h>#include <unistd.h>
/*设置网卡的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 系统一样。






3.2 关闭防火墙


发布于: 刚刚阅读数: 2
用户头像

DS小龙哥

关注

之所以觉得累,是因为说的比做的多。 2022.01.06 加入

熟悉C/C++、51单片机、STM32、Linux应用开发、Linux驱动开发、音视频开发、QT开发. 目前已经完成的项目涉及音视频、物联网、智能家居、工业控制领域

评论

发布
暂无评论
VMware Workstation Pro虚拟机网络设置_4月月更_DS小龙哥_InfoQ写作平台