linux网络设置


(手动设定与 DHCP 自动取得) 作为系统管理员,linux网络设置是最基本的技能。网络设置需要了解网络的IP、gateway、netmask等参数, 如果要连接Internet, 或者拥有自己的域名需要假设www服务器,就得要理解DNS的含义,在某些情况下可能需要自己假设DNS服务器。
总之,在设定网络服务器之前,必须要先理解网络的基础知识!
网络安全也必须是系统管理员要时刻关注的问题!
但这里的网络介绍仅止于当你是一部单机的 Linux 客户端,而非服务器! 所以你的各项网络参数只要找到网络管理员, 或者是找到你的 ISP (Internet Service Provider), 向他询问网络参数的取得方式以及实际的网络参数即可。
通常网络参数的取得方式常见的有底下这几种: 手动设定固定 IP 常见于学术网络的服务器设定、公司行号内的特定座位等。
这种方式你必须要取得底下的几个参数才能够让你的 Linux 上网的:

IP
子网掩码(netmask)
通讯闸(gateway)
DNS 主机的 IP (通常会有两个,若记不住的话,硬背 168.95.1.1 即可)
网络参数可自动取得 (dhcp协议自动取得) 常见于 IP 分享器后端的主机,或者是利用电视线路的缆在线网 (cable modem),或者是学校宿舍的网络环境等。 这种网络参数取得方式就被称为 dhcp ,你啥事都不需要知道,只要知道设定上网方式为 dhcp 即可。
光纤与ADSL宽带拨接
不论你的 IP 是固定的还是每次拨接都不相同 (被称为浮动式 IP),只要是透过光纤到府或宽带调制解调器拨接上网的,就是使用这种方式。 拨接上网虽然还是使用网络卡连接到调制解调器上,不过,系统最终会产生一个替代调制解调器的网络接口 (ppp0) , 那个 ppp0 也是一个实体网络接口啦!
调制解调器内部已经涵盖了 IP分享与自动拨接功能, 因此,其实你在调制解调器后面也还是只需要自动取得 IP的方式来取得网络参数即可喔!
了解了网络参数的取得方法后,你还得要知道一下我们透过啥硬件连上 Internet 的呢?其实就是网络卡嘛。 目前的主流网卡为使用以太网络协议所开发出来的以太网卡 (Ethernet),因此我们 Linux 就称呼这种网络接口为 ethN (N 为数字)。 举例来说,的这部测试机上面有一张以太网卡,因此鸟哥这部主机的网络接口就是 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 然后看最下方,是否为正确的设定值呢?如果是的话,那 就万事 OK 啦!
自动取得 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 要简单太多了!同时下达 modify 之后,整个配置文件就写入了!因此你无须使用 vim 去重新改写与设定! 是认为, nmcli 确实不错用喔!另外,上面的参数中,那个 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

100次点赞 100次阅读