Linux开发环境搭建

目的:本人想在私人电脑上搭建与公司一样的网络环境进行学习工作,此博客记录搭建环境的步骤与当中遇到的问题,方便以后查阅。最终想建立的网络连接如下图所示:

网络连接

  1. Windows控制台可以通过SSH连接到Linux服务器(这里作者使用虚拟机Ubuntu作为Linux服务器)进行开发工作。
  2. Windows控制台可以通过serial连接到目标单板进行串口通信。

一、配置虚拟机网络

ps:作者这里使用的虚拟机软件是VMWare Workstation,Linux服务器采用的是Ubuntu18.04版本。

1、配置虚拟机网络模式

VMWare有3种网络配置方式,Bridged(桥接模式)、NAT(网络地址转换模式)和Host Only(仅主机模式),这三种模式的区别可以参考以下这篇博客:

VMWare虚拟机网络配置

按照我们的需求,我们需要将虚拟机网络配置为Bridged(桥接模式)。桥接模式相当于虚拟机和主机在同一个真实网段,VMWare充当一个集线器功能(一根网线连到主机相连的路由器上),所以如果电脑换了内网,静态分配的ip要更改。图如下:

桥接模式
“桥接模式”具体的配置方式为:“编辑”->“虚拟网络编辑器”->“更改设置”->“桥接模式”->选择对应的有线网卡->确定即可。
虚拟网络编辑器
配置后网络适配器为桥接模式,如下:
虚拟机界面
若不是桥接模式,双击再点进去设置下即可。
虚拟机设置

2、Linux Ubuntu网络配置

打开虚拟机,启动Linux服务器,ifconfig查看下服务器的网络配置。我们需要将Linux服务器与Windows主机配置在同一网段才能进行网络通信。作者当前Windows主机在192.168.3.0网段,则也需要配置Linux服务器在同一网段中。在桥接模式下,只需将网络配置成dhcp模式就可以将Windows主机与Linux服务器处在同一网段下,具体原理见桥接模式图。

vi /etc/network/interfaces // 打开网络配置文件
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto ens33
iface ens33 inet dhcp
        address 192.168.3.10
        network 192.168.3.0
        netmask 255.255.255.0
        broadcast 192.168.3.255
        gateway 192.168.3.1

这里直接采用dhcp的方式自动分配一个IP,在终端上执行reboot,重启服务器让网络配置生效,这里要注意的一点是,ens33这个名字不能替换成eth0或者eth1这几个名字,否则会加载配置不成功,作者也没有深入研究为什么,能用就行。

重启后在终端执行ifconfig,看到如下配置信息:

