linux下配置tomcat

合集下载

linux tomcat启动命令详解

linux tomcat启动命令详解

linux tomcat启动命令详解
Linux下tomcat命令其中有直接启动服务的命令,那么下面由小编为大家整理了linux tomcat启动命令的相关知识,希望对大家有帮助!
linux tomcat启动服务命令
Linux下tomcat服务的启动、关闭与错误跟踪,使用PuTTy 远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:
切换到tomcat主目录下的bin目录(cd usr/local/tomcat/bin)
linux tomcat命令启动服务方式一
直接启动 ./startup.sh
linux tomcat命令启动服务方式二
作为服务启动nohup ./startup.sh &
linux tomcat命令启动服务方式三
控制台动态输出方式启动./catalina.sh run 动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务
解释:
通过方式一、方式三启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也会立即停止,通过方式二可以作为linux 服务一直运行
通过方式一、方式二方式启动的tomcat,其日志会写到相应的日志文件中,而不能动态地查看tomcat控制台的输出信息与错误情况,通过方式三可以以控制台模式启动tomcat服务,
直接看到程序运行时后台的控制台输出信息,不必每次都要很麻烦的打开catalina.out日志文件进行查看,这样便于跟踪查阅后台输出信息。

tomcat控制台信息包括log4j和System.out.println()等输出的信息。

扩展:linux tomcat命令关闭服务的方式
./shutdown.sh。

Linux服务器安装JDK、MySQL和Tomcat,发布web项目解决404问题

Linux服务器安装JDK、MySQL和Tomcat,发布web项目解决404问题

Linux服务器安装JDK、MySQL和Tomcat,发布web项⽬解决404问题你是否也遇到这样的问题Linux⾥安装了JDK、Tomcat和MySQL,但是⽆法访问Tomcat下webapps中的项⽬,404。

⾸先你要确保环境没有问题,其次就是项⽬代码的问题。

在本机上能运⾏,现在怎会404呢?解决思路:连接数据库的四要素有问题,数据库不在同⼀个地⽅,有可能名字也变了。

还有就是useUnicode=true&characterEncoding=UTF-8,解决中⽂检索不到数据的问题。

仔细阅读前提说明:安装包全部在window环境下载好,必须以.tar.gz结尾,才能在Linux环境使⽤。

使⽤ Xftp 上传到虚拟机上/home/mytest/⽬录下。

JDK的下载、安装下载JDK解压缩 tar.gz⽂件:tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local/,其中 -C /usr/local 是指定解压后的⽂件存放位置Linux使⽤默认JDK环境,需要在/etc⽬录下的profile⽂件最后加上:export JAVA_HOME=/usr/local/jdk1.8.0_121export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jarprofile⽂件修改成,执⾏ source /etc/profile 让上⾯的配置⽣效执⾏java -version检查是否配置成功Tomcat下载安装tomcat官⽹:国内镜像:解压缩:tar -zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/启动:在tomcat安装⽬录/bin下执⾏./startup.sh关闭:./shutdown.sh⽇志⽂件:在tomcat安装⽬录/logs下⽣成⽇志⽂件,如果项⽬运⾏出现问题,在这⾥查看⽇志⽂件。

linux下Nginx+tomcat整合的安装与配置

linux下Nginx+tomcat整合的安装与配置

