3. linux 常见服务

linux 运维常见服务

ssh

安装

yum -y install ssh 
yum -y install openssh*
或源码安装均可

ssh 命令使用方法

# 远程服务器
ssh 用户@地址
# 远程服务器并执行命令
ssh 用户@地址 命令
# 复制文件到远程
scp source user@{远程地址}:{远程拷贝目录}
# 远程拷贝文件到本地
scp user@{远程地址}:{远程拷贝目录} source

ssh 相关文件说明文件

# ssh 配置文件
/etc/ssh/ssh_config 或 ~/.ssh/config
# ssh 免密相关文件
~/.ssh/id_ecdsa			用户的 ECDSA 私钥。
~/.ssh/id_ecdsa.pub		用户的 ECDSA 公钥。
~/.ssh/id_rsa			用于 SSH 协议版本2 的 RSA 私钥。  一般使用
~/.ssh/id_rsa.pub		用于SSH 协议版本2 的 RSA 公钥。	一般使用
~/.ssh/identity			用于 SSH 协议版本1 的 RSA 私钥。
~/.ssh/identity.pub		用于 SSH 协议版本1 的 RSA 公钥
~/.ssh/known_hosts		包含 SSH 服务器的公钥指纹。

生成ssh密钥

# 生成密钥
ssh-keygen
# 将刚生成的密钥中的公钥文件 (id_rsa.pub)  复制到需要登录的ssh服务器的 ~/.ssh/authorized_keys 文件中
ssh-copy-id {远程服务器}
#如果不想复制,也可以通过命令行完成

# 免密文件公钥私钥可直接复制
# 堡垒机 可直接复制 id_rsa 到其他机器让其他机器也具有免密登陆 

SSH 代理

  • 动态转发
    这种转发采用了SOCKS5协议。访问外部网站时,使用远程主机代理 去访问,网址
    (windows电脑上 ssh工具中代理原理为下)
ssh -D local-port root@remote-host -p remote-port -N
# 示例
ssh -D 2121 root@192.168.1.1 -p 22 -N
# 测试
curl -x socks5://localhost:2121 https://www.baidu.com
  • 本地转发 简易端口映射
    这种转发采用了sockes5协议。开启一个端口,当用户访问本机开启的的端口,等于访问远端的3306端口,且通过设定的服务器代理去访问原本设定的远程端口 (可跨多层网络)
    在这里插入图片描述
ssh -NL 0.0.0.0:local-port:target-host:target-port root@remote-host -p remote-port
# 示例
ssh -NL 0.0.0.0:2122:192.168.1.3:3306 root@192.168.1.2 -p 22
# 设本地为192.168.1.1  代理服务器 192.168.1.2  数据库服务器 192.168.1.3
# 执行命令后  我们访问 192.168.1.1:2122 端口后 流量通过 192.168.1.2 ssh代理 与192.168.1.3 3306端口 建立连接
mysql -h 192.168.1.1 -P 3306

nfs

  • 共享存储服务
    NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 sun 公司开发。通过使用 NFS协议,客户机可以像访问本地目录一样访问远程 NFS 服务器中的共享资源

安装

yum install -y nfs-utils rpcbind

启动& 配置

# 配置
vim /etc/exports
/disk1 192.168.1.0/24(rw,sync,no_root_squash)
# 配置案例 {本地目录} {可挂载的地址范围}(rw,sync,no_root_squash)
# rw 表示允许读写
# ro 表示为只读
# sync 表示同步写入到内存与硬盘中
# no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限
# root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户
# all_squash 所有访问用户都映射为匿名用户或用户组
# async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据
# subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
# no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
# 启动
systemctl start nfs      #开启nfs服务
systemctl start rpcbind   #开启rpcbind服务
systemctl enable nfs     #开机自启nfs服务
systemctl enable rpcbind   #开机自启rpcbind服务

使用

一般使用mount 网络挂载的形式将 nfs共享的空间挂载到本地目录上

# 查看可挂载目录
showmount -e 192.168.0.1
/disk1
# 对目录进行挂载
mount -t nfs 192.168.0.1:/disk1 /disk1
# 测试
echo test >  /disk1/test

注意

NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停掉了,那么在客户端就会出现执行 df -h
命令卡死的现象。
这个时候使用 umount 命令是无法直接卸载的,需要加上-lf 选项才能卸载。
当出现卡死现象时,要重新开一个终端,查看挂载点。然后使用 umount 命令卸载,其中-l 选项表示解除正在繁忙的文件系统,-f 选项表示强制。

ntp

