赞
踩
目的:本人想在私人电脑上搭建与公司一样的网络环境进行学习工作,此博客记录搭建环境的步骤与当中遇到的问题,方便以后查阅。最终想建立的网络连接如下图所示:
ps:作者这里使用的虚拟机软件是VMWare Workstation,Linux服务器采用的是Ubuntu18.04版本。
VMWare有3种网络配置方式,Bridged(桥接模式)、NAT(网络地址转换模式)和Host Only(仅主机模式),这三种模式的区别可以参考以下这篇博客:
按照我们的需求,我们需要将虚拟机网络配置为Bridged(桥接模式)。桥接模式相当于虚拟机和主机在同一个真实网段,VMWare充当一个集线器功能(一根网线连到主机相连的路由器上),所以如果电脑换了内网,静态分配的ip要更改。图如下:
“桥接模式”具体的配置方式为:“编辑”->“虚拟网络编辑器”->“更改设置”->“桥接模式”->选择对应的有线网卡->确定即可。
配置后网络适配器为桥接模式,如下:
若不是桥接模式,双击再点进去设置下即可。
打开虚拟机,启动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的内容含义可以参考以下博客:
作者在试验时能ping通外网,却ping不通Windows主机,查阅了相关资料发现是Windows主机的网络防火墙没有关闭导致的。主要参考以下博客:
虚拟机的防火墙状态查看:systemctl status firewalld
虚拟机的防火墙关闭:systemctl stop firewalld
关闭虚拟机的防火墙自动启动:systemctl disable firewalld
Windows主机关闭防火墙方式:“控制面板”->“系统和安全”->“Windows Defender防火墙”->“启用或关闭Windows Defender防火墙”->选择关闭即可。
如此再次重复Linux服务器ping Windows主机,便可以ping成功。
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 连接 VMWare 虚拟机中的 Ubuntu
搭建samba服务器,便于Windows端与Linux服务器之间进行文件共享。参考以下博客,博客较为完整详细,就不再重复,有需要的同学请点击下方链接:
相信工作了的小伙伴都知道,Code版本控制很重要!因为在开发的过程中很容易一不小心就打坏了Code,使之前能正常运行的环境一下子奔溃,如果没有版本控制,这时候情况将会一团糟,只能硬着头皮肝到底了,有了版本控制之后呢,我们可以通过夹Code的方式恢复到之前正常运行的某个时间节点的Code,这样就可以不慌不乱的处理Bug了。
版本控制主要有集中式版本控制与分布式版本控制,作者这里使用的是分布式版本控制git进行版本控制。
可以参考下面这篇博客,在你对应的Linux发行版上安装git。
作者这里使用的是Ubuntu18.04,直接在Linux控制台输入:
sudo apt-get install git
直接就能安装完成,有没有安装完成可以通过以下方式检查:
@ubuntu:~$ git --version
git version 2.17.1
如果显示出git版本号信息,就表示已经安装完成了,可以尝试使用git的指令。
git版本控制需要有一个云端托管平台托管你的Code,这样才能正常的进行push/pull操作。
常用的git托管平台有github,gitlab,gitee,这里简单的讲一下它们的区别:
作者选择使用gitee作为代码托管平台,托管平台环境的建立可参考以下博客:
为了防止在开发过程中Linux服务器(虚拟机)损坏导致Linux服务器无法使用,作者使用了Windows的自动备份功能进行自动备份。
打开“控制面板”->“系统和安全”->“备份和还原” 进行备份设置。
设置好的界面如下:
如果在备份的过程中遇到错误,可以参考这篇博客的方法进行解决:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。