1. 背 景

  你是在玩单机吗?对于现在而言,这句话无疑是略带嘲讽的含义,也恰恰证明了网络的重要性,那么计算机里面的网络是怎么分布的呢,为啥你能上网呢,Linux系统需要需要进行哪些网络配置呢,这里就给大家简单介绍下;

2. 计算机联网说明

  这里强调下,其实大部分情况下,公司使用的Linux系统,实际上是虚拟机,即一台服务器虚拟出来3 ~ 4台虚拟机,而这3 ~ 4 虚拟机在用户使用的时候是相互独立的,互不干扰;优点自然是虚拟技术使得资源更好的利用;缺点是如果他们宿主的服务器整个磁盘坏了,是会使得四台虚拟机同时崩溃;
  所以这里说道的联网说明,是指的虚拟机,虚拟机的主机,虚拟主机机房内的其他主机,外网之间的连接,具体示意图如图2.1;
在这里插入图片描述

图2.1 计算机联网示意图

  如图2,局域网这里可以理解为一个机房内或者一个教室内,有很多实体机,这些实体机一般是接入同一个路由,所以一般局域网的实体机会在同一个网段(除非机器过多一个网段不够或者本身刻意配置在不同的网段),但是一般局域网内的机器是能直接通信的,即实体机1和实体机2是能通信的,而实体机需要上外网,如百度,则需要通过网关接入到万维网内;
  那虚拟机是怎么通信的呢,虚拟机1、虚拟机2、虚拟机3以及他们的宿主机器实体机1其实也会形成一个局域网,而且虚拟机直接是相同网段的,但是和宿主主机不一定是相同的网段,跟你选择的网络连接方式有关,这个下个小节再讲,但是宿主主机一定是可以作为虚拟的一个代理机器的,所以虚拟机1可以通过宿主主机实体机1和实体机2通信,也可以通过实体机1通过网关接入万维网,但是实体机2不一定能直接访问虚拟机1,这个也和你选择的网络连接的种类有关;

3. 网络连接的分类

  虚拟机网络通常分为桥接模式,NAT模式,仅主机模式三类。

3.1 桥接模式

  如图3.1,RowYet公司电脑在一个局域网内,占用的是192.168.80.*这个网段,现在RowYet在公司玩起了虚拟机,使用桥接模式就是虚拟出来的虚拟机会继承局域网的网段192.168.80.*,如192.168.80.53;192.168.80.54
  优点:虚拟机和实体机在一个网段,相互之间可以通信,方便;

  缺点:虚拟机会占用整个网段的IP个数,整个网段总共256(192.168.80.0~255)个IP,除去网关(192.168.80.1)、广播地址(192.168.80.255)、子网(192.168.80.0),以及一些预保留备用的IP地址,剩下的并不多,所以就取决于你整个局域网规模内的服务器或电脑台数,如果本身就是一个20人左右小工作室,那无所谓,如果规模比较大,此种模式是不合适的。
在这里插入图片描述

图3.1 桥接模式

3.2 NAT模式(常用模式)

  如图3.2,RowYet公司电脑在一个局域网内,占用的是192.168.80.*这个网段,现在RowYet在公司玩起了虚拟机,使用NAT(Network Address Translation 网络地址转换)模式就是虚拟出来的虚拟机会先虚拟一块网卡出来,且该虚拟网卡会起一个新的网段,假设为192.168.182.*,该网段和真实IP不在一个网段内;

  优点:虚拟机新开辟网段,不占用原先局域网的IP,多台机器可以虚拟大量的虚拟机。

  缺点:原先局域网内的机器李四、王五是无法直接找到虚拟机的,因为不在同一个网络内;但是虚拟机可以找到李四、王五,也可以上万维网,为啥呢,因为虚拟机可以通过RowYet的实体机192.168.80.75做代理,从而能实现访问李四、王五和通过网关出去访问万维网。
在这里插入图片描述

图3.2 NAT模式

3.3 仅主机模式

  仅主机模式就是把虚拟机当成一台新的服务器,跟宿主的实体机和局域网内的其他机器都没有关系,是独立的,该虚拟机访问不了宿主的实体机,也访问不了局域网内的机器,也上不了万维网,类似一个单机,实际运用中用得少。

4. 网络配置实操

4.1 选用NAT模式

  打开虚拟机软件VM主页,如图4.1,点击编辑虚拟机设置,在弹出的对话框内,选择网络适配器,选择NAT模式,点击确定保存即可;
  虚拟机的其他配置(CPU,内存)也在该处修改保存。
在这里插入图片描述

图4.1 选择NAT模式

4.2 查看子网,网关,子网掩码等操作

  点击VM主页菜单栏的编辑,点击虚拟网络编辑器,稍等片刻跳出虚拟网络编辑器界面,里面选择NAT模式,该页面下面便可以查看子网、子网掩码;点击页面上的NAT设置,跳转NAT设置页面,在新页面里面,就可以查看到网关、子网、子网掩码

  有了这些东西就可以去配置虚拟机的IP了。
在这里插入图片描述

图4.2 查看子网,网关,子网掩码等操作

4.3 固定IP、打开网络连接

  打开安装好的虚拟机,开机,打开终端,在终端输入ifconfig,查看到你的网卡名称;博主的是ens33
在这里插入图片描述

4.3 查看网卡
   所有要的信息都得到了后,所以我们直接在centos的终端命令行编辑网卡配置,指令如下:

[root@node7 ~] vi /etc/sysconfig/network-scripts/ifcfg-ens33

  指令vi就是linux下的记事本,针对vi或者vim的操作,可以参考博客Linux常用的vi/vim指令,输入刚刚的指令后,我们能看到:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=638db334-1b8c-4ed6-afb7-23a44a8713b1