目的:搭建Nginx与tomcat整合,用Nginx代替apache步骤:一、安装Nginx1、上传nginx-0.7.63.tar.gz至/usr/local2、执行如下命令解压nginx:1.#cd /usr/local2.#tar zxvf nginx-0.7.63.tar.gz3、编译安装nginx1.#cd nginx-0.7.632.#./configure --with-http_stub_status_module --with-http_ssl_module #启动server状态页和https模块执行完后会提示一个错误,说缺少PCRE library 这个是HTTP Rewrite 模块,也即是url静态化的包可上传pcre-7.9.tar.gz,输入如下命令安装:1.#tar zxvf pcre-7.9.tar.gz2.#cd pcre-7.93.#./configure4.#make5.#make install安装pcre成功后,继续安装nginx如果是ubuntu 或Debian系统请先安装# apt-get install libpcre3 libpcre3-dev原文:I need to compile few application and I need Perl 5 Compatible Regular Expression Library (PCRE). Under CentOS I can use a package called pcre-devel, but Debian do not have the same. How do I install pcre-devel under Debian / Ubuntu Linux?Perl-compatible regular expression library. PCRE has its own native API, but a set of "wrapper"functions that are based on the POSIX API are also supplied in the library libpcreposix. Note that this just provides a POSIX calling interface to PCRE: the regular expressions themselves still follow Perl syntax and semantics. The header file for the POSIX-style functions is called pcreposix.h. To install PCRE, type thy following command:# apt-get update# apt-get install libpcre3 libpcre3-dev1.#cd nginx-0.7.632.#./configure3.#make4.#make install4、nginx安装成功后的安装目录为/usr/local/nginx在conf文件夹中新建proxy.conf,用于配置一些代理参数,内容如下:01.#!nginx (-)02.# proxy.conf03.proxy_redirect off;04.proxy_set_header Host $host;05.proxy_set_header X-Real-IP $remote_addr; #获取真实ip06.#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #获取代理者的真实ip07.client_max_body_size 10m;08.client_body_buffer_size 128k;09.proxy_connect_timeout 90;10.proxy_send_timeout 90;11.proxy_read_timeout 90;12.proxy_buffer_size 4k;13.proxy_buffers 4 32k;14.proxy_busy_buffers_size 64k;15.proxy_temp_file_write_size 64k;编辑安装目录下conf文件夹中的nginx.conf,输入如下内容001.#运行nginx所在的用户名和用户组002.#user www www;003.004.#启动进程数005.worker_processes 8;006.#全局错误日志及PID文件007.error_log /usr/local/nginx/logs/nginx_error.log crit;008.009.pid /usr/local/nginx/nginx.pid;010.011.#Specifies the value for maximum file descriptors that can be opened by this process. 012.013.worker_rlimit_nofile 65535;014.#工作模式及连接数上限015.events016.{017. use epoll;018. worker_connections 65535;019.}020.#设定http服务器,利用它的反向代理功能提供负载均衡支持021.http022.{023. #设定mime类型024. include mime.types;025. default_type application/octet-stream;026. include /usr/local/nginx/conf/proxy.conf;027. #charset gb2312;028. #设定请求缓冲029. server_names_hash_bucket_size 128;030. client_header_buffer_size 32k;031. large_client_header_buffers 4 32k;032. client_max_body_size 8m;033.034. sendfile on;035. tcp_nopush on;036.037. keepalive_timeout 60;038.039. tcp_nodelay on;040.041.# fastcgi_connect_timeout 300;042.# fastcgi_send_timeout 300;043.# fastcgi_read_timeout 300;044.# fastcgi_buffer_size 64k;045.# fastcgi_buffers 4 64k;046.# fastcgi_busy_buffers_size 128k;047.# fastcgi_temp_file_write_size 128k;048.049.# gzip on;050.# gzip_min_length 1k;051.# gzip_buffers 4 16k;052.# gzip_http_version 1.0;053.# gzip_comp_level 2;054.# gzip_types text/plain application/x-javascript text/css application/xml;055.# gzip_vary on;056.057. #limit_zone crawler $binary_remote_addr 10m;058. ###禁止通过ip访问站点059. server{060. server_name _;061. return 404;062. }063.064.065. server066. {067. listen 80;068. server_name localhost;069. index index.html index.htm index.jsp;#设定访问的默认首页地址070. root /home/www/web/ROOT;#设定网站的资源存放路径071.072. #limit_conn crawler 20;073.074. location ~ .*.jsp$ #所有jsp的页面均交由tomcat处理075. {076. index index.jsp;077. proxy_pass http://localhost:8080;#转向tomcat处理078. }079.080.081. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #设定访问静态文件直接读取不经过tomcat 082. {083. expires 30d;084. }085.086. location ~ .*\.(js|css)?$087. {088. expires 1h;089. }090.091.#定义访问日志的写入格式092. log_format access '$remote_addr - $remote_user [$time_local] "$request" '093. '$status $body_bytes_sent "$http_referer" '094. '"$http_user_agent" $http_x_forwarded_for';095. access_log /usr/local/nginx/logs/localhost.log access;#设定访问日志的存放路径096.097. }098.099.100.101.102.}5、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:1.#/usr/local/nginx/sbin/nginx -t如果屏幕显示以下两行信息,说明配置文件正确:1.the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok2.the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully如果提示unknown host,则可在服务器上执行:ping 如果也是同样提示unknown host则有两种可能:a、服务器没有设置DNS服务器地址,查看/etc/resolv.conf下是否设置,若无则加上b、防火墙拦截6、启动nginx的命令1.#/usr/local/nginx/sbin/nginx这时,输入以下命令查看Nginx主进程号:1.ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'7、停止nginx的命令1.#/usr/local/nginx/sbin/nginx -s stop8、在不停止Nginx服务的情况下平滑变更Nginx配置a、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:1./usr/local/nginx/sbin/nginx -t如果屏幕显示以下两行信息,说明配置文件正确:1.the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok2.the configuration file /usr/local/nginx/conf/nginx.conf was tested successfullyb、这时,输入以下命令查看Nginx主进程号:1.ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'屏幕显示的即为Nginx主进程号,例如:6302这时,执行以下命令即可使修改过的Nginx配置文件生效:1.kill -HUP 6302或者无需这么麻烦,找到Nginx的Pid文件:1.kill -HUP `cat /usr/local/nginx/nginx.pid`9、nginx启动好后启动tomcat,此时输入http://主机ip地址即可看到“My web!”三、其他stub_status语法: stub_status on默认值: None作用域: location创建一个location 区域启用stub_status"stub status" 模块返回的状态信息跟mathopd's 的状态信息很相似. 返回的状态信息如下:1.Active connections: 2912.server accepts handled requests3.16630948 16630948 310704654.Reading: 6 Writing: 179 Waiting: 106active connections -- 对后端发起的活动连接数server accepts handled requests -- nginx 总共处理了16630948 个连接, 成功创建16630948 次握手(证明中间没有失败的), 总共处理了31070465 个请求(平均每次握手处理了 1.8个数据请求)reading -- nginx 读取到客户端的Header信息数writing -- nginx 返回给客户端的Header信息数waiting -- 开启keep-alive 的情况下,这个值等于active - (reading + writing),意思就是Nginx 说已经处理完正在等候下一次请求指令的驻留连接。

Liunx下Tomcat调优指南

Liunx下Tomcat调优指南

Liunx下Tomcat调优指南1概述由于Tomcat的运行依赖于JVM,从虚拟机的角度我们把Tomcat的调整分为外部环境调优和自身调优两类来描述。

2调优方案1.1外部环境调优1)操作系统性能优化对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。

经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。

对于并发数很大的情况来说,带宽也是影响系统性能的一个重要指标,因此要实现系统的快速响应,必须拥有较高的带宽。

建议使用64位操作系统,如果是32位操作系统,建议使用企业版。

2)JAVA虚拟机性能优化Tomcat需要依赖Java虚拟机运行。

根据客户选用的主机的操作系统选择对应的JDK 的版本。

无论哪个厂商的JDK,都建议使用最新的版本。

虚拟机可通过命令行的方式改变虚拟机使用内存的大小。

如下表所示有两个参数用来设置虚拟机使用内存的大小。

Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。

Windows下,在文件% TOMCAT_HOME %/bin/catalina.bat,Unix下,在文件$TOMCAT_HOME/bin/catalina.sh的前面,增加如下设置:JAVA_OPTS=’-Xms【初始化内存大小】-Xmx【可以使用的最大内存】’需要把这个两个参数值调大。

例如:JAVA_OPTS='-Xms256m -Xmx512m',表示初始化内存为256MB,可以使用的最大内存为512MB。

另外需要考虑的是Java提供的垃圾回收机制。

虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。

收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。

如果堆的空间很大,那么完全垃圾收集(FULL GC)就会很慢,但是频度会降低。

如果在客户系统中把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。

Linux下shell脚本监控Tomcat的状态并实现自动启动

Linux下shell脚本监控Tomcat的状态并实现自动启动

Linux下shell脚本监控Tomcat的状态并实现⾃动启动最近公司需要在Linux下监控tomcat的服务,⼀旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运⾏,由于Linux下有Shell脚本可以实现此效果,下⾯是Linux下shell脚本监控Tomcat的状态并实现⾃动启动的步骤。

