怎么在VMware Workstation 虚拟机里配置网络(ubuntu、readhat)
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 #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 体系相同。
3.2 封闭防火墙
我有话说: