RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

VM虛擬機(jī)上的網(wǎng)絡(luò)設(shè)置

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 09:23 ? 次閱讀

1. 前言

一般Linux編程時(shí),經(jīng)常都會(huì)使用虛擬機(jī)跑Linux系統(tǒng),VMware Workstation Pro 虛擬機(jī)里的系統(tǒng)不管是Linux、還是windows、還是其他系統(tǒng)想要上網(wǎng)就必須配置好虛擬網(wǎng)絡(luò)連接方式。VMware Workstation 支持共享、橋接,選擇網(wǎng)卡的方法自定義上網(wǎng)方式。

如果虛擬機(jī)里的系統(tǒng)想要擁有一個(gè)獨(dú)立的IP地址(路由器認(rèn)為是一臺(tái)新設(shè)備),那么就需要設(shè)置成橋接模式。

如果虛擬機(jī)里的系統(tǒng)只想要上外網(wǎng),而連接的WIFI又需要輸入密碼,或者像校園網(wǎng)這種,一個(gè)賬號(hào)不能多臺(tái)設(shè)備同時(shí)使用這種,那么就設(shè)置成NAT共享方式即可。

想要在虛擬機(jī)你跑的系統(tǒng)愉快的上網(wǎng),進(jìn)行各種網(wǎng)絡(luò)編程、服務(wù)器搭建,那么第一步首先得先把系統(tǒng)接入網(wǎng)絡(luò)才行。

下面章節(jié)就介紹ubuntu16.04、readhat6.3系統(tǒng)下如何配置網(wǎng)絡(luò)實(shí)現(xiàn)網(wǎng)絡(luò)連接。

2. ubuntu 16.04 設(shè)置網(wǎng)絡(luò)連接方式

2.1 打開虛擬機(jī)的網(wǎng)絡(luò)編輯器

img

2.2 選擇橋接電腦當(dāng)前連接網(wǎng)絡(luò)的網(wǎng)卡

比如: 當(dāng)前電腦使用有線連接路由器,那么就選擇橋接到有線網(wǎng)卡。如果當(dāng)前電腦使用的是WIFI方式連接路由器,那么就選擇橋接到無線網(wǎng)卡。

image-20211202140019257

如果不知道自己網(wǎng)卡的名字是哪一個(gè)怎么辦?

可以在windows下打開網(wǎng)絡(luò)適配器進(jìn)行查看。

image-20211202140032972image-20211202140055849image-20211202140117912

2.3 設(shè)置虛擬機(jī)的聯(lián)網(wǎng)方式

image-20211202140145638image-20211202140200409image-20211202140220072

2.4 測(cè)試網(wǎng)絡(luò)是否暢通

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

3.5 編寫代碼測(cè)試網(wǎng)絡(luò)通信

使用代碼創(chuàng)建一個(gè)TCP服務(wù)器,然后windows系統(tǒng)通過網(wǎng)絡(luò)調(diào)試助手連接進(jìn)來,進(jìn)行通信。

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

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

/*
設(shè)置網(wǎng)卡的IP地址
$ sudo ifconfig eth0 192.168.1.23  

服務(wù)器創(chuàng)建流程:
1. 創(chuàng)建socket套接字(文件描述符)---類型open函數(shù)一樣
2. 綁定端口號(hào)(創(chuàng)建服務(wù)器:提供端口號(hào)和IP地址)
3. 設(shè)置監(jiān)聽的客戶端數(shù)量(設(shè)置待處理的隊(duì)列最大緩存待連接的客戶端數(shù)量)
4. 等待客戶端連接(被動(dòng)--阻塞): 多線程和多進(jìn)程方式并發(fā)處理客戶端連接。
5. 實(shí)現(xiàn)通信(客戶端連接成功)
*/
int main(int argc,char **argv)
{
    if(argc!=2)
    {
        printf("參數(shù): ./tcp_server <端口號(hào)>\n");
        return 0;
    }
    /*1. 創(chuàng)建socket套接字*/
    int sockfd;
    sockfd=socket(AF_INET,SOCK_STREAM,0);
    if(sockfd<0)
    {
        printf("服務(wù)器:套接字創(chuàng)建失敗.\n");
        return 0;
    }
    /*2. 綁定端口號(hào)*/
    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("服務(wù)器:端口號(hào)綁定失敗.\n");
        return 0;
    }
    /*3. 設(shè)置等待連接的客戶端數(shù)量*/
    listen(sockfd,10);
    /*4. 等待客戶端連接(被動(dòng)--阻塞)*/
    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("服務(wù)器:處理客戶端的連接失敗.\n");
        return 0;
    }
    /*5. 實(shí)現(xiàn)數(shù)據(jù)通信*/
    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("服務(wù)器接收的數(shù)據(jù):%d,%s\n",cnt,buff);
        sleep(5);
    }
    /*6. 關(guān)閉套接字*/
    close(client_sockfd);
    close(sockfd);
    return 0;
}

