您的位置:首页 > 运维架构 > Tomcat

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

2020-01-15 06:43 721 查看

文章目录

  • 二.网络服务基础
  • 三.ssh环境配置
  • 四.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,因为他是我们管理员在用的。
    • 端口号不建议更改,如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环境配置

    1.ssh概念

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

    2.账号密码登陆模式

    账户密码登录认证过程中传输的是用户的账户名和密码,密码具有足够的复杂度才能具有更高的安全性。

    登陆详解:

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

    格式:
    ssh 用户名@IP地址
    ssh root@192.168.88.20

    3.基于密钥对的登陆
    • 密钥对分为公钥和私钥
    • 因为加了密也可能被破解,被拿到密码,所以这个更安全。
    • 客户端和服务端双向密钥对,不需要密码

      过程分析
    1. 首先需要在 Client 上创建一对密钥,并且需要把公钥放在需要访问的 Server 上
    2. 当 Client 需要连接 Server 时,Client 端的软件就会向 Server 端发出登录请求,请求使用密钥对中的的公钥进行安全验证
    3. Server 收到请求之后,会在该用户的家目录下查询公钥文件,拿 Client 发送过来的公钥和自己家目录下的公钥进行比较
    4. 如果两个公钥一致,Server 就用公钥加密“challenge(质疑)”并把它发送给 Client 软件。Client 收到加密内容之后,使用本地的私钥进行解密,再把解密结果发送给 Server 端,Server 端验证成功后,允许登录

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

    1.什么是tomcat

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

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

    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,账号密码后登录成功。


    2.找到下载的压缩包,传给Linux,传输成功

    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. 下载链接
    2. 上传,解压并且复制到指定目录下面
    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.发现防火墙的问题,重新尝试并成功

    五,vsftpd服务器的搭建

    vsftpd虚拟用户模式
    未完待续

    • 点赞 1
    • 收藏
    • 分享
    • 文章举报
    Lucky子健 发布了74 篇原创文章 · 获赞 37 · 访问量 9864 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: