一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)

文章目录

        • 一.网络服务的概述
          • 1.网络服务是什么
          • 2.网络服务有哪些(进行简单的梳理)
          • 3.网络服务学习建议
        • 二.网络服务基础
          • 1.CentOS6与7的区别
          • 2.常见网络端口以及/etc/service文件
          • 3.网关和路由,主机名(路由选择,网关,NAT解释,相关命令)
          • 4.网络常见命令
            • 1.ping:测试网络连接
            • 2.nmap:网络探测扫描命令(默认没有安装)
            • 3.arp(地址解析命令)
            • 4.nslookup域名解析测试命令
            • 5.netstat网络状态查看命令
            • 6.traceroute命令(默认使用ICMP)路由跟踪命令
        • 三.ssh环境配置
            • 1.ssh概念
            • 2.账号密码登陆模式
            • 3.基于密钥对的登陆
        • 四.tomcat环境搭建和原理详解
            • 1.什么是tomcat
            • 2.java web环境(Nginx+tomcat+jdk+mysql)
            • 3. jdk环境配置
            • 4.Tomcat环境安装配置
          • 五,vsftpd服务器的搭建

一.网络服务的概述

1.网络服务是什么

网络服务是在网络上运行的,面向软件的软件模块,这里我们一定要清楚原理。

2.网络服务有哪些(进行简单的梳理)

1.网络服务的标准:HTTP,ftp,telnet,smtp等等
2.举例:
LAMP搭建

  • linux+apache+mysql+php
  • apache是一个web服务器
  • PHP是解析器,在网站方面比较流行
  • MySQL数据库可以简单理解为一个Excel表格,但是它很强大。经常我们会给MySQL在搭一个MySQL,也就是MySQL主从。以后还需学习MySQL备份,备份的原理就是(不把鸡蛋放在同一个篮子里)
  • 当用户访问量很大的时候,我们把Apache和数据库独立出来,这样最大的好处是可以使可承受的访问量大大增加
  • 因为MySQL和Apache都很耗费资源,独立出来后访问量的负载大大提升(当然这和编程工程师代码质量有关),访问量很大的时候要加服务器,也就是集群
    RSYNC:网络备份
  • 但是如果需求很高,需要远程备份,放到云端,比如阿里云,但是一些大公司,,会自己搭建自己的私有云,因为放到别人的云端不够安全。
    elk:日志服务
    dns:域名解析服务
    等等…
3.网络服务学习建议

特点

  1. 原理性强
  2. 操作性强
  3. 熟练性强

方法

  1. 整理出自己的搭建手册,不然类似于此博客
  2. 总结自己对服务原理的理解,使用图片等等
  3. 多做实验,把错误解决并且记录

二.网络服务基础

1.CentOS6与7的区别
文件系统 防火墙 数据库 网卡名 网卡配置命令
ext4/xfs iptables/firewall+iptables 虽然有firewall但是主要还是使用iptables,因为这个已经很成熟 mysql/mariadb(可能是因为MySQL被收购了,Linux怕它以后不开源,所以使用maraidb) eth0/ens33 ifconfig+setup(图形化)/ip(ip address show)+nmtui (图形化)
2.常见网络端口以及/etc/service文件
ftp 20/21 文件共享服务(使用QQ等进行文件共享,不能指定权限,使用企业一般使用ftp)21是长期监听的端口,主要用途是等用户来进行连接它,不用于进行数据的传输,20端口当确定要传输数据时进行开放)
dns 53 域名解析服务
ssh 22 远程连接服务
www(http) 80 网页访问服务
www(https) 443 加密的网页访问,如银行相关的网页,有些网站有登录操作,让账号密码更安全
mysql 3306 数据库连接端口

补充:
当我们忘记某个端口号的时候可以查看/etc/service文件

一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第1张图片

  • 有些端口号可以改,比如ssh,因为他是我们管理员在用的。
  • 端口号不建议更改,如http默认是80,如果改成其他,那么别的用户再使用80则登不上,网站就只能给自己玩了。