1.编写Shell脚本monitor.sh#!/bin/sh# func:⾃动监控tomcat脚本并且执⾏重启操作# author:EagleHao# date:2018-04-08# DEFINE# 获取tomcat进程ID(其中[grep -w 'tomcat']代码中的tomcat需要替换为你的tomcat⽂件夹名)TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v 'grep'|awk '{print $2}')# tomcat启动程序(这⾥注意tomcat实际安装的路径)StartTomcat=/opt/tomcat/bin/startup.shTomcatCache=/opt/tomcat/work#定义要监控的页⾯地址WebUrl=http://localhost:8080#⽇志输出GetPageInfo=/tmp/TomcatMonitorLog=/tmp/TomcatMonitor.logMonitor(){echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"if [ $TomcatID ];then #这⾥判断Tomcat进程是否存在echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页⾯..."# 检测是否启动成功(成功的话页⾯会返回状态"200")TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})if [ $TomcatServiceCode -eq 200 ];thenecho "[info]页⾯返回码为$TomcatServiceCode,tomcat启动成功,测试页⾯正常"elseecho "[error]tomcat页⾯出错,请注意...状态码为$TomcatServiceCode,错误⽇志已输出到$GetPageInfo"echo "[error]页⾯访问出错,开始重启tomcat"kill -9 $TomcatID # 杀掉原tomcat进程sleep 3rm -rf $TomcatCache # 清理tomcat缓存$StartTomcatfielseecho "[error]tomcat进程不存在!tomcat开始⾃动重启..."echo "[info]$StartTomcat,请稍候..."rm -rf $TomcatCache$StartTomcatfiecho "--------------------------"}Monitor>>$TomcatMonitorLog2.测试Shell脚本monitor.sh是否允许成功第⼀:执⾏脚本./monitor.sh如果报权限错误:chmod 777 monitor.sh第⼆:执⾏脚本./monitor.sh如果报/bin/bash^M:,坏的解释器,没有那个⽂件或⽬录:sed -i 's/\r$//' build.sh第三:执⾏脚本./monitor.sh如果有\z字符输出不了:更改xshell字体3.把脚本加到crontab定时任务中每分钟检查⼀次打开/etc/crontab⽂件添加定时任务。

linux下安装jdk与tomcat详解

linux下安装jdk与tomcat详解

chown -hR username tomcat 更改你的用户属性。
vi /etc/profile,增加以下行:
JAVA_HOME=/usr/local/jdk1.6.0
CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
export CATALINA_BASE=/usr/local/apache-tomcat-5.5.23
-bash: java: command not found
错误原因是环境变量未生效。
[root@b java]# source /etc/profile
[root@b java]# java -version
java version "1.5.0_12"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
cd /usr/bin
ln -s /usr/local/tomcat/bin/startup.sh
ln -s /usr/local/tomcat/bin/shutdown.sh
(这个是给系统添加一个命令,startup.sh,shutdown.sh,让你可以在任何时候都能起动和关闭tomcat。)
Java HotSpot(TM) Client VM (build jdk1.6.0_02, mixed mode)

Linux设置tomcat服务开机启动

Linux设置tomcat服务开机启动

Linux中设置tomcat服务开机启动1、添加用户执行命令:(顺序执行就可以)#添加用户useradd tomcat#添加组groupadd tomcat#把tomcat加入tomcat组usermod -G tomcat tomcat#设置用户tomcat对tomcat目录的权限:目录换成自己的tomcat目录chown -R tomcat /opt/apache-tomcat-5.5.332、建立tomcat启动文件进入目录 /etc/init.d在该目录下建立一个文件,直接使用vi命令就会建立,名字叫作“tomcatd”,名字可以随便命名。

vi tomcatd里面的内容如下,根据自己的情况修改下对应的tomcat目录和JDK的目录:内容开始:#chkconfig: 345 99 10#description: Auto-starts tomcat# /etc/init.d/tomcatd# Tomcat auto-start# Source function library.. /etc/init.d/functions# source networking configuration.. /etc/sysconfig/networkRETVAL=0# CATALINA_HOME="/opt/apache-tomcat-5.5.33"export JAVA_HOME=/opt/jdk1.6.0_22export CATALINA_HOME=/opt/apache-tomcat-5.5.33export CATALINA_BASE=/opt/apache-tomcat-5.5.33TOMCATUSER=tomcatstart(){if [ -f $CATALINA_HOME/bin/startup.sh ];thenecho $"Starting Tomcat"/bin/su $TOMCATUSER -c $CATALINA_HOME/bin/startup.shRETVAL=$?echo " OK"return $RETVALfi}stop(){if [ -f $CATALINA_HOME/bin/shutdown.sh ];thenecho $"Stopping Tomcat"/bin/su $TOMCATUSER -c $CATALINA_HOME/bin/shutdown.shRETVAL=$?sleep 1ps -fwwu tomcat | grep apache-tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9echo " OK"# [ $RETVAL -eq 0 ] && rm -f /var/lock/...return $RETVALfi}case "$1" instart)start;;stop)stop;;restart)echo $"Restaring Tomcat"$0 stopsleep 1$0 start;;*)echo $"Usage: $0 {start|stop|restart}"exit 1;;esacexit $RETVAL内容结束注:tomcatd中的内容需要根据自己情况修改的是下面部分,其中“tomcat”是一个用户名# CATALINA_HOME="/opt/apache-tomcat-5.5.33"export JAVA_HOME=/opt/jdk1.6.0_22export CATALINA_HOME=/opt/apache-tomcat-5.5.33export CATALINA_BASE=/opt/apache-tomcat-5.5.33TOMCATUSER=tomcattomcatd文件保存完之后就可以测试下是否能够启动tomcat服务,能够启动说明tomcatd这个文件脚本是正确的。

Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册

Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册

Linux平台Apache双机高可用集群+ Tomcat负载均衡集群配置手册在这个配置手册中,使用的操作系统和软件清单如下:操作系统:RedHat Enterprise Linux AS4 U4 64bit(安装时最好选择完全安装)软件:jdk-1_5_0_15-linux-amd64.binTomcat5.5.26httpd-2.0.63.tar.gzjakarta-tomcat-connectors-jk2-src-current.tar.gzipvsadm-1.24.tar.gzlibnet.tar.gzheartbeat-2.1.3-3.el4.centos.x86_64.rpmheartbeat-pils-2.1.3-3.el4.centos.x86_64.rpmheartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm因为是linux操作系统,所以在安装软件时请使用对应自己操作系统内核的软件,这是整个集群成功的第一步。

本配置手册中的软件都是对应RedHat Enterprise Linux AS4 U4 64bit 这个版本的软件。

