网络参数获取方式

回到顶部

linux网络设置是系统管理员最基本的技能。网络设置需要了解网络IP、gateway、netmask等参数, 如果要连接Internet, 或者架设(拥有自己的域名)www服务器,就得要理解DNS,在某些情况下可能需要自己架设DNS服务器。
在架设网络服务器之前必须先理解网络基础知识!
网络安全也是系统管理员时刻关注的问题!
这里仅介绍Linux客户端的网络网络,而非服务器!
通常网络参数的取得方式常见的有底下这几种:

1.手动设置固定IP:
要想让linux能够连接上网,必须获取如下几个参数:

IP;
子网掩码(netmask);
通讯网关(gateway);
DNS主机的IP;
2.自动获取网络参数(DHCP):
常见于IP分享器后端的主机,或者是利用电视线路的缆在线网 (cable modem),或者是学校宿舍的网络环境等。 这种网络参数获取方式称为DHCP
3.光纤与ADSL宽带连接
不论是固定IP还是动态获取IP,只要是通过光纤到户或宽带调制解调器拨接上网的,就是使用这种方式。 拨接上网虽然还是使用网络卡连接到调制解调器上,不过,系统最终会产生一个替代调制解调器的网络接口(ppp0),ppp0 也是一个实体网络接口!
调制解调器内部已经包含了IP分享与自动拨接功能,只需要自动取得IP的方式来取得网络参数!

我们通过网卡连接网络。目前主流网卡为以太网络协议所开发出来的以太网卡(Ethernet),Linux称这种网络接口为ethN(N为数字)。 initroot这部测试机上面有一张以太网卡,网络接口就是eth0,第一张从0号开始。
CentOS 7则自己一套新的网卡编号规则,与网卡的硬件接口有关,基本上的网卡名称会是这样分类的:
eno1 :代表主板 BIOS 内建的网卡;
ens1 :代表主板 BIOS 内建的 PCI-E 接口的网卡;
enp2s0 :代表 PCI-E 接口的独立网卡,可能有多个插孔,因此会有 s0, s1...;
eth0 :如果上述的名称都不适用,就回到原本的默认网卡编号;
ifconfig -a命令直接列出全部的网卡!CentOS 7不希望手动修改配置文件, 而是直接使用nmcli命令设置网络参数. 因为测试机是虚拟机,上述的网卡代号只有eth0,你得要自己看自己的系统上面的网卡代号!

手动设置IP网络参数

回到顶部

假设你已经向ISP取到了你的网络参数,基本上的网络参数需要这些:

              method: manual(手动设置);
              IP: 172.16.1.1;
              netmask: 255.255.0.0;
              gateway: 172.16.200.254;
              DNS: 172.16.200.254;
              hostname: study.centos.initroot;
            
hostname可以暂时忽略,要上网就必须设置上面的这些参数! 然后通过nmcli来处理!,nmcli通过一个名为联机代号的名称来设置是否要上网,而每个联机代号会有个网卡代号, 这两个东西通常设置成相同就可以了。
nmcli命令需要开启NetworkManager服务。先来查查目前系统上默认有什么联机代号:
              [root@study ~]# nmcli connection show [网卡代号]
              [root@study ~]# nmcli connection show
              NAME                UUID                                  TYPE      DEVICE 
              Wired connection 1  0c9745ec-fe49-3138-ba7a-237ae4e07699  ethernet  enp0s3 
              NAME 就是联机代号,通常与后面的网卡DEVICE一样;
                UUID 这个是特殊的装置识别,保留就好不要理他;
                TYPE 就是网卡的类型,通常就是以太网卡;
                DEVICE 当然就是网卡名称
            
上面可以看到有个eth0的联机代号,查察这个联机代号的设置:
              [root@study ~]# nmcli connection show eth0
              connection.id: eth0
              connection.uuid: 505a7445-2aac-45c8-92df-dc10317cec22
              connection.interface-name: eth0
              connection.type: 802-3-ethernet
              connection.autoconnect: yes
              .....(中间省略).....
              ipv4.method: manual
              ipv4.dns:
              ipv4.dns-search:
              ipv4.addresses: 192.168.1.100/24
              ipv4.gateway: --
              .....(中间省略).....
              IP4.ADDRESS[1]: 192.168.1.100/24
              IP4.GATEWAY:
              IP6.ADDRESS[1]: fe80::5054:ff:fedf:e174/64
              IP6.GATEWAY:
            
