配置网络服务
Linux主机要与网络中其他主机进行通信,首先要进行正确的网络配置。网络配置通常包括主机名、IP地址、子网掩码、默认网关、DNS服务器等。
设置主机名
RHEL 7有以下3种形式的主机名。
- 静态的(static):“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。
- 瞬态的(transient):“瞬态”主机名是在系统运行时临时分配的主机名,由内核管理。例如,通过DHCP或DNS服务器分配的localhost就是这种形式的主机名。
- 灵活的(pretty):“灵活”主机名是UTF8格式的自由主机名,以展示给终端用户。
与之前版本不同,RHEL 7中的主机名配置文件为/etc/hostname,可以在配置文件中直接更改主机名。
使用nmtui修改主机名
使用NetworkManager的nmtui接口修改了静态主机名后(/etc/hostname文件),不会通知hostnamectl。要想强制让hostnamectl知道静态主机名已经被修改,需要重启hostnamed服务。
设置主机名-->静态(持久的) hostname
1. 直接修改文件 vim /etc/hostname
> 修改完毕后不会立即生效:reboot、systemctl restart systemd-hostnamed
*2. 使用UI界面 :nmtui
3. 使用命令:hostnamectl set-hostname 主机名
4. 使用命令:nmcli general hostname 主机名通过网卡配置文件配置网络
在RHEL 7中,网卡配置文件的前缀则以ifcfg开始,如ifcfg-ens32。名称为ifcfg-ens32的网卡设备,将其配置为开机自启动,并且IP地址、子网、网关等信息由人工指定,其步骤如下。
1切换到 /etc/sysconfig/network-scripts 目录中(存放着网卡的配置文件)。
2使用vim编辑器修改网卡文件ifcfg-ens32,逐项写入下面的配置参数并保存退出。由于每台设备的硬件及架构是不一样的,所以请读者使用ifconfig命令自行确认各自网卡的默认名称。
○设备类型:TYPE=Ethernet。
○地址分配模式:BOOTPROTO=static。
○网卡名称:NAME=ens32。
○是否启动:ONBOOT=yes。
○IP地址:IPADDR=192.168.10.1。
○子网掩码:NETMASK=255.255.255.0。
○网关地址:GATEWAY=192.168.10.1。
○DNS地址:DNS1=223.5.5.5。
配置网络需要注意几个:
0. 子网掩码(): 255.255.255.0
子网IP: 192.168.xxx.0
1. IP地址(IPADDR):192.168.xxx.128 - 254
2. 网关(GATEWAY):192.168.xxx.2
3. DNS(DNS1): 8.8.8.8 114.114.114.114
> 上面这些值该怎么写,取决于虚拟机对应的网卡(NAT、仅主机)
判断是否可以访问网络:ping baidu.com
设置网络-->static(持久)
1. 通过UI界面修改:nmtui
1.1 查看网卡信息 ip a
> 修改完毕后不会立即生效,需要重启网卡(systemctl restart network)
使用nmcli命令配置网络
NetworkManager是管理和监控网络设置的守护进程,设备即网络接口,连接是对网络接口的配置。一个网络接口可以有多个连接配置,但同时只有一个连接配置生效。常用命令如下:
nmcli connection show
:显示所有连接。nmcli connection show --active
:显示所有活动的连接状态。nmcli connection show "ens32"
:显示网络连接配置。nmcli device status
:显示设备状态。nmcli device show ens32
:显示网络接口属性。nmcli connection add help
:查看帮助。nmcli connection reload
:重新加载配置。nmcli connection down test2
:禁用test2的配置,注意一个网卡可以有多个配置。nmcli connection up test2
:启用test2的配置。nmcli device disconnect ens32
:禁用ens32网卡,物理网卡。nmcli device connect ens32
:启用ens32网卡。
创建新连接配置
- 创建新连接配置default,IP通过DHCP自动获取
- 创建新的连接配置test,指定静态IP,不自动连接
con-name
:指定连接名字,没有特殊要求。ipv4.method
:指定获取IP地址的方式 [auto
,link-local
,manual
,shared
,disabled
]。type
:指定网络设备类型[ethernet
,bridge
,generic
]。ifname
:指定网卡设备名,也就是次配置所生效的网卡。autoconnect
:指定是否自动启动[yes
,no
]。ipv4.addresses
:指定IPv4地址。gw4
:指定网关。
配置远程控制任务
配置sshd服务
SSH
(Secure shell
)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。想要使用SSH协议来远程管理Linux系统,则需要部署配置sshd服务程序。sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供了以下两种安全验证的方法。
- 基于口令的验证—用账户和密码来验证登录。
- 基于密钥的验证—需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;该方式相较来说更安全。
sshd服务配置文件中包含的重要参数如下表所示:
参 数 | 作 用 | 参 数 | 作 用 |
| 默认的sshd服务端口 |
| 设定是否允许root管理员直接登录 |
| 设定sshd服务器监听的IP地址 |
| 当远程用户的私钥改变时直接拒绝连接 |
| SSH协议的版本号 |
| 最大密码尝试次数 |
| SSH协议版本为1时, |
| 最大终端数 |
| SSH协议版本为2时, |
| 是否允许密码验证 |
| SSH协议版本为2时, |
| 是否允许空密码登录(很不安全) |
基于口令的验证
在RHEL 7系统中,已经默认安装并启用了sshd服务程序。
在windows中安装一个终端模拟器 XShell6
,通过ssh命令
基于口令的形式进行登陆,其格式为“ssh [参数] 主机IP地址
”,要退出登录则执行exit命令。
基于密钥的验证
加密是对信息进行编码和解码的技术,在传输数据时,如果担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。这样,只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,一般也很难将其破译为明文信息。
在生产环境中使用密码进行口令验证存在着被暴力破解或嗅探截获的风险。如果正确配置了密钥验证方式,那么sshd服务程序将更加安全。
- 在客户端主机RHEL 7-2中生成“密钥对”。查看公钥 id_rsa.pub 和私钥 id_rsa 。
- 把客户端主机RHEL 7-2中生成的公钥文件传送至远程主机
- 在客户端RHEL 7-2上尝试使用root用户远程登录到服务器,此时无须输入密码也可成功登录。
- 在RHEL 7-1上查看RHEL 7-2客户机传送的公钥。
远程传输命令
scp
(secure copy
)是一个基于SSH协议在网络之间进行安全传输的命令,其格式为“scp [参数] 本地文件 远程帐户@远程IP地址:远程目录
”。
与前面讲解的cp命令不同,cp命令只能在本地硬盘中进行文件复制,而scp不仅能够通过网络传送数据,而且所有的数据都将进行加密处理。例如,如果想把一些文件通过网络从一台主机传递到其他主机,这两台主机又恰巧是Linux系统,那么这时使用scp命令就可以轻松完成文件的传递了。scp命令中可用的参数以及其作用如下表所示:
参数 | 作用 | 参数 | 作用 | 参数 | 作用 | 参数 | 作用 |
| 显示详细的传输进度 |
| 指定远程主机的sshd端口号 |
| 用于传输文件夹,递归传输 |
| 使用IPv6协议 |
在使用scp命令把文件从本地复制到远程主机时,首先需要以绝对路径的形式写清本地文件的存放位置。如果要传送整个文件夹内的所有数据,还需要额外添加参数-r
进行递归操作。然后写上要传送到的远程主机的IP地址,远程服务器便会要求进行身份验证了。当前用户名称为root,而密码则为远程服务器的密码。如果想使用指定用户的身份进行验证,可使用“用户名@主机地址
”的参数格式。最后需要在远程主机的IP地址后面添加冒号,并在后面写上要传送到远程主机的哪个文件夹中。只要参数正确并且成功验证了用户身份, 即可开始传送工作。
rsync
是一个远程数据同步工具。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cp和mv命令。
它名称里面的r指的是 remote
,rsync
其实就是"远程同步"(remote sync)的意思。与其他文件传输工具(如 scp)不同,rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改时间有变动)。
OPTION选项说明:
-
-v:显示 rsync 过程中详细信息。
-P
:显示文件传输的进度信息。-r --recursive
:表示递归,即包含子目录。-a --archive
:归档模式,可以替代-r
,除了可以递归同步以外,还可以同步元信息(比如修改时间、权限等)。由于rsync
默认使用文件大小和修改时间决定文件是否需要更新,所以-a
比-r
更有用。
注意,源路径如果不带尾随斜线表示的是整个目录包括目录本身,带上尾随斜线表示的是目录中的文件,不包括目录本身。