jdk-1_5_0_15-linux-amd64.binJAVA环境包使用的是64位1.5版Tomcat版本为公司指定的5.5版本Apache为2.0.63版jakarta-tomcat-connectors-jk2-src-current.tar.gz是连接Apache和Tomcat的连接插件,具体可以去Tomcat网站上查找下载ipvsadm-1.24.tar.gzlibnet.tar.gz这两个是用于2台Apache服务器虚拟一个IP地址使用heartbeat-2.1.3-3.el4.centos.x86_64.rpmheartbeat-pils-2.1.3-3.el4.centos.x86_64.rpmheartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm这3个软件是用于2台Apache服务器之间的心跳检测结构图Apache1以以以以以Tomcat1Tomcat2Apache22台Tomcat服务器使用Tomcat软件可以自己做集群,2台Apache服务器需要其他的软件实现虚拟服务器功能,工作站访问虚拟IP地址访问2台Apache服务器,再通过Apache服务器访问Tomcat服务器第3 页总13 页1.安装JAVA环境包1)输入命令:./ jdk-1_5_0_15-linux-amd64.bin执行完毕后,会在当前目录下生成一个JDK-1.5.0_15的文件夹2)在 /usr/local/下新建一个名字为JAVA文件夹,将个JDK-1.5.0_15的文件夹拷入到该文件夹下3)设置环境变量。

linux 下apache-tomcat安装配置

linux 下apache-tomcat安装配置

安装配置apache-tomcat-6.0.132008年11月10日星期一2:10 P.M.1.下载Tomcat在下面的地址下载Tomcat的二进制版/download-60.cgi即下载文件apache-tomcat-6.0.13.tar.gz2. 安装首先解压缩gunzip tomcat-4.1.18.tar.gztar -zxvf tomcat-4.1.18.tar得到Tomcat的所有文件.然后把它拷贝到你要安装的位置,如/opt/tomcat/apache-tomcat-6.0.133.设置* 设置路经在/etc/profile文件中加入如下几行JA V A_HOME=/opt/java/jdk6.0CLASS_PATH=$JA V A_HOME/lib:JA V A_HOME/jre/lib:JA V A_HOME/lib/tools.jar:$ CLASS_PATHPATH=$JA V A_HOME/bin:$PATHTOMCAT_HOME=/opt/tomcat/apache-tomcat-6.0.13CATALINA_HOME=$TOMCAT_HOMEPATH=$TOMCAT_HOME/bin:$PATHexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC CLASS_PATH JA V A_HOME TOMCAT_HOME CATALINA_HOME在此我们假设Java JDK安装在/opt/java/jdk6.0目录下.* 设置PortTomcat缺省的Port number是8080.打开文件tomcat/conf/server.xml,找到如下的字段:然后把8080改成80即可.* 创建temp子目录在/opt/tomcat/目录下建立一个temp子目录mkdir temp4.设置tomcat的startup.sh 和shutdown.sh两个文件到opt/tomcat/apache-tomcat-6.0.13/conf下,把以下几句加入startup.sh和shutdown.sh两个文件JA V A_HOME=/opt/java/jdk6.0CLASS_PATH=$JA V A_HOME/lib:JA V A_HOME/jre/lib:JA V A_HOME/lib/tools.jar:$ CLASS_PATHPATH=$JA V A_HOME/bin:$PATHTOMCAT_HOME=/opt/tomcat/apache-tomcat-6.0.13CATALINA_HOME=$TOMCAT_HOMEPATH=$TOMCAT_HOME/bin:$PATHexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC CLASS_PATH JA V A_HOME TOMCAT_HOME CATALINA_HOME5.启动Tomcat安装完后,重新启动计算机,以使JA V A_HOME和TOMCAT_HOME的设置生效.然后到/opt/tomcat/apache-tomcat-6.0.13/bin下,运行命令:./startup.sh正常情况下可以见到如下的信息:Using CATALINA_BASE: /opt/tomcat/apache-tomcat-6.0.13Using CATALINA_HOME: /opt/tomcat/apache-tomcat-6.0.13Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-6.0.13/tempUsing JRE_HOME: /opt/java/jdk6.0linux下启动tomcat报错:The BASEDIR environment variable is not defined correctly2010-03-29 21:46:48| 分类:Linux基本操作| 标签:|字号大中小订阅The BASEDIR environment variable is not defined correctlyThis environment variable is needed to run this program解决办法:把$CATALINA_HOME/bin目录下所有.sh文件添加一个可执行权限。

linux_32位安装JDK1.6以及tomcat-5.5

linux_32位安装JDK1.6以及tomcat-5.5

安装1.6JDK1.下载jdk-6u20-linux-i586.bin成功后上传至服务器任意目录2. 在当前目录输入chmod 755 jdk-6u20-linux-i586-rpm.bin3.看到安装程序在询问您是否尊守许可协议页面,回车,空格都可以,看完协议出现一行字:Do you aggree to the above license terms? [yes or no]安装程序在问您是否愿意遵守刚才看过的许可协议。

当然要同意了,输入"y" 或"yes" 回车。

4.在命令行输入:vi /etc/profile在里面添加如下内容export JA V A_HOME=/usr/local/java/jdk1.6.0_20export JA V A_BIN=/usr/local/java/jdk1.6.0_20/binexport PATH=$PATH:$JA V A_HOME/binexport CLASSPA TH=.:$JA V A_HOME/lib/dt.jar:$JA V A_HOME/lib/tools.jarexport JA V A_HOME JA V A_BIN PATH CLASSPA TH5.进入/usr/bin/目录cd /usr/binln -s -f /usr/java/jdk1.6.0_20/jre/bin/javaln -s -f /usr/java/jdk1.6.0_20/bin/javac6. 在命令行输入java -version屏幕输出:java version "jdk1.6.0_20"Java(TM) 2 Runtime Environment, Standard Edition (build jdk1.6.0_20)Java HotSpot(TM) Client VM (build jdk1.6.0_20, mixed mode)7. 安装JDK1.6完毕.安装tomcat1. 下载apache-tomcat-5.5.30.tar.gz2. 使用FileZilla Client将此文件上传至/tools目录3. 解压gz文件# tar -zxvf /tools/apache-tomcat-5.5.30.tar.gz5. 将Apache移动到跟目录下# mv /tools/apache-tomcat-5.5.30 /6. 进入apache/bin目录下# cd /apache-tomcat-5.5.30/bin7. 开启与关闭服务# ./startup.sh //启动tomcat显示Using CATALINA_BASE: /usr/local/tomcatUsing CA TALINA_HOME: /usr/local/tomcatUsing CA TALINA_TEMDIR: /usr/local/tomcat/tempUsing JA V A_HOME: /usr/java/jdk1.6.0_20到此tomcat已经安装完成,现在使用浏览器访问http://localhost:8080,出现tomcat默认页面,说明已经安装成功。