最底下大写的IP4, IP6 指的是目前的实际使用的网络参数,最上面connection开头的部份则指的是联机的状态! 比较重要的参数如下:
connection.autoconnect [yes|no] :是否于开机时启动这个联机,预设通常是 yes 才对!
ipv4.method [auto|manual] :自动还是手动设置网络参数的意思
ipv4.dns [dns_server_ip] :就是填写 DNS 的 IP 地址~
ipv4.addresses [IP/Netmask] :就是 IP 与 netmask 的集合,中间用斜线 / 来隔开~
ipv4.gateway [gw_ip] :就是 gateway 的 IP 地址!
根据上面的设置项目,我们来设置网络参数:
              [root@study ~]# nmcli connection modify eth0 \
              > connection.autoconnect yes \
              > ipv4.method manual \
              > ipv4.addresses 172.16.1.1/16 \
              > ipv4.gateway 172.16.200.254 \
              > ipv4.dns 172.16.200.254
            
上面只是修改了配置文件,要生效还得启动(up)eth0 联机接口:
              [root@study ~]# nmcli connection up eth0
              [root@study ~]# nmcli connection show eth0
              .....(前面省略).....
              IP4.ADDRESS[1]: 172.16.1.1/16
              IP4.GATEWAY: 172.16.200.254
              IP4.DNS[1]: 172.16.200.254
              IP6.ADDRESS[1]: fe80::5054:ff:fedf:e174/64
              IP6.GATEWAY:
            
最后执行nmcli connection show eth0,确认是否设置正确!

自动取得IP参数

回到顶部

如果网络是由DHCP协议自动分配取得的,只需要将ipv4.method那个项目填成auto即可!

              [root@study ~]# nmcli connection modify eth0 \
              > connection.autoconnect yes \
              > ipv4.method auto
              [root@study ~]# nmcli connection up eth0
              [root@study ~]# nmcli connection show eth0
              IP4.ADDRESS[1]: 172.16.2.76/16
              IP4.ADDRESS[2]: 172.16.1.1/16
              IP4.GATEWAY: 172.16.200.254
              IP4.DNS[1]: 172.16.200.254
            
自动取得IP要简单得多!另外,上面connection...,ipv4... 等参数也可以使用 [tab] 呼叫出来!nmcli支持bash-complete的功能,指令执行也很方便的!

显示和修改主机名

回到顶部

主机名记录在/etc/hostname文件中,可以直接将主机名写入该文件。 hostname命令可以显示主机名,也可以使用hostnamectl命令显示和修改主机名,hostnamectl命令常用格式如下所示:

              [root@study ~]# hostnamectl [set-hostname 主机名]
            
显示主机名与相关信息:
              [root@study ~]# hostnamectl
                Static hostname: peter-initroot
                      Icon name: computer-vm
                        Chassis: vm
                      Machine ID: 82929df7ee394b73b81252fe3b4e5020
                        Boot ID: 3bbb6c089a7c486baadc048bd40b0ad5
                  Virtualization: oracle
                Operating System: Linux Mint 19.1
                          Kernel: Linux 4.15.0-65-generic
                    Architecture: x86-64
            
hostnamectl命令除了可以显示主机名外,也可以显示系统的相关信息,包括操作系统版本,内核版本,cpu处理器架构,机器ID等。 而hostname命令只是简单的显示主机名:
              [root@study ~]# hostname
              peter-initroot
            
将主机名修改为www.initroot.com:
              [root@study ~]# hostnamectl set-hostname www.initroot.com
              [root@study ~]# cat /etc/hostname
              www.initroot.com
            
再修改回去:
              [root@study ~]# hostnamectl set-hostname peter-initroot
            

本文由initroot编辑整理,转载请注明www.initroot.com