3.网关和路由,主机名(路由选择,网关,NAT解释,相关命令)
  • 路由器:1.进行路由选择 2.用来跨网络通信
  • 网关:1.它具有路由器的功能。2.默认路由 3.NAT转换(因为私有IP不用花钱,可以重复,节约了公有IP,但它不能上网,这时候可以通过NAT进行转换)
  • NAT优缺点分析:优点是大量的私有地址可以通过一个公有地址上网,节约了IP地址,缺点是发的时候要装包,接受又拆包,转换来转换去,要包地址,所以速度很慢。
  • 路由选择分析:
    1.最短路径优先选择(适合小网络)
    2.复杂情况,不单要考虑路径,还要考虑带宽。对路由器要求高
    ——这两个是动态路由表——(由路由器决定)
    3.静态路由:管理员配置,优点是我们自己配好了,所以不消耗路由器的运算资源,缺点是比较麻烦。适合网络设备少的小网络。
  • 路由配置(Linux也可以配置成路由器,但是比较麻烦,很少配)
[root@localhost ~]# route del default gw 10.10.31.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.31.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
[root@localhost ~]# route add default gw 10.10.31.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.31.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         10.10.31.2      0.0.0.0         UG    0      0        0 eth0

永久配置

  • 1.网卡配置文件
  • 2.setup(6版本),nmtul(7版本)

主机名
主机名方面可以参考此文章

  • 临时生效:hostname + 名字
  • 永久生效:配置文件
4.网络常见命令
1.ping:测试网络连接
 -c 指定Ping多少次
 -i 指定ping多长时间
2.nmap:网络探测扫描命令(默认没有安装)
-sP:探测某网段有哪些主机正常工作
-sT:探测某主机上开启了哪些tcp端口
```
[root@localhost ~]# nmap -sP  10.10.31.0/24
```
输出信息:此网段7台主机正常工作