linux tomcat jvm参数

linux tomcat jvm参数

在Linux系统下,可以通过修改Tomcat的启动脚本设置JVM参数。

具体步骤如下:
1. 打开Tomcat的启动脚本(通常是catalina.sh或catalina.bat),通常位于Tomcat安装目录下的bin文件夹中。

2. 在脚本中找到JAVA_OPTS或CATALINA_OPTS这一行,如果这一行不存在,可以在脚本开头添加一行。

3. 在该行中设置JVM参数,例如:
* -Xms512m:设置Java堆的初始大小为512MB。

* -Xmx1024m:设置Java堆的最大大小为1024MB。

* -Xss2m:设置每个线程的堆栈大小为2MB。

* -XX:MaxPermSize=256m:设置永久代的最大大小为256MB(仅适用于Java 7及更早版本)。

4. 保存并关闭启动脚本。

5. 重新启动Tomcat服务器,使设置生效。

请注意,JVM参数的具体设置取决于应用程序的需求和可用资源。

以上参数只是一个示例,您可以根据实际情况进行调整。

另外,请确保您具有足够的系统资源来支持所设置的JVM参数,以避免系统资源不足的问题。

tomcat在linux下的相对路径

tomcat在linux下的相对路径

tomcat在linux下的相对路径Tomcat在Linux下的相对路径指的是Tomcat应用服务器在Linux操作系统上的安装路径。

在Linux系统中,文件系统的根目录是"/",而相对路径是指从当前位置开始向上或向下查找文件或目录的路径。

1. 定位Tomcat安装目录首先,需要确认Tomcat是否已经成功安装在Linux系统中。

一般情况下,Tomcat 应用服务器的安装目录为/usr/local/tomcat,但也可能因个人或组织的喜好而有所不同。

可通过运行以下命令来确认Tomcat的安装目录:ls /usr/local/如果显示了一个名为"tomcat"的目录,那么Tomcat就被安装在该目录下。

2. 确认当前位置在确定了Tomcat的安装目录后,可以使用以下命令来查看当前所在位置:pwd该命令会显示当前目录的绝对路径。

3. 查找Tomcat的相对路径通过比较当前位置与Tomcat的安装目录,就可以确定Tomcat在Linux下的相对路径。

相对路径是基于当前位置的路径,指向Tomcat的安装目录。

例如,如果当前位置是/usr/local/tomcat/webapps/ROOT,而Tomcat的安装目录是/usr/local/tomcat,那么Tomcat相对路径就是webapps/ROOT。

4. 使用Tomcat的相对路径在实际应用中,可以使用Tomcat的相对路径来访问和管理Tomcat的文件和目录。

例如,要访问Tomcat的日志文件,可以使用以下命令:cd ../../logs该命令会将当前位置移动到Tomcat安装目录的上一级目录,并进一步移动到logs目录。

同样地,为了部署一个Web应用程序,可以将WAR文件复制到Tomcat的webapps目录下:cp myapp.war ../../webapps/该命令会将当前目录下的myapp.war文件复制到Tomcat安装目录的webapps目录下。

Linux下apache2.2.15+tomcat6.0.26+jdk-6u20安装配置文档

Linux下apache2.2.15+tomcat6.0.26+jdk-6u20安装配置文档

apache2.2.15+tomcat6.0.26+jdk-6u20+tomcat-connectors-1.2.30+ apr-1.4.2.tar.gz+ apr-util-1.3.9.tar.gz[root@hostserver Tools]# lltotal 125304-rw-r--r-- 1 root root 6123410 Apr 19 06:16 apache-tomcat-6.0.26.tar.gz-rw-r--r-- 1 root root 6593633 Apr 19 06:16 httpd-2.2.15.tar.gz-rw-r--r-- 1 root root 9280000 Apr 19 06:16 apr-1.4.2.tar.gz-rw-r--r-- 1 root root 7730000 Apr 19 06:16 apr-util-1.3.9.tar.gz-rw-r--r-- 1 root root 84796967 Apr 19 06:18 jdk-6u20-linux-i586.bin-rw-r--r-- 1 root root 29050568 Jan 23 12:13 mysql-5.1.30.tar.tar-rw-r--r-- 1 root root 1566749 Apr 19 06:16 tomcat-connectors-1.2.30-src.tar.gz[root@hostserver Tools]# cp jdk-6u20-linux-i586.bin /usr/local/[root@hostserver Tools]# cp httpd-2.2.15.tar.gz /usr/local/[root@hostserver Tools]# cp apache-tomcat-6.0.26.tar.gz /usr/local/[root@hostserver Tools]# cp tomcat-connectors-1.2.30-src.tar.gz /usr/local/[root@hostserver Tools]# cp mysql-5.1.30.tar.tar /usr/local/[root@hostserver Tools]# cd /usr/local/[root@hostserver Tools]# cd /usr/local/所有包都在此目录下[root@hostserver local]# ll-rw-r--r-- 1 root root 84796967 Apr 19 07:33 jdk-6u20-linux-i586.bin-rw-r--r-- 1 root root 6593633 Apr 19 07:33 httpd-2.2.15.tar.gz-rw-r--r-- 1 root root 6123410 Apr 19 07:33 apache-tomcat-6.0.26.tar.gz-rw-r--r-- 1 root root 1566749 Apr 19 07:33 tomcat-connectors-1.2.30-src.tar.gz-rw-r--r-- 1 root root 29050568 Apr 19 07:33 mysql-5.1.30.tar.tar第一步:安装JDK[root@hostserver local]# chmod 755 jdk-6u20-linux-i586.bin[root@hostserver local]# ./jdk-6u20-linux-i586.bin……Please enter "yes" or "no".Do you agree to the above license terms? [yes or no]输入Yes,并按[enter]键.Press Enter to continue.....再次按[enter]键,则JDK安装完成。

Linux搭建Apache+Tomcat环境(详细文档)

Linux搭建Apache+Tomcat环境(详细文档)