3. RedHat 紅帽6.3系統(tǒng)

3.1 設(shè)置網(wǎng)絡(luò)

設(shè)置方法與ubuntu 系統(tǒng)一樣。

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

3.2 關(guān)閉防火墻

image-20211202140613370

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209322
  • 網(wǎng)絡(luò)編程
    +關(guān)注

    關(guān)注

    0

    文章

    71

    瀏覽量

    10074
  • 虛擬機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    914

    瀏覽量

    28160
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    VM虛擬機(jī)與主機(jī)不能互ping通

    VM橋接方式將LINUX虛擬機(jī)加入主機(jī)的局域網(wǎng),兩者一個(gè)網(wǎng)段一個(gè)網(wǎng)關(guān),然后發(fā)現(xiàn)虛擬機(jī)能ping通局域網(wǎng)內(nèi)除了主機(jī)外的所有設(shè)備,唯獨(dú)不能ping通主機(jī),同樣,主機(jī)也不能ping 通虛擬機(jī)
    發(fā)表于 04-10 21:55

    虛擬機(jī)上網(wǎng)設(shè)置求助

    虛擬機(jī)上網(wǎng)設(shè)置,按回車沒反應(yīng),,怎么回事?
    發(fā)表于 09-04 21:10

    虛擬機(jī)上的Linux系統(tǒng)掛載SD卡失敗原因分析

    虛擬機(jī)上的Linux系統(tǒng)掛載SD卡失敗原因分析 虛擬機(jī)上安裝Linux系統(tǒng)后,相信很多人都碰到過在Linux系統(tǒng)中SD卡或U盤不能正常讀取的狀況。這里整理了一些常見的解決方法:1. 如果在
    發(fā)表于 09-16 09:48

    vm虛擬機(jī)構(gòu)建局域網(wǎng)的三種鏈接模式介紹

    虛擬機(jī)還有主機(jī)還有互聯(lián)網(wǎng)是雙向連通的,通過這種方式可以構(gòu)建局域網(wǎng),只用將虛擬機(jī)的ip地址設(shè)置成與主機(jī)的同一個(gè)網(wǎng)段,而網(wǎng)關(guān)和子網(wǎng)掩碼設(shè)置成和主機(jī)相同就能實(shí)現(xiàn)
    發(fā)表于 07-04 03:05

    VM虛擬機(jī)開機(jī)等待1分30秒怎么解決

    VM虛擬機(jī)開機(jī)時(shí)多出1分30秒的解決方案
    發(fā)表于 10-30 08:36

    VMware中虛擬機(jī)網(wǎng)絡(luò)設(shè)置方法

    虛擬機(jī)linux上網(wǎng)問題一、VMware中虛擬機(jī)網(wǎng)絡(luò)的三種設(shè)置第一種:橋接(bridged)第二種:NAT第三種:Host only 。該模式下僅主機(jī)可以上網(wǎng),
    發(fā)表于 11-05 08:04

    怎樣通過NAT模式去實(shí)現(xiàn)虛擬機(jī)共享主機(jī)網(wǎng)絡(luò)

    內(nèi)建立一個(gè)虛擬服務(wù)器,并為局域網(wǎng)用戶提供服務(wù),那就得選擇該模式。NAT模式:Nat模式,虛擬機(jī)通過宿主機(jī)所在的網(wǎng)絡(luò)來訪問internet,即虛擬機(jī)把宿主機(jī)作為路由器來訪問互聯(lián)網(wǎng)。開始配
    發(fā)表于 10-17 16:21

    VM虛擬機(jī)詳細(xì)使用安裝教程

    VM虛擬機(jī)詳細(xì)使用安裝教程
    發(fā)表于 07-30 16:16 ?0次下載

    vm建好虛擬機(jī)找不到應(yīng)該如何解決

      1,今天裝vm12,虛擬機(jī)建好后,vm上面沒有對(duì)應(yīng)的虛擬系統(tǒng),網(wǎng)上搜了一下,有人說把防火墻關(guān)了就可以了,試了一下,果然湊效。
    發(fā)表于 08-19 17:31 ?0次下載
    <b class='flag-5'>vm</b>建好<b class='flag-5'>虛擬機(jī)</b>找不到應(yīng)該如何解決

    虛擬機(jī):QEMU虛擬機(jī)和主機(jī)無線網(wǎng)絡(luò)通訊設(shè)置

    虛擬機(jī):QEMU虛擬機(jī)和主機(jī)無線網(wǎng)絡(luò)通訊設(shè)置
    的頭像 發(fā)表于 06-22 10:19 ?5441次閱讀
    <b class='flag-5'>虛擬機(jī)</b>:QEMU<b class='flag-5'>虛擬機(jī)</b>和主機(jī)無線<b class='flag-5'>網(wǎng)絡(luò)</b>通訊<b class='flag-5'>設(shè)置</b>

    虛擬機(jī):Ubuntu的Thinkpad電池設(shè)置

    虛擬機(jī):Ubuntu的Thinkpad電池設(shè)置
    的頭像 發(fā)表于 06-22 11:35 ?2528次閱讀
    <b class='flag-5'>虛擬機(jī)</b>:Ubuntu的Thinkpad電池<b class='flag-5'>設(shè)置</b>

    VMware虛擬機(jī)和主機(jī)傳輸文件

    存放共享文件,我的路徑為: E:\\VMware\\Share 打開VMware,打開菜單欄的“虛擬機(jī)——設(shè)置”,如圖所示: 打開“硬件——網(wǎng)絡(luò)配置器”,選擇“NAT模式”: 打開“選項(xiàng)——共享文件夾”,選
    的頭像 發(fā)表于 06-13 17:50 ?1671次閱讀
    VMware<b class='flag-5'>虛擬機(jī)</b>和主機(jī)傳輸文件

    vm虛擬機(jī)linux系統(tǒng)怎么編程

    虛擬機(jī)中編程Linux系統(tǒng)是學(xué)習(xí)和探索計(jì)算機(jī)科學(xué)的一個(gè)重要方面。使用虛擬機(jī)可以在主機(jī)上模擬出一個(gè)或多個(gè)獨(dú)立的計(jì)算環(huán)境,我們可以在其中安裝和運(yùn)行不同的操作系統(tǒng)。通過創(chuàng)建虛擬機(jī),我們可以
    的頭像 發(fā)表于 11-17 10:10 ?1941次閱讀

    虛擬機(jī)如何運(yùn)行c程序

    虛擬機(jī)(Virtual Machine,VM)是一種模擬了物理計(jì)算機(jī)的軟件,可以在計(jì)算機(jī)上創(chuàng)建虛擬的硬件平臺(tái),使得用戶可以在其中運(yùn)行操作系統(tǒng)和應(yīng)用程序。在
    的頭像 發(fā)表于 11-17 10:14 ?4903次閱讀

    如何在虛擬機(jī)上運(yùn)行c源代碼

    如何在虛擬機(jī)上運(yùn)行C源代碼 確保虛擬機(jī)環(huán)境設(shè)置正確 在使用虛擬機(jī)之前,首先需要確保虛擬機(jī)已正確安裝并正確
    的頭像 發(fā)表于 11-17 10:16 ?4426次閱讀
    RM新时代网站-首页