【Linux】网络服务

声明,以下内容均学习自《Linux就该这么学》一书

1、创建网络会话

Linux系统使用NetworkManager提供网络服务,它是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。

nmcli

nmcli是一款基于命令行的网络配置工具,它可以轻松地查看网络信息或网络状态。

bash 复制代码
nmcli connection show

创建网络会话,将公司的网络会话称为company,家庭的网络会话称为house。

创建公司网络会话company:

使用con-name参数指定公司所使用的网络会话名称为company,然后使用ifname参数指定本机的网卡名称(此处的eno16777736为示例),接着用autoconnect to参数设置该网络会话默认不被自动激活,最后用ip4及gw4参数手动指定网咯的IP地址

bash 复制代码
nmcli connection add con-name company ifname eno16777736 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1

创建家庭网络会话house:

因为我们想从外部DHCP服务器总获得IP地址,所以此处不需要手动指定。

bash 复制代码
nmcli connection add con-name house type ethernet ifname eno16777736

成功创建网络会话后,使用nmcli connection show命令查看所有的网络会话。

使用nmcli命令配置过的网络会话是永久生效的。

2、网卡绑定

常见的网卡绑定驱动有三种模式:

  1. mode0: 平衡负载模式,平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术。
  2. **mode1:**自动备援模式,平时只有一块网卡工作,在它故障后自动替换为另外的网卡。
  3. mode6: 平衡负载模式,平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持。

3、远程控制服务

SSH