Linux搭建Apache+Tomcat环境使用手册(仅供内部使用)V1.0目录目录 (1)1 引言 (3)1.1 编写目的 (3)1.2 项目背景 (3)1.3 定义 (3)1.3.1 集群(Cluster) (3)1.3.2 负载均衡(Load Balance) (3)1.4 参考资料 (3)1.5 变更历史 (3)2 技术介绍 (3)2.1 技术目标 (3)2.2 网络架构 (3)2.3 软件架构 (4)3 客户端软件准备 (4)3.1 Tomcat: (4)3.2 Apache: (4)3.3 Jk: (4)4 测试环境规划 (4)4.1 Apache集群程序 (4)4.2 Tomcat1程序(内容+后台统一部署) (4)4.3 Tomcat2程序(内容+后台统一部署) (5)5 详细步骤 (5)5.1 安装JDK (5)5.1.1 jdk1.5.0_19 (5)5.1.2 配置环境变量 (6)5.1.3 测试Java是否安装成功 (6)5.2 安装Tomcat (6)5.2.1 Tomcat环境准备 (6)5.2.2 配置环境变量 (7)5.2.3 测试Tomcat是否安装成功 (7)5.2.4 部署工程项目 (7)5.3 安装Apache (7)5.3.1 apache环境准备 (8)5.3.2 httpd-2.2.12.tar.gz (8)5.3.3 测试Apache是否安装成功 (8)5.4 集群和负载均衡的配置 (9)5.5 修改httpd.conf (9)5.6 安装mod_jk.so (9)5.7 建立mod_jk.conf文件 (10)5.8 建立workers.properties文件 (10)5.9 建立uriworkermap.properties (11)5.10 综合测试Apache + Tomcat (11)6 总结 (12)6.1 绑定的域名 (12)6.2 编译出so文件 (12)6.3 设置Apache和Tomcat随系统启动而自动启动: (12)6.3.1 Red Hat的配置 (12)6.3.2 Ubuntu 的配置 (12)6.4 不足之处,见谅! (12)7 附录 (13)7.1 Tomcat集群与负载均衡区别以及特性 (13)7.2 ubuntu 配置开机启动vnc (15)1 引言1.1 编写目的本说明手册为了阐述Linux搭建Apache+Tomcat环境,并详细介绍Tomcat的集群和负载均衡配置而编写。

tomcat

tomcat
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访 问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当 在一台机器上配置好Apache服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实 际上Tomcat是Apache服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat时,它实际上作为一个与 Apache独立的进程单独运行的。
举个例子,如果我们想部署一个名叫MyWebApp.
(Virtual Hosts)
关于server.xml中“Host”这个元素,只有在设置虚拟主机的才需要修改。虚拟主机是一种在一个web服务 器上服务多个域名的机制,对每个域名而言,都好象独享了整个主机。实际上,大多数的小型商务网站都是采用 虚拟主机实现的,这主要是因为虚拟主机能直接连接到Internet并提供相应的带宽,以保障合理的访问响应速度, 另外虚拟主机还能提供一个稳定的固定IP。
tomcat
Web应用服务器
01 名称由来
0 配置方法 06 安全启动
Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由 Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是 能在Tomcat中得到体现,Tomcat 5支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定, 而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web应用服务器。
名称由来
Tomcat最初是由Sun的软件架构师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡 献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素 描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为 Tomcat(英语公猫或其他雄性猫科动物)。而O'Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)的封 面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计为一只公猫。

如何在Linux上安装和配置Tomcat服务器

如何在Linux上安装和配置Tomcat服务器

如何在Linux上安装和配置Tomcat服务器Tomcat是一个开源的Java Servlet容器,它提供了一个实现Java服务并运行Java Web应用程序的环境。

在Linux操作系统上,安装和配置Tomcat服务器是常见的任务之一。

本文将介绍如何在Linux上安装和配置Tomcat服务器的步骤。

一、安装JDK在安装Tomcat之前,需要先安装Java Development Kit(JDK)。

可以从Oracle官方网站下载最新版本的JDK,并根据Linux的系统架构选择正确的安装包。

下载完成后,执行安装过程并设置JAVA_HOME环境变量。

二、下载Tomcat访问Tomcat官方网站,选择最新版本的Tomcat并下载。

下载完成后,将Tomcat压缩包解压到合适的目录中。

例如,可以将Tomcat解压到`/opt`目录下。

三、配置环境变量打开终端,使用编辑器(如vi或nano)打开`~/.bashrc`文件,并添加以下内容:```export CATALINA_HOME=/opt/apache-tomcat-x.x.xexport PATH=$PATH:$CATALINA_HOME/bin```保存并退出文件。

然后使用以下命令使环境变量生效:```source ~/.bashrc```四、配置Tomcat用户为了增加安全性,可以创建一个专门用于运行Tomcat的用户。

在终端中执行以下命令来创建一个新用户:```sudo adduser tomcat```根据提示设置新用户的密码。

五、修改Tomcat目录权限为了保护Tomcat目录的安全性,需要将所有者设置为刚刚创建的`tomcat`用户。

使用以下命令修改目录权限:```sudo chown -R tomcat:tomcat /opt/apache-tomcat-x.x.x```六、启动Tomcat现在,可以启动Tomcat服务器了。

在终端中执行以下命令:```cd /opt/apache-tomcat-x.x.x/bin./startup.sh```七、配置防火墙如果启用了防火墙,需要打开Tomcat所使用的端口。

linux环境下tomcat安装和配置

linux环境下tomcat安装和配置