@ubuntu:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.3.11  netmask 255.255.255.0  broadcast 192.168.3.255
        inet6 fe80::20c:29ff:fe54:a061  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:54:a0:61  txqueuelen 1000  (Ethernet)
        RX packets 587  bytes 312030 (312.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 815  bytes 110633 (110.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 338  bytes 27938 (27.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 338  bytes 27938 (27.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

可见,Linux服务器网络配置已经生效,Windows主机与Linux服务器端已处在同一个网段中。

尝试能否在Linux服务器中ping通外网:

@ubuntu:~$ ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=56 time=7.88 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=56 time=21.2 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=56 time=8.69 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=4 ttl=56 time=7.83 ms

尝试能否在Linux服务器中ping通Windows主机:

@ubuntu:~$ ping 192.168.3.9
PING 192.168.3.9 (192.168.3.9) 56(84) bytes of data.
64 bytes from 192.168.3.9: icmp_seq=1 ttl=128 time=0.375 ms
64 bytes from 192.168.3.9: icmp_seq=2 ttl=128 time=0.227 ms
64 bytes from 192.168.3.9: icmp_seq=3 ttl=128 time=0.192 ms

若试验现象与上面差不多,代表Linux服务器网络已能ping通外网与Windows主机。

/etc/network/interfaces的内容含义可以参考以下博客:

linux interfaces配置文件详解

3、关闭防火墙

作者在试验时能ping通外网,却ping不通Windows主机,查阅了相关资料发现是Windows主机的网络防火墙没有关闭导致的。主要参考以下博客:

桥接模式下vmware虚拟机和宿主机ping不通问题排查

虚拟机的防火墙状态查看:systemctl status firewalld
虚拟机的防火墙关闭:systemctl stop firewalld
关闭虚拟机的防火墙自动启动:systemctl disable firewalld

Windows主机关闭防火墙方式:“控制面板”->“系统和安全”->“Windows Defender防火墙”->“启用或关闭Windows Defender防火墙”->选择关闭即可。
关闭防火墙
如此再次重复Linux服务器ping Windows主机,便可以ping成功。

二、Windows SSH连接Ubuntu

Linux服务器可以ping通外网和Windows主机之后,在Windows主机打开串口软件,想通过ssh连接Linux服务器,却发现连接不上。

在Linux服务器终端执行“ssh root@localhost”,得到错误提示“ssh: connect to host localhost port 22: Connection refused”。原因是Ubuntu没有默认提供ssh服务,因此首先安装ssh服务:

@ubuntu:~$ sudo apt-get update
@ubuntu:~$ sudo apt-get install openssh-server

如果安装完后该服务没有自动启动,则手工启动:

@ubuntu:~$ sudo /etc/init.d/ssh start

至此。网络中其他终端(Windows主机就)可以使用 ssh 连接 Linux服务器Ubuntu 了。

ssh连接

参考博客:如何使用 SSH 连接 VMWare 虚拟机中的 Ubuntu

三、搭建samba服务器

搭建samba服务器,便于Windows端与Linux服务器之间进行文件共享。参考以下博客,博客较为完整详细,就不再重复,有需要的同学请点击下方链接:

Ubuntu 18.04安装Samba服务器及配置

四、Git版本控制环境搭建

相信工作了的小伙伴都知道,Code版本控制很重要!因为在开发的过程中很容易一不小心就打坏了Code,使之前能正常运行的环境一下子奔溃,如果没有版本控制,这时候情况将会一团糟,只能硬着头皮肝到底了,有了版本控制之后呢,我们可以通过夹Code的方式恢复到之前正常运行的某个时间节点的Code,这样就可以不慌不乱的处理Bug了。

版本控制主要有集中式版本控制与分布式版本控制,作者这里使用的是分布式版本控制git进行版本控制。

1、Linux服务器安装git

可以参考下面这篇博客,在你对应的Linux发行版上安装git。

Linux和Unix如何安装git

作者这里使用的是Ubuntu18.04,直接在Linux控制台输入:

sudo apt-get install git

直接就能安装完成,有没有安装完成可以通过以下方式检查:

@ubuntu:~$ git --version
git version 2.17.1

如果显示出git版本号信息,就表示已经安装完成了,可以尝试使用git的指令。

2、Git代码托管

git版本控制需要有一个云端托管平台托管你的Code,这样才能正常的进行push/pull操作。

常用的git托管平台有github,gitlab,gitee,这里简单的讲一下它们的区别:

  1. github只能免费建立公有仓库,私有仓库的建立需要花钱购买服务。这意味着如果你不想花钱只能选择开源你的代码。
  2. gitlab支持免费建立私有仓库与公有仓库,网上搜索了下,似乎在国内使用gitlab会有卡慢的情况(ps:作者未使用过,仅供参考。没有使用就没有发言权。)。
  3. gittee,国内最大的托管平台,支持中文界面,支持免费建立私有仓库,建立公有仓库的话需要经过审核。

作者选择使用gitee作为代码托管平台,托管平台环境的建立可参考以下博客:

Gitee远程库搭建

五、系统备份

为了防止在开发过程中Linux服务器(虚拟机)损坏导致Linux服务器无法使用,作者使用了Windows的自动备份功能进行自动备份。

打开“控制面板”->“系统和安全”->“备份和还原” 进行备份设置。

设置好的界面如下:
Windows备份
如果在备份的过程中遇到错误,可以参考这篇博客的方法进行解决:

windows10系统备份错误怎么办 windows10系统备份错误解决方法

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值