ntp 时钟同步服务

  1. 本地服务器与时钟服务器同步时间, 如出现与上层时钟源时间不符情况,一般时钟同步采取慢同步方法缓慢追平时间,不会导致某些程序因系统时间突然变化导致崩溃
# 编辑配时钟配置文件
vi /etc/ntp.conf
server time1.tencentyun.com iburst
server time2.tencentyun.com iburst
server time3.tencentyun.com iburst
server time4.tencentyun.com iburst
server time5.tencentyun.com iburst
# time1.tencentyun.com 腾讯云时钟服务器地址

# 重启服务
systemctl restart ntpd
  1. 查看时钟同步
# 查看与时钟服务器 连接情况和时间差
ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*169.254.0.79    100.122.36.196   2 u  838 1024  377    0.697    0.109   0.751
+169.254.0.80    100.122.36.196   2 u  572 1024  377    0.701    0.143   0.824
+169.254.0.82    100.122.36.196   2 u  251 1024  377    0.734    2.022   1.015
-169.254.0.83    100.122.36.196   2 u  815 1024  377    1.220    1.853   1.360

返回结果说明

 * 代表目前正在作用当中的上层 ntp
 + 代表也有连上线,而且可作为下一个提供时间更新的候选者。
 - 代表远程服务器被认为是不合格的 NTP Server
 x 代表远程服务器不可用
refid:远程时间服务器的上一层服务器IP地址
st:stratum 阶层,表示与顶层参考时钟(原子时钟、GPS 或者其他无线电时钟)的距离,顶层为第 0 层。距离顶层越近,时间越准确。
t:类型,本地 ntp 服务与远程时间服务的通信方式 u:单播或者多播 b:广播 l:本地
when:最后一次时间同步到现在的时间,没有单位表示秒
poll:同步的频率
reach:和远程时间服务的连接成功次数,每成功一次就增加,以8进程显示
delay:从本地到远程时间服务器通信往返时间,单位毫秒
offset:本机与远程时间服务器的时间偏移量,该值越接近0越好,单位毫秒
jitter:本机与远程时间服务器的时间平均偏差,该值越小越好,单位毫秒

iptables

iptables 防火墙 linux 自带包过滤工具

四表五链

四表

  • raw表:主要用来决定是否对数据包进行状态跟踪,包含两个规则链,OUTPUT、PREROUTING
  • mangle表:修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
  • nat表:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,OUTPUT、- PREROUTING、POSTROUTING。
  • filter表:负责过滤数据包,确定是否放行该数据包(过滤)。包含三个链,即INPUT、FORWARD、OUTPUT
    五链
  • INPUT:处理入站数据包
  • OUTPUT:处理出站数据包
  • FORWARD:处理转发数据包
  • POSTROUTING链:在进行路由选择后处理数据包
  • PREROUTING链:在进行路由选择前处理数据包

在匹配 iptables 规则时 表匹配优先级顺序时 raw、mangle、nat、filter
规则链之间的顺序
入站:PREROUTING 到 INPUT
出站:OUTPUT 到 POSTROUTING
转发:PREROUTING 到 FORWARD 到 POSTROUTING

语法结构

iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]
# 示例 
# 添加一条规则 入向规则 阻止 源地址是192.168.88.0/24地址范围内的地址访问 本地 3306端口 (不指定表默认添加到filter表中)
iptables -A INPUT -p tcp -s 192.168.88.0/24 --dport 3306 -j DROP

# 添加一条转发规则 如果收到访问的目标地址是 7.7.7.7 目标端口是80的包 将包转发到192.168.0.7的80端口 
iptables -t nat -A PREROUTING -p tcp -d 7.7.7.7 --dport 80 -j DNAT --to-destination 192.168.0.7:80

控制类型说明

ACCEPT:允许数据包通过。
DROP:直接丢弃数据包,不给出任何回应信息。
REJECT:拒绝数据包通过,必要时会给数据发送端一个响应信息。
LOG:在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则。
SNAT :修改数据包的源地址。
DNAT :修改数据包的目的地址。
MASQUERADE :伪装成一个非固定公网IP地址。

基本操作 带* 常用

A    在指定链末尾加一条 * 
I    在指定链中插入一条新的,未指定序号默认作为第一条 *
P    指定默认规则
D    删除 *
R    修改、替换某一条规则
L    查看 *
n    所有字段以数字形式显示
V    查看时显示更详细信息,常跟L一起使用
–line-number    规则带编号 *
F    清除链中所有规则 *
X    清除自定义链的规则,不影响其他链
Z    清空链的计数器(匹配到的数据包的大小和总和)
S    查看链的所有规则或者某个链的规则/某个具体规则后面跟编号

匹配条件

source	源地址
description 目标地址
sport 源端口
dport 目标端口
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值