linux环境下tomcat安装和配置一、linux环境:64位linux操作系统使用阿里云服务器,配置信息如图所示:二、Tomcat安装和配置Tomcat安装运行需要安装jdk环境,所以Tomcat安装和配置包括JDK安装配置和Tomcat 安装配置1、JDK安装配置1.1、下载JDK官网下载需要的JDK版本,本例需要下载linux64位版本jdkLinux x64 172.84 MB jdk-8u60-linux-x64.tar.gz注:如果是windows版本则需要下载windows版本JDK,区分32位和64位下载JDK网址:/technetwork/java/javase/downloads/index-jsp-138363.ht ml1.2、安装配置JDKStep1、复制文件jdk-8u60-linux-x64.tar.gz到/usr/java目录下,没有java目录可以新建java目录,如图所示:(至于如何复制到linux目录可以参考阿里云教程)Step2、解压jdk-8u60-linux-x64.tar.gz文件,linux控制台输入:“tar -zxvf jdk-8u60-linux-x64.tar.gz”,如图所示:解压成功后发现多出jdk1.8.0_60文件,如图所示:Step3、JDK环境配置linux控制台输入:“vi /etc/profile”,如图所示:在profile文件末尾添加如下内容,如图所示:export JA V A_HOME=/usr/java/jdk1.8.0_60export PATH=$JA V A_HOME/bin:$PA THexport CLASSPA TH=.:$JA V A_HOME/lib/dt.jar:$JA V A_HOME/lib/tools.jar注:如何使用vi可以参考:/article/59703552e2e1e38fc107405a.htmlStep4、验证JDK环境配置生效linux控制台输入:“javac”,如图所示:linux控制台输入:“java -version”,如图所示:注:最好重启下机器,使得profile配置生效(控制台输入exit命令即可)2、安装配置Tomcat2.1、tomcat下载官网下载需要的tomcat版本,本例需要下载linux64位版本tomcat,这里选择tomcat7tar.gz (pgp, md5, sha1)注:如果是windows版本则需要下载windows版本Tomcat,区分32位和64位下载tomcat网址:/2.1、安装配置tomcatStep1、复制文件apache-tomcat-7.0.64.tar.gz到/usr/local/tomcat目录下,没有tomcat目录可以新建tomcat目录,如图所示:(至于如何复制到linux目录可以参考阿里云教程)注:此图已经解压过,所有存在apache-tomcat-7.0.64目录Step2、解压apache-tomcat-7.0.64.tar.gz文件,linux控制台输入:“tar -zxvf jdk-8u60-linux-x64.tar.gz”,如图所示:解压成功后发现多出apache-tomcat-7.0.64文件,如图所示:Step3、tomcat环境配置linux控制台输入:“vi /etc/profile”,如图所示:在profile文件末尾添加如下内容,如图所示:CATALINA_BASE=/usr/local/tomcat/apache-tomcat-7.0.64CATALINA_HOME=/usr/local/tomcat/apache-tomcat-7.0.64export CATALINA_BASE CA TALINA_HOMEStep4、启动tomcat进入tomcat的bin目录,linux控制台输入:“/usr/local/tomcat/apache-tomcat-7.0.64/bin”启动toncat,linux控制台输入:“./startup.sh”,如图所示:启动结果,表示tomcat启动成功,如图所示:注:最好重启下机器,使得配置profile生效(控制台输入exit命令即可)Step5、浏览器访问tomcat服务:阿里云公网IP:120.25.209.20 (查看阿里云配置即可)Tomcat端口号为:8080 如下图所示:进入tomcat的conf目录,linux控制台输入:“/usr/local/tomcat/apache-tomcat-7.0.64/conf”打开server.xml目录,在此文件可以修改端口号,linux控制台输入:“vim server.xml”,如图所示:在浏览器输入:ip+端口号,本例中输入:http://120.25.209.20:8080/,如图所示:三、jdk+tomcat配置文件jdk+tomcat配置文件,如图所示:jdk+tomcat配置文件下载地址(适用于linux64位):/s/1jGtUbLO。

Tomcat 6在Linux上的安装配置

Tomcat 6在Linux上的安装配置

touch /var/lock/subsys/local
export JAVA_HOME=/usr/java/jdk1.6.0_16
/usr/local/apache-tomcat-6.0.26/bin/startup.sh
#这个是我的目录的
这样在系统重启后就可以自动启动Tomcat.
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.16/temp
Using JRE_HOME: /usr/local/jdk1.6.0_20
五、使用“ps -ef |grep tomcat”可以显示tomcat已启动
【或者在bin下执行./startup.sh】
我的电脑上会出现如下内容:
Using CATALINA_BASE: /usr/local/apache-tomcat-6.0.16
Using CATALINA_HOME: /usr/local/apache-tomcat-6.0.16
export TOMCAT_HOME="/usr/local/apach-tomcat-6.0.16"
保存退出
# source /etc/profile //让当前配置立即生效
四、启动tomcat服务器
$ /usr/local/apach-tomcat-6.0.16/bin/startup.sh
点击左侧的 download的一个版本,我选择的是 tomcat6.x,你可以根据自己的实际情况进行选择安装,点击超连接,选择 Binary Distributions 下的tar.gz (pgp, md5) 压缩包,进行下载
二、下载到本地后,进行解压

linux的tomcat拆分日志

linux的tomcat拆分日志

在Linux上,如果你想要拆分Tomcat的日志文件,你可以按照以下步骤进行操作:
1. 找到Tomcat的日志目录:默认情况下,Tomcat的日志目录位于`/var/log/tomcat`或`/usr/local/tomcat/logs`。

你可以使用以下命令来查找日志目录:
```bash
find / -name tomcat.log
```
2. 停止Tomcat服务:在拆分日志之前,确保Tomcat服务已经停止。

你可以使用以下命令停止Tomcat服务:
```bash
sudo service tomcat stop
```
3. 拆分日志文件:使用`split`命令将日志文件拆分为较小的文件。

例如,假设你希望将日志文件拆分为每5MB一个文件,可以使用以下命令:
```bash
split -b 5M /path/to/tomcat.log /path/to/split-logs/
```
上述命令将`/path/to/tomcat.log`拆分为每5MB一个的文件,并将它们保存在`/path/to/split-logs/`目录下。

4. 启动Tomcat服务:拆分完日志文件后,重新启动Tomcat服务以继续记录新的日志。

使用以下命令启动Tomcat服务:
```bash
sudo service tomcat start
```
现在,你已经成功地拆分了Tomcat的日志文件。

请记住,这只是一个基本的示例,你可以根据自己的需求调整拆分的大小和目录。

tomcat在linux中修改日志路径

tomcat在linux中修改日志路径

tomcat在linux中修改⽇志路径1. 修改catalina.sh进⼊tomcat安装⽬录/bin,找到catalina.sh,并下载到本地,同时进⾏备份。

对本地的catalina.sh进⾏修改,将下图红框所⽰地⽅改为CATALINA_OUT=/u01/app/dt/dt_logs 这⾥是以将⽇志⽬录修改为/u01/app/dt/dt_logs为例,以下都以此⽬录为例。

修改后如下将修改后的catalina.sh⽂件上传到tomcat安装⽬录/bin,覆盖原来的⽂件。

2. 修改logging.properties进⼊tomcat安装⽬录/conf/,找到logging.properties,并下载到本地,同时进⾏备份。

对本地的logging.properties进⾏修改,将下图红框所⽰地⽅改为/u01/app/dt/dt_logs修改后如下将修改后的logging.properties⽂件上传到tomcat安装⽬录/conf/,覆盖原来的⽂件。

3. 修改server.xml进⼊tomcat安装⽬录/conf/,找到server.xml,并下载到本地,同时进⾏备份。

对本地的server.xml进⾏修改,将下图红框所⽰地⽅改为directory="/u01/app/dt/dt_logs"修改后如下将修改后的server.xml⽂件上传到tomcat安装⽬录/conf/,覆盖原来的⽂件。