Starting Nmap 5.51 ( http://nmap.org ) at 2019-09-29 08:46 CST
Nmap scan report for 10.10.31.1
Host is up (0.00032s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 10.10.31.2
Host is up (0.00025s latency).
MAC Address: 00:50:56:FE:08:58 (VMware)
Nmap scan report for 10.10.31.10
Host is up.
Nmap scan report for 10.10.31.29
Host is up (0.00029s latency).
MAC Address: 00:0C:29:2F:76:21 (VMware)
Nmap scan report for 10.10.31.31
Host is up (0.00054s latency).
MAC Address: 00:0C:29:E8:EF:47 (VMware)
Nmap scan report for 10.10.31.32
Host is up (0.00031s latency).
MAC Address: 00:0C:29:2A:C4:D5 (VMware)
Nmap scan report for 10.10.31.200
Host is up (0.00073s latency).
MAC Address: 00:0C:29:7E:85:49 (VMware)
Nmap done: 256 IP addresses (7 hosts up) scanned in 9.48 seconds

查看10.10.31.200开放的tcp端口


[root@localhost ~]# nmap -sT 10.10.31.200

Starting Nmap 5.51 ( http://nmap.org ) at 2019-09-29 08:49 CST
Nmap scan report for 10.10.31.200
Host is up (0.0021s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind
MAC Address: 00:0C:29:7E:85:49 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
3.arp(地址解析命令)
	-a 查看所有
	-d 删除某条arp记录
	[root@localhost ~]# arp -a
? (10.10.31.1) at 00:50:56:c0:00:08 [ether] on eth0
? (10.10.31.2) at 00:50:56:fe:08:58 [ether] on eth0
? (10.10.31.200) at 00:0c:29:7e:85:49 [ether] on eth0```

可见有三个记录

[root@localhost ~]# ping 10.10.31.32
PING 10.10.31.32 (10.10.31.32) 56(84) bytes of data.
64 bytes from 10.10.31.32: icmp_seq=1 ttl=64 time=2.62 ms
64 bytes from 10.10.31.32: icmp_seq=2 ttl=64 time=0.296 ms
^C
--- 10.10.31.32 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1437ms
rtt min/avg/max/mdev = 0.296/1.460/2.625/1.165 ms
[root@localhost ~]# arp -a
? (10.10.31.1) at 00:50:56:c0:00:08 [ether] on eth0
? (10.10.31.32) at 00:0c:29:2a:c4:d5 [ether] on eth0
? (10.10.31.2) at 00:50:56:fe:08:58 [ether] on eth0
? (10.10.31.200) at 00:0c:29:7e:85:49 [ether] on eth0
[root@localhost ~]# 

ping一下再查看,发现多了一条记录

4.nslookup域名解析测试命令

dns配置,

  • /etc/sysconfig/network-scripts/ifcfg-eth0是局部配置,即只对一个网卡生效(DNS=ip),一台服务器至少两个网卡,所以我们可以使用下面的方法
  • /etc/resolv.conf是全局配置(nameserver ip),匹配在这里,全部网卡生效
  • /etc/hosts文件手工指定IP与域名的对应关系,优先级高于dns,比如我们连steam打游戏连不上(steam是外国游戏软件),就可以改这个
5.netstat网络状态查看命令

通过netstat看开了哪些端口,从而判断开了哪些服务。
-a 列出所有活动连接
-l 仅仅列出在监听状态的网络服务
-t 列出tcp协议监听端口
-u 列出udp协议监听的端口
-p 显示pid和进程号

6.traceroute命令(默认使用ICMP)路由跟踪命令

可以用于排查故障,但是很多设备禁止ping,所以这个命令现在作用不大。该命令使用NAT模式无法实现效果,请使用桥接模式(官方)
下图可见只能看到网关,外网信息看不到

一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第2张图片

三.ssh环境配置

1.ssh概念

ssh是Secure Shell工作在应用层的远程管理ssh 。是目前较为可靠的传输协议,它专为远程登录会话和其他网络服务提供安全性。利用 ssh 协议可以有效防止远程管理过程中的信息泄露问题。它默认使用22端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Telnet协议,具有更高的安全性。

2.账号密码登陆模式

账户密码登录认证过程中传输的是用户的账户名和密码,密码具有足够的复杂度才能具有更高的安全性。
一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第3张图片
登陆详解:

  1. 客户端把它的账号和密码打包发送给服务器。
  2. 服务器接收到时会拆包,将拿到的账号和密码与/etc/passwd和/etc/shadow里面的账号和密码进行比对,如果可以找到,或者说如果是配对的,就允许连接。

格式:
ssh 用户名@IP地址
ssh [email protected]

3.基于密钥对的登陆
  • 密钥对分为公钥和私钥
  • 因为加了密也可能被破解,被拿到密码,所以这个更安全。
  • 客户端和服务端双向密钥对,不需要密码
    一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第4张图片
    过程分析
  1. 首先需要在 Client 上创建一对密钥,并且需要把公钥放在需要访问的 Server 上
  2. 当 Client 需要连接 Server 时,Client 端的软件就会向 Server 端发出登录请求,请求使用密钥对中的的公钥进行安全验证
  3. Server 收到请求之后,会在该用户的家目录下查询公钥文件,拿 Client 发送过来的公钥和自己家目录下的公钥进行比较
  4. 如果两个公钥一致,Server 就用公钥加密“challenge(质疑)”并把它发送给 Client 软件。Client 收到加密内容之后,使用本地的私钥进行解密,再把解密结果发送给 Server 端,Server 端验证成功后,允许登录

一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第5张图片

四.tomcat环境搭建和原理详解

1.什么是tomcat

Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。Tomcat是apache服务器的扩展,但运行时它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。

2.java web环境(Nginx+tomcat+jdk+mysql)

一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第6张图片

  1. 所有服务部署在同一个主机上,也可
    分开部署
  2. Nginx默认开启的是 80端口,用来接
    收用户的 web请求
  3. Tomcat默认开启的是 8080端口,用
    来接收 Nginx转发过来的 web请求
3. jdk环境配置
wget --no-check-certificate  https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/server-jre-8u231-linux-x64.tar.gz

这里发现报了401错误,意思是页面需要登录,所以我这里先进去浏览器登录,下载到Windows,然后使用WinSCP传到Linux。输入IP,账号密码后登录成功。

一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第7张图片
2.找到下载的压缩包,传给Linux,传输成功
一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第8张图片
3.在Linux上面进行解压缩

tar -xf  server-jre-8u231-linux-x64.tar.gz
[root@suzijian ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  jdk1.8.0_231  server-jre-8u231-linux-x64.tar.gz

成功。
4.mv 解压缩目录 /usr/local/jdk1.8

[root@suzijian ~]# mv jdk1.8.0_231/ /usr/local/jdk1.8

4.安装gcc编译器

yum -y install gcc

5.设置环境变量,vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8
export JAVA_BIN=/usr/local/jdk1.8/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

6.运行

source /etc/profile

7.检测 java运行环境是否安装成功

[root@suzijian ~]# java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.7) (rhel-1.39.1.9.7.el6-x86_64)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)
4.Tomcat环境安装配置
  1. 下载链接
    一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第9张图片
  2. 上传,解压并且复制到指定目录下面
    一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第10张图片
tar -xf apache-tomcat-8.5.47.tar.gz

查看

[root@suzijian ~]# ls
anaconda-ks.cfg       apache-tomcat-8.5.47.tar.gz  install.log.syslog
apache-tomcat-8.5.47  install.log                  server-jre-8u231-linux-x64.tar.gz

复制到特定目录下面

[root@suzijian ~]# cp -a apache-tomcat-8.5.47 /usr/local/tomcat
  1. 设置环境变量,vim /etc/profile
export TOMCAT_HOME=/usr/local/tomcat
export PATH=$PATH:$TOMCAT_HOME/bin
  1. source一下,并且开启Tomcat服务
[root@suzijian ~]# chmod +x /usr/local/tomcat/bin/
[root@suzijian ~]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
  1. 检查Tomcat是否已经在成功运行
[root@suzijian ~]# netstat -antp 
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      5512/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1333/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1543/master         
tcp        0      0 0.0.0.0:46633               0.0.0.0:*                   LISTEN      1279/rpc.statd      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1220/rpcbind        
tcp        0      0 10.10.31.10:33310           111.14.222.121:80           TIME_WAIT   -                   
tcp        0      0 10.10.31.10:22              10.10.31.1:52225            ESTABLISHED 6111/sshd: root@not 
tcp        0    212 10.10.31.10:22              10.10.31.1:51831            ESTABLISHED 6065/1              
tcp        0      0 :::22                       :::*                        LISTEN      5512/sshd           
tcp        0      0 ::1:631                     :::*                        LISTEN      1333/cupsd          
tcp        0      0 ::1:25                      :::*                        LISTEN      1543/master         
tcp        0      0 :::35460                    :::*                        LISTEN      1279/rpc.statd      
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      6265/java           
tcp        0      0 :::8009                     :::*                        LISTEN      6265/java           
tcp        0      0 :::111                      :::*                        LISTEN      1220/rpcbind        
tcp        0      0 :::80                       :::*                        LISTEN      6437/httpd          
tcp        0      0 :::8080                     :::*                        LISTEN      6265/java 

6.可见已经成功
7.使用浏览器试试(发现不行)检查防火墙

[root@suzijian ~]# gentenforce
-bash: gentenforce: command not found
[root@suzijian ~]# getenforce
Enforcing
[root@suzijian ~]# setenforce 0
[root@suzijian ~]# getenforce
Permissive
[root@suzijian ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@suzijian ~]# iptables -F

8.发现防火墙的问题,重新尝试并成功
一文读懂ssh,tomcat,LANP,LNMP,ftp,dns等常见的环境配置(运维工程师必看)_第11张图片

五,vsftpd服务器的搭建

vsftpd虚拟用户模式
未完待续

你可能感兴趣的:(Linux整理,运维,Linux,后端)