RHCE8 资料整理
第三篇 网络相关配置
第11章 网络配置
11.1 网络基础知识
可参考
https://blog.csdn.net/u010230019/article/details/130880059
https://blog.csdn.net/u010230019/article/details/130195777
- IP,由32bit的二进制组成,32bit分为4部分,每部分8位,根据网络类型不同,A,B,C,D,E网。4部分中包括网络位和主机位,根据网络类型区分,由于二进制不便记忆,所以又把这四部分转为十进制。
- 子网掩码,通过子网掩码进行划分网络位和主机位
- 网关,IP地址通过网关到达其他网络,一般网关都和IP地址都在同一个网络
- DNS,域名解析,把域名解析成IP地址称为正向解析,而把IP地址解析成域名则称为反向解析
11.2 查看网络信息
一般可以使用ifconfig
、nmcli或者
ip address`进行查询IP,格式
ifconfig [dev]
nmcli d[evice] show [dev]
ip a[ddress show] [dev] #可简写为ip a或ip a s [dev]
查看网关使用route
或ip route
(来自两个不同的命令簇,个人感觉route
比较常用)命令,格式
route [-n] [-4|-6]
ip [-4|-6] route
#默认都是-4
查看NDS,一般都记录在/etc/resolv.confi
[root@server yurq]# cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
通过nmcli connection
可以查看当前连接,以及具体属性
nmcli connection
nmcli connection show ens32|grep ipv4
nmcli
命令簇实在庞大,具体可以查看 https://blog.csdn.net/u010230019/article/details/126759779
11.3 图形化界面修改
在命令行输入,可以打开【网络连接】的图形化界面窗口
点击+
创建网络连接,选择类型为Ethernet
(以太网)
进入以太网连接界面,进行相关配置
相关配置内容,包括:
- Connection name,连接名称
- Devices,设备名称
- IPV4 Setting,IPV4手动设置包括IP,netmask,gateway或选择DHCP自动设置
完成后进行保存,即可生效
如果输入nm-connection-editor
未能启动图形界面,也可通过nmtui-edit
进行图形界面设置,虽和上述界面不同,但设置类似,不展开讨论了。
11.4 通过配置文件修改
一般配置文件都配置在/etc/sysconfig/network-scripts/
目录中,名称类似ifcfg-***
[root@server yurq]# ll /etc/sysconfig/network-scripts/
total 8
-rw-r--r--. 1 root root 115 Sep 8 17:38 ifcfg-ens32
-rw-r--r--. 1 root root 115 Sep 8 17:43 ifcfg-ens35
新系统或者该文件被误删,可以通过nmcli connection
根据已存在网卡自动生成该文件
该文件中各字段含义,参考 https://blog.csdn.net/u010230019/article/details/126759779
- 新创建的配置文件可通过
nmcli connection reload
生效 - 对于已存在的配置文件,修改后通过
nmcli connection reload
和nmcli device reapply ens160(网卡名)
11.5 命令行管理
nmcli connection #查看现有连接
nmcli connection delete 连接名 #删除连接名
nmcli connection add [options] #添加连接名
type: #类型
con-name: #连接名
ifname: #网卡名
ipv4.method manual/auto #manual 手动配置IP,auto 自动获取
ipv4.addresses #指定ip及子网掩码
ipv4.gateway #指定网关
ipv4.dns #指定dns
autoconnect yes #设置连接开机自动生效
#示例
nmcli connection add type ethernet con-name ens160 ifname ens160 ipv4.method manual \
ipv4.addresses 192.168.0.100/24 ipv4.gateway 192.168.0.1 ipv4.dns 114.114.114.114 autoconnect yes
nmcli connection show ens160 |grep ipv4 #查看连接属性
nmcli connection modify 连接名 属性1 属性2 ... #修改连接属性,属性同添加时的属性
#如果某个网卡有两个ip,可以写成 -ipv4.addresses 192.168.0.101/24
nmcli device reapply 连接名 #应用到设备
在RHCE8中,不能直接通过systemctl restart network
来重启网络,但可以通过安装network-scripts
使用
11.6 主机名的设置
查看主机名
[root@server yurq]# hostname
server.rhce.cc
[root@server yurq]# hostname -s #可以查看短主机名,即没有域名的主机名
server
设置主机名
hostnamectl set-hostname 主机名
或者通过修改/etc/hostname
进行修改,这两种方式都是永久生效
通过/etc/hosts
添加本地域名解析
IP 长主机名 短主机名
第12章 ssh
12.1 ssh基本用法
基本用法1:
以当前用户登录远程服务器
ssh 主机名/IP
当完成认证信息后,服务器的密钥将会记录在.ssh/know_hosts
中,后续登录将不需要认证
如果远程服务器没有当前用户名的用户信息,则认证无法通过,即无法登录
基本用法2:
以指定用户登录远程服务器
ssh -l 用户名 主机名/IP
ssh 用户名@主机名/IP
当远程登录用户登录密码发生变更时,会出现连接错误,此时需要删除.ssh/know_hosts
中对应条目
12.2 打开远程图形化界面
当远程连接到远程服务器时,出现如下信息
[root@server ~]# firefox
Error: no DISPLAY environment variable specified
这是为什么呢?我们来了解下Xserver和Xclient。
每个打开图形化界面的工具,例如,终端、Firefox浏览器、gedit记事本等,这些都叫Xclient
,而这些Xclient必须在Xserver
上运行。
Xserver是一个平台环境,安装系统时如果选择了图形化界面,那么Xserver默认就已安装上了。
想在本机打开远程服务器的Xclient,即图形化客户端,需要满足以下3个条件:
- 通过ssh登录到服务器时,需要加
-X
选项,因为ssh默认只允许字符传输,不允许Xclient传输,加上-X
之后就可以让Xclient传输 - 本地要运行Xserver
- 远程服务器要安装
xorg-x11-xauth
,默认已经安装了
12.3 ssh无密码登录
ssh登录远程服务器有两种认证方式
- 密码登录
- 密钥登录
- 首先生成密钥对
该命令会生成一个密钥对(公钥和私钥),ssh-keygen -f ~/.ssh/id_rsa -N ""
-f
指定路径,默认也是上面的路径,-N 后面的双引号中没有空格,是不对生成的私钥加密[root@server yurq]# ll /root/.ssh/ total 16 -rw------- 1 root root 2602 Oct 21 01:22 id_rsa #私钥 -rw-r--r-- 1 root root 573 Oct 21 01:22 id_rsa.pub #公钥
- 复制公钥到指定用户服务器的家目录下的
.ssh/authorized_keys
中,如果没有此文件,拷贝过程中会自动创建
此时,就无密码可以登录远程服务器了ssh-copy-id yurq@node-138
12.4 ssh安全设置
可以通过编辑/etc/ssh/sshd_config
实现仅一种认证生效
- 禁用密钥登录
设置[root@server yurq]# cat /etc/ssh/sshd_config|grep Pubkey #PubkeyAuthentication yes
PubkeyAuthentication no
,保存并重启sshd,即禁用密钥登录 - 禁用密码登录
设置[root@server yurq]# cat /etc/ssh/sshd_config|grep Pass #PasswordAuthentication yes
PasswordAuthentication no
,保存并重启sshd,即禁用密钥登录
12.5 ssh限制用户
对于服务器上的有效用户,基本上都可以使用ssh登录,但是有时为了安全性要禁用某些用户登录,例如root。
-
禁用root登录
编辑/etc/ssh/sshd_config
[root@server yurq]# cat /etc/ssh/sshd_config|grep Root PermitRootLogin no
PermitRootLogin yes
运行root登录 -
禁用指定普通用户登录
编辑/etc/ssh/sshd_config
,如对用户yurq
禁止登录DenyUsers yurq
类似的指令还包括
AllowUsers
,DenyGroups
,只允许指定用户或群组登录当指定用户拒绝和允许登录的条件同时存在时,拒绝优先级高于允许
[root@server yurq]# tail -2 /etc/ssh/sshd_config DenyUsers yurq AllowUsers yurq
用户
yurq
仍无法登录
12.6 ssh其他设置
当已指定用户登录本机,然后连接远程服务器时,如果没有显式指定用户登录,则一般以当前用户登录
- 指定默认用户登录
而这里可用过修改.ssh/config
来实现以默认指定用户登录,例如
[root@server yurq]# cat /root/.ssh/config
Host 192.168.17.138
User yurq
[root@server yurq]# chmod 644 /root/.ssh/config
[root@server yurq]# systemctl daemon-reload
[root@server yurq]# systemctl restart sshd
[root@server yurq]# ssh 192.168.17.138
...
yurq@192.168.17.138's password:
这里需要注意:当使用ssh登录时,即使登录同一台机器,使用域名和IP效果也是不同的。即以上设置仅对IP生效,如果使用域名仍以root登录,这与
.ssh/config
中设置的Host有关
- 取消输入
yes
首次登录远程服务器的时候,都会提示我们是否保存公钥指纹信息,并提示我们输入yes/no
,通过修改.ssh/config
可以实现默认为yes
作为选项,而不需要手动输入,如此修改
Host 192.168.17.138
User yurq
Host *
StrictHostKeyChecking no
*
为通配符,代表所有主机。
- 解决ssh慢的问题
有时当我们通过ssh登录远程服务器时,连接过程会比较慢。很多时候是因为系统自动取反向解析,即把IP解析成域名,才导致ssh速度慢
编辑/etc/ssh/sshd_config
,找到UseDNS进行如下修改
把#UseDNS no
注释取消,即UseDNS no
,重启服务即可
12.7 Windows 远程登录linux服务器
只要在windows上安装ssh客户端,就可以远程登录linux服务器。Windows中常见的ssh客户端包括PuTTY、Xshell
等
笔者目前使用的是MobaXterm
,也很不错。
12.8 远程拷贝
- linux服务器之间
一般我们使用scp
或rsync
,这两个软件都是用过ssh建立通道,默认都是通过22
号端口进行通信
scp用法
scp [-r] /path/file [user@]remoteIP:/path2/ #从本地向远程服务器指定目录拷贝文件或目录
#或
scp [-r] [user@]remoteIP:/path2/file /path/ #从远程服务器目录向本地目录进行拷贝文件或目录
-r 递归
rsync用法
rsync [-r] /path/file[/] [user@]remoteIP:/path2/
#或
rsync [-r] [user@]remoteIP:/path2/file /path/
-r 递归
这里需要注意目录带不带/
还是有区别的,请查看以下示例
#node-138
[root@node-138 test]# ll
total 0
-rw-r--r-- 1 root root 0 Oct 23 09:29 123
-rw-r--r-- 1 root root 0 Oct 23 09:29 124
-rw-r--r-- 1 root root 0 Oct 23 09:29 125
[root@node-138 test]# pwd
/opt/test
#node-140
[root@server opt]# rsync node-138:/opt/test /opt/ -r #不带/
[root@server opt]# ll /opt/test
total 0
-rw-r--r-- 1 root root 0 Oct 23 17:15 123
-rw-r--r-- 1 root root 0 Oct 23 17:15 124
-rw-r--r-- 1 root root 0 Oct 23 17:15 125
[root@server opt]# ll /opt/
drwxr-xr-x 2 root root 39 Oct 23 17:15 test
[root@server opt]# rm -rf test
[root@server opt]# ll /opt/
[root@server opt]# rsync node-138:/opt/test/ /opt/ -r #带/
[root@server opt]# ll /opt/
-rw-r--r-- 1 root root 0 Oct 23 17:16 123
-rw-r--r-- 1 root root 0 Oct 23 17:16 124
-rw-r--r-- 1 root root 0 Oct 23 17:16 125
说的直白点,带/
能把目录中的内容拷贝到指定位置,并不带该目录
- Windows和linux之间
如果需要通过ssh在命令行
进行拷贝,则需要在Windows服务器安装OpenSSH,例如
另外,如果Windows未安装该软件,前面提到的OpenSSH-Win64-v9.2.2.0.msi
Xshell
和mobaxterm
都默认都带SFTP
功能,同样可以进行拷贝工作,不过得手动操作