SSH(secure shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。

sshd

要想使用SSH协议来远程管理Linux系统,则需要部署配置sshd服务程序。sshd是基于SSH协议开发的一款远程管理服务程序,它能够提供两种安全验证的方法:

基于口令的验证:用账户和密码来验证登录;

基于密钥的验证:需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较。

sshd服务的配置信息保存在**/etc/ssh/sshd_config**文件中。一般把保存着最主要配置信息的文件称为主配置文件,在配置文件中有需要以#开头的注释行,要想让这些配置参数生效,需要在修改参数后去掉前面的#。

|---------------------------------------|-----------------------|
| Port 22 | 默认的sshd服务端口 |
| ListenAddress 0.0.0.0 | 设定sshd服务器监听的IP地址 |
| Protocol 2 | SSH协议的版本号 |
| HostKey /etc/ssh/ssh_host_key | SSH协议版本为1时,DES私钥存放的位置 |
| HostKey /etc/ssh/ssh_host_rsa_key | SSH协议版本为2时,RSA私钥存放的位置 |
| HostKey /etc/ssh/ssh_host_dsa_key | SSH协议版本为2时,DSA私钥存放的位置 |
| PermitRootLogin yes | 设定是否允许root管理员直接登录 |
| StrictModes yes | 当远程用户的私钥改变时直接拒绝连接 |
| MaxAuthTries 6 | 最大密码尝试次数 |
| MaxSessions 10 | 最大终端数量 |
| PasswordAuthentication yes | 是否允许密码验证 |
| PermitEmptyPasswords no | 是否允许空密码登录(很不安全) |
[sshd服务配置文件中的参数及作用]

使用ssh进行远程连接:ssh 参数 主机IP地址

bash 复制代码
ssh 192.168.10.10

#要退出的话执行 exit 命令

如果禁止以root管理员身份远程登录到服务器,可以大大降低被黑客暴力破解密码的概率。

执行命令vim /etc/ssh/sshd_config打开sshd服务的主配置文件,把#PermitRootLogin yes这一行的 # 去掉,并把yes改成了no。如此配置后,就不再允许root管理员远程登录了。

如果想让新配置文件生效,需要手动重启相应的服务程序,并将此服务程序加入到开机启动项中,这样系统下一次一启动,sshd服务就会自动运行。

bash 复制代码
# 重启sshd服务程序,使其生效
systemctl restart sshd

# 将sshd服务程序加入到开机自启动
systemctl enable sshd

SCP

scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令,它不仅能够通过网络传送数据,而且所有的数据都将进行加密处理:scp 参数 本地文件 远程账户@远程IP地址:远程目录

|--------|----------------|
| -v | 显示详细的连接进度 |
| -p | 指定远程主机的sshd端口号 |
| -r | 用于传送文件夹 |
| -6 | 使用IPv6协议 |
[scp命令参数及作用]

在使用 scp 命今把文件以本地复制到远程主机时,首先需要以绝对路径的形式写清楚本地文件的存放位置 。如果要传送整个文件夹内的所有数据,还需要额外添加参数 -r 进行递操作。然后写上要传送到的远程主机的IP地址,远程服务器便会要求进行身份验证了。当前用户名称为 root,而密码则为远程服务器的密码。如果想使用指定用户的身份进行验证,用"用户名@主机地址"的参数格式。最后需要在远程主机的IP地址后面添加冒号,并在后面写上要传送到远程主机的哪个文件夹中。只要参数正确并且成功验证了用户身份,即可开始传送工作。

也可以使用scp命令把远程主机上的文件下载到本地主机:scp 参数 远程用户@远程IP地址:远程文件 本地目录

bash 复制代码
# 把文件复制到远程主机
scp /root/test.txt 192.168.10.20:/home

# 把远程主机上的文件下载到本地主机
scp 192.168.10.20:/etc/redhat-release /root

4、不间断会话服务

screen

screen是一款能够实现多窗口远程控制的开源服务程序,它是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序。用户可以使用screen服务同时在多个远程会话中自由切换。

  • 会话恢复:即便网络中断,也可让会话随时恢复,确保用户不会失去对远程会话的控制;
  • 多窗口:每个会话都是独立运行的,拥有各自独立的输入输出终端窗口,终端窗口内显示过的信息也将被分开隔离保存,以便下次使用时依然能看到之前的操作记录。
  • 会话共享:当多个用户同时登录到远程服务器时,便可以使用会话共享功能让用户间的输入输出信息共享。

|-----------|--------------|
| -S | 创建会话窗口 |
| -d | 将指定会话进行离线处理 |
| -r | 恢复指定会话 |
| -x | 一次性恢复所有的会话 |
| -ls | 显示当前已有的会话 |
| -wipe | 把目前无法使用的会话删除 |
[screen参数及作用]

退出会话:exit

相关推荐
企鹅的蚂蚁15 分钟前
LubanCat RK3588 实时 Linux 开发(九):从 U-Boot 到 initramfs 的串口启动故障分析
linux·rk3588·u-boot·串口调试·initramfs·linux启动
Wang's Blog22 分钟前
Java框架快速入门: Spring Security+OAuth2之搭建授权服务器(依赖与表结构)
java·服务器·spring
kkkkkkkkkk_Z43 分钟前
学嵌入式和Linux应用编程|学习日记:UDP协议与Wireshark抓包学习笔记
linux·笔记·学习
Allstar_431 小时前
全星研发项目管理APQP系统支持本地/私有云,开放API对接ERP/MES/PLM/OA,分级权限、版本追溯、ECN闭环,低代码配置,便于研发质量一体化扩展
运维
嵌入式小能手1 小时前
飞凌嵌入式ElfBoard-Shell编程应用实例-提取字符并设置rtc时间
linux
刃神太酷啦1 小时前
Redis 核心进阶:哨兵、集群、缓存问题与分布式锁详解----《Hello Redis!》(6)
linux·c语言·数据库·c++·redis·分布式·缓存
大卡片1 小时前
LCD相关知识
linux
colourmind1 小时前
K3S+Hami+Higress+Vip(nginx+keepalived)搭建云原生高可用的大模型部署平台
运维·nginx·云原生
闲云野鹤在人间2 小时前
Docker入门|第3章 镜像详解
linux·网络·docker·容器·centos·云计算·php
小卿噢2 小时前
malloc 成功 ≠ 你有内存:一次把 OOM 从头测到尾
linux·后端