DEVICE=ens33
ONBOOT=no

  修改其中的文件内容,按字母a键:

  • ONBOOT=no 改为 ONBOOT=yes
  • BOOTPROTO=dhcp 改为 BOOTPROTO=static
  • 并增加如下几行字符
    IPADDR=192.168.144.137
    NETMASK=255.255.255.0
    GATEWAY=192.168.144.2
    DNS1=119.29.29.29 或者DNS1=192.168.144.2
    ZONE=public

  最终文件为:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=638db334-1b8c-4ed6-afb7-23a44a8713b1
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.144.137
NETMASK=255.255.255.0
GATEWAY=192.168.144.2
DNS1=119.29.29.29
ZONE=public

ONBOOT设置为yes,表示网卡随着系统一同启动
BOOTPROTO用来设置网卡的启动类型,dhcp表示自动获取IP地址,static表示手动设置静态IP地址,一定要改成static,不然每次重启网卡都会重新分配一个ip,而且动态IP优先级高于你后面设置的IPADDR=192.168.144.137
IPADDR指定IP地址(取决于前面已自动获取到的地址)
NETMASK指定子网掩码
GATEWAY指定网关
DNS1指定上网用的DNS IP地址
119.29.29.29是国内DNSpod公司提供的一个公共,192.168.144.2是本机的DNS,二者都可以。
DNS1=119.29.29.29 可选,可写可不写
ZONE=public 可选,可写可不写

  编辑完后,按下Esc键,紧接着输入“:wq!”并回车,保存并退出此文档,然后利用指令systemctl restart network.service重启网络服务。在利用ip addr查看一下ip地址,发现就是我们固定配置的IP,不会随着网络服务重启而变更,说明成功了。

[root@node7 ~]# systemctl restart network.service
[root@node7 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul                                               t qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP g                                               roup default qlen 1000
   link/ether 00:0c:29:eb:97:18 brd ff:ff:ff:ff:ff:ff
   inet 192.168.144.137/24 brd 192.168.144.255 scope global noprefixroute ens33
      valid_lft forever preferred_lft forever
   inet6 fe80::d01b:4c57:540a:9af3/64 scope link noprefixroute
      valid_lft forever preferred_lft forever
[root@node7 ~]#

4.4 固定(主机名称)hostname

#修改/etc/hostname文件
sudo vim /etc/hostname
#将里面的内容改成你想要的hostname,然后wq!保存退出,利用

# 重启后生效,重启后验证下下ip 和hostname是否是你设置的,有误变更
sudo reboot 

4.5. 防火墙相关的操作

  有时候因为防火墙的干扰别人需要访问你的虚拟机受挫,设计关闭防火墙的命令如下(CentOS7版本);

sudo systemctl status firewalld #查看防火墙状态
sudo systemctl stop firewalld #关闭防火墙
sudo systemctl start firewalld #开启防火墙

5. 远程连接工具

  在 原始的Linux的Terminal命令行操作,搞得我好难受,复制、粘贴又不方便,语法关键字又不高亮,只是苦于没有IP地址,现在已经分配到IP地址,只要开通了网络端口,就能借助强大的安全终端远程操作这台Linux。
  常用的远程终端有x-shellputtyMobaXterm等,putty遇到一些错误结果的指令后会 hang住,不给重试的机会,体验感不行,x-shellMobaXterm各有千秋而且都有免费版,对比如表5.1.1;

表5.1.1 常用远程工具对比
工具远程登录图形界面上传下载文件n屏联动稳定性
puttyYNN较差
x-shellYNN较好
xftpNYN较好
MobaXtermYYY较好

  博主还是比较喜欢MobaXterm,毕竟功能上MobaXterm=x-shel+xftp,而且MobaXterm语法高亮很美,而且支持拖拽文件,最牛逼的是可以n屏联动,非常适合集群级别配置,如图10,进入屏联动的方法是:点击菜单栏的Terminal,然后选择Write commands on all terminals就可以进入该模式了,退出的话点击图5.1.4上面的Exit mult-execution mode即可,是不是很牛?

  打开安装好的MobaXterm,如图5.1.1,点击菜单栏的Session跳出弹框,点击弹框的SSH,在Remote host上写上你的linux的IP地址,Specify username填写默认的登录用户名,我是自己的机器就写了root了。port一般都是默认的远程端口22,除非改过;选择Bookmark settings版块,可以写上Comments(你给这台机器写写注释),都配置好以后点击OK按钮,跳转图8。

在这里插入图片描述

图5.1.0 利用MobaXterm远程linux

  到了图5.1.2 ,如果一切都是Ok的话,第一次登录会让你输入密码,Password(linux下的Password输入不会像windows下有明文或者****的字符提示,linux光标是不会动的,别怕,你尽管输入,输错了如果你记得位数也可以按删除键Back删除,输完就按回车键Enter即可),密码输入准确后会问你是否保存密码,如果你点是,那么下次登录就不需要密码了,非常方便,点击Yes跳转图9;
在这里插入图片描述

图5.1.2 配置成功后选择是否保存密码

  到了图5.1.3,说明MobaXterm就配置完成了,可以在这个命令行界面开始操作了,是不是非常漂亮,再也不用忍受原始的那个界面了,企业内往往也是靠这种远程终端开通防火墙登录linux服务器,一般不会让你直接到某台linux机器上去操作。

在这里插入图片描述

图5.1.3 MobaXterm配置成功的界面

在这里插入图片描述

图5.1.4 MobaXterm的n屏联动
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