4. 修改log4j.properties如果在web应⽤中有对⽇志进⾏相关配置请同步进⾏修改,例如通常会在log4j.properties进⾏相关配置。

以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TCPDUMP简介在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。

sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的。

对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过sniffer 工具来分析原因,找出造成网络阻塞的来源。

对于网络程序员来说,通过sniffer工具来调试程序。

用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览无余!Sniffer 工具实际上就是一个网络上的抓包工具,同时还可以对抓到的包进行分析。

由于在共享式的网络中,信息包是会广播到网络中所有主机的网络接口,只不过在没有使用sniffer工具之前,主机的网络设备会判断该信息包是否应该接收,这样它就会抛弃不应该接收的信息包,sniffer工具却使主机的网络设备接收所有到达的信息包,这样就达到了网络监听的效果。

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是必不可少的。

所以,今天我们就来看看Linux中强大的网络数据采集分析工具——TcpDump。

用简单的话来定义tcpdump,就是:dump the traffice on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。

作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东东之一。

顾名思义,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。

它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。

tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。

因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。

普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。

-----------------------bash-2.02# tcpdumptcpdump: listening on eth011:58:47.873028 bios-ns > bios-ns: udp 5011:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=430000 0000 0080 0000 1007 cf08 0900 00000e80 0000 902b 4695 0980 8701 0014 0002000f 0000 902b 4695 0008 0011:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97ffff 0060 0004 ffff ffff ffff ffff ffff0452 ffff ffff 0000 e85b 6d85 4008 00020640 4d41 5354 4552 5f57 4542 0000 00000000 00^C------------------------首先我们注意一下,从上面的输出结果上可以看出来,基本上tcpdump总的的输出格式为:系统时间来源主机.端口 > 目标主机.端口数据包参数TcpDump的参数化支持tcpdump支持相当多的不同参数,如使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,使用-c参数指定要监听的数据包数量,使用-w参数指定将监听到的数据包写入文件中保存,等等。

然而更复杂的tcpdump参数是用于过滤目的,这是因为网络中流量很大,如果不加分辨将所有的数据包都截留下来,数据量太大,反而不容易发现需要的数据包。

使用这些参数定义的过滤规则可以截留特定的数据包,以缩小目标,才能更好的分析网络中存在的问题。

tcpdump使用参数指定要监视数据包的类型、地址、端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的。

请使用man tcpdump查看这些过滤规则的具体用法。

显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,可以屏蔽内核中的bpfilter伪设备。

一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP堆栈才行。

在FreeBSD下,这就需要内核支持伪设备bpfilter。

因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之类的网络分析工具。

并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板。

May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled虽然网络分析工具能将网络中传送的数据记录下来,但是网络中的数据流量相当大,如何对这些数据进行分析、分类统计、发现并报告错误却是更关键的问题。

网络中的数据包属于不同的协议,而不同协议数据包的格式也不同。

因此对捕获的数据进行解码,将包中的信息尽可能的展示出来,对于协议分析工具来讲更为重要。

昂贵的商业分析工具的优势就在于它们能支持很多种类的应用层协议,而不仅仅只支持tcp、udp等低层协议。

从上面tcpdump的输出可以看出,tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。

显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。

当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

TCP功能数据过滤不带任何参数的TcpDump将搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,而且数据太多不利于分析。

所以,我们应当先想好需要哪些数据,TcpDump提供以下参数供我们选择数据:-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。

例如:tcpdump -b arp 将只显示网络中的arp即地址转换协议信息。

-i 选择过滤的网络接口,如果是作为路由器至少有两个网络接口,通过这个选项,就可以只过滤指定的接口上通过的数据。

例如:tcpdump -i eth0 只显示通过eth0接口上的所有报头。

src、dst、port、host、net、ether、gateway这几个选项又分别包含src、dst 、port、host、net、ehost等附加选项。

他们用来分辨数据包的来源和去向,src host 192.168.0.1指定源主机IP地址是192.168.0.1,dst net 192.168.0.0/24指定目标是网络192.168.0.0。

以此类推,host是与其指定主机相关无论它是源还是目的,net是与其指定网络相关的,ether后面跟的不是IP地址而是物理地址,而gateway则用于网关主机。

可能有点复杂,看下面例子就知道了:tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头。

tcpdump ether src 00:50:04:BA:9B and dst……过滤源主机物理地址为XXX的报头(为什么ether src后面没有host或者net?物理地址当然不可能有网络喽)。

Tcpdump src host 192.168.0.1 and dst port not telnet过滤源主机192.168.0.1和目的端口不是telnet的报头。

ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。

例如:tcpdump ip src……只过滤数据-链路层上的IP报头。

tcpdump udp and src host 192.168.0.1只过滤源主机192.168.0.1的所有udp报头。

数据显示/输入输出TcpDump提供了足够的参数来让我们选择如何处理得到的数据,如下所示:-l 可以将数据重定向。

如tcpdump -l >tcpcap.txt将得到的数据存入tcpcap.txt文件中。

-n 不进行IP地址到主机名的转换。

如果不使用这一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这样:eth0 < ntc9.1165> .telnet,使用-n后变成了:eth0 < 192.168.0.9.1165 > 192.168.0.1.telnet。

-nn 不进行端口名称的转换。

上面这条信息使用-nn后就变成了:eth0 < ntc9.1165 > .23。

-N 不打印出默认的域名。

还是这条信息-N 后就是:eth0 < ntc9.1165 > router.telnet。

-O 不进行匹配代码的优化。

-t 不打印UNIX时间戳,也就是不显示时间。

-tt 打印原始的、未格式化过的时间。

-v 详细的输出,也就比普通的多了个TTL和服务类型。

[expression]的用法:expression是tcpdump最为有用的高级用法,可以利用它来匹配一些特殊的包。

下面介绍一下expression的用法,主要是如何写出符合要求最为严格expression。

如果tcpdump中没有expression,那么tcpdump会把网卡上的所有数据包输出,否则会将被expression匹配的包输出。

expression 由一个或多个[primitives]组成,而[primitives]由一个或多个[qualitifer]加一个id(name)或数字组成,它们的结构如用正则表达式则可表示为:expression = ([qualitifer]+(id|number))+依次看来,expression是一个复杂的条件表达式,其中[qualitifer]+(id|number)就是一个比较基本条件,qualitifer就表达一些的名称(项,变量),id或number则表示一个值(或常量)。

相关文档
最新文档