tcpdump抓取http的请求头和响应信息

2017年8月21日 没有评论

tcpdump过滤HTTP的GET请求:

sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

tcpdump过滤HTTP的POST请求:

sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

tcpdump过滤HTTP的请求和响应头信息,以及请求和响应消息体信息:

tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
tcpdump -X -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

分类: linux 标签:

The listener supports no services

2017年8月14日 没有评论

[oracle@localhost ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 14-AUG-2017 13:56:45

Copyright (c) 1991, 2013, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 14-AUG-2017 13:54:44
Uptime 0 days 0 hr. 2 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/product/11gR2/network/admin/listener.ora
Listener Log File /home/oracle/product/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

tlister启动没有服务

#netmgr
在database services下增加实例名配置,替换红色部分为你的实例名。

客户端连接报错:
ORA-12541:TNS:no listener
把127.0.0.1 替换为你机器的ip

分类: oracle, 未分类 标签:

oralce删除数据库

2017年8月14日 没有评论

sqlplus / as sysdba
SQL> startup
ORACLE instance started.

Total System Global Area 2.0176E+10 bytes
Fixed Size 2261928 bytes
Variable Size 2818575448 bytes
Database Buffers 1.7314E+10 bytes
Redo Buffers 41463808 bytes
Database mounted.
Database opened.
SQL> alter database close;

Database altered.

SQL> alter system enable restricted session;

System altered.

SQL> drop database;

Database dropped.

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With

删除 /etc/oratab
删除 rm -rf product/
删除 rm -rf oraInventory/

未关闭的进程杀掉
[root@localhost ~]# ps -ef|grep ora
root 4736 3961 0 13:17 pts/2 00:00:00 su - oracle
oracle 4737 4736 0 13:17 pts/2 00:00:00 -bash
oracle 4763 1 0 13:18 ? 00:00:00 /home/oracle/product/11gR2/bin/tnslsnr LISTENER -inherit
root 5482 3790 0 13:36 pts/1 00:00:00 grep ora
[root@localhost ~]# kill -9 4763

这样重新安装数据库,不会报实例冲突

分类: oracle 标签:

eclipse工程有红色叹号

2017年7月11日 没有评论

eclipse有红色叹号;

一般情况可以这样处理,处理方法来自网络

1,右键项目名称 BuildPath ---> Configure Build Paht...中,然后上面有几个选项卡找到 Libraries中出现红色叉号的包为路径错误的包。到classpath中修改相应包的当前路径。然后回到eclipse中F5刷新工程。

不行的话可以试试clean项目;

project--->clean

如果你的eclipse项目有红色叹号,而Libraries中没有出现红色叉号的包,我是这样做的。

1,先把eclipse转换到Markers视图,windows---->show view ---->markers

你会发现这些报错内容,
Archive for required library: ‘XXXXXXXX001’ in project ‘xxxxxxxxx’ cannot be read or is not a valid ZIP file
2,用记事本打开项目根目录的.classpath文件,找到“”这一行,删掉

保存,刷新后,这个报错就没有了,从而红色叹号也没有了。

分类: java 标签:

word按tab不能多级标题

2017年7月5日 没有评论

使用word 2010 ,经常用到tab键进行列表等级变换,但是在某些情况下,tab键不能回退到下一级,那么就需要修复word此功能。
1第一步,打开word 2010 ,选择“文件”-> “选项”:
2第二步,在弹出框中选择“校对”,然后选择“自动更正选项(A)...”:
3第三步,在弹出框中选择“键入时自动套用格式”标签卡,在“用Tab和Backspace设置左缩进和首行缩进”前打勾:
4最后,保存退出

分类: 小技巧 标签:

nginx的location、root、alias指令用法和区别

2017年4月4日 5 条评论

nginx指定文件路径有两种方式root和alias,指令的使用方法和作用域:
[root]
语法:root path
默认值:root html
配置段:http、server、location、if
[alias]
语法:alias path
配置段:location

root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换location路径
alias是一个目录别名的定义,root则是最上层目录的定义。
还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的。。。而root则可有可无~~

root实例:

如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/t/a.html的文件。

alias实例:

如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/new_t/a.html的文件。注意这里是new_t,因为alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。

注意:
1. 使用alias时,目录名后面一定要加"/"。
3. alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
4. alias只能位于location块中。(root可以不放在location中)

分类: nginx 标签:

git master origin HEAD的区别

2017年3月29日 没有评论

HEAD :当前活跃分支的游标,可以用 checkout 命令改变 HEAD 指向的位置。形象的记忆就是:你现在在哪儿,HEAD 就指向哪儿,所以 Git 才知道你在那儿!

master: 首次创建仓库时默认分支的名字,在大多数情况下,master是指主干分支。

origin: 默认的远程仓库的名字。

HEAD是git内置的定义好的特定含义功能,不可以修改。master,origin都是常用的公共命名方式,可以有自己的定义。

ps:
FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本

参考
http://marklodato.github.io/visual-git-guide/index-zh-cn.html

分类: linux 标签:

nginx反向代理获取用户真实ip

2017年3月5日 2 条评论

nginx做反向代理时,默认的配置后端获取到的ip都是来自于nginx,那么如何转发用户的真实IP到后端程序呢?
当前端使用nginx代理,后端使用php-fpm时,如果还是使用$_SERVER['REMOTE_ADDR'],那么php程序获取到的是nginx的ip地址,而不是用户的真实ip。

在nginx的配置文件中加入下面三个指令,这样后端php就可以使用$_SERVER['HTTP_X_REAL_IP']获取到访客的ip。

如果你想使用$_SERVER['REMOTE_ADDR'],不想修改代码,那么可以通过修改REMOTE_ADDR的值来实现。

经过多层代理后 $http_x_forwared_for 会含有多个ip,其中第一个ip是客户端的ip,REMOTE_ADDR只能是客户端的ip,所以可以用正则提取 $http_x_forwarded_for的第一个ip给REMOTE_ADDR:

分类: nginx 标签:

nginx 的 access log rewrite log 日志配置

2017年3月5日 没有评论

nginx 的 rewrite log 是记录在 error log 文件中,而不是access log中。
nginx 开启 rewrite 的方法(在server段中添加):
首先,打开 error_log 日志

然后打开 rewrite_log 开关

这样就可以在 error.log 中生成重写的 rewrite 日志。

当server段不指定access_log时,并且http段中也未指定任何access_log参数时,它会默认写到logs/access.log这个文件,也就是access_log默认值就是logs/access.log,而且是所有server的访问日志。
如果我们不需要,在http段中加一行access_log off;然后在特定的server中配置自己想写入的日志。

nginx的http段中,设置access log:

nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令来定义。

1. access_log指令

语法: access_log path [format [buffer=size [flush=time]]];
access_log path format gzip[=level] [buffer=size] [flush=time];
access_log syslog:server=address[,parameter=value] [format];
access_log off;
默认值: access_log logs/access.log combined;
配置段: http, server, location, if in location, limit_except
gzip压缩等级。
buffer设置内存缓存区大小。
flush保存在缓存区中的最长时间。
不记录日志:access_log off;
使用默认combined格式记录日志:access_log logs/access.log 或 access_log logs/access.log combined;

2. log_format指令

语法: log_format name string …;
默认值: log_format combined “…”;
配置段: http
name表示格式名称,string表示等义的格式。log_format有一个默认的无需设置的combined日志格式,相当于apache的combined日志格式,如下所示:

如果nginx位于负载均衡器,squid,nginx反向代理之后,web服务器无法直接获取到客户端真实的IP地址了。 $remote_addr获取反向代理的IP地址。反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,用来记录 客户端IP地址和客户端请求的服务器地址。

日志格式允许包含的变量注释如下:

发送给客户端的响应头拥有“sent_http_”前缀。 比如$sent_http_content_range。
实例如下:

3. open_log_file_cache指令

语法: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
open_log_file_cache off;
默认值: open_log_file_cache off;
配置段: http, server, location
对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用open_log_file_cache来设置日志文件缓存(默认是off),格式如下:
参数注释如下:
max:设置缓存中的最大文件描述符数量,如果缓存被占满,采用LRU算法将描述符关闭。
inactive:设置存活时间,默认是10s
min_uses:设置在inactive时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是1次
valid:设置检查频率,默认60s
off:禁用缓存
实例如下:

4. log_not_found指令

语法: log_not_found on | off;
默认值: log_not_found on;
配置段: http, server, location
是否在error_log中记录不存在的错误。默认是。

5. log_subrequest指令

语法: log_subrequest on | off;
默认值: log_subrequest off;
配置段: http, server, location
是否在access_log中记录子请求的访问日志。默认不记录。

6. rewrite_log指令

由ngx_http_rewrite_module模块提供的。用来记录重写日志的。对于调试重写规则建议开启。 Nginx重写规则指南
语法: rewrite_log on | off;
默认值: rewrite_log off;
配置段: http, server, location, if
启用时将在error log中记录notice级别的重写日志。

7. error_log指令

语法: error_log file | stderr | syslog:server=address[,parameter=value] [debug | info | notice | warn | error | crit | alert | emerg];
默认值: error_log logs/error.log error;
配置段: main, http, server, location
配置错误日志。

分类: nginx 标签: , ,

nginx开启https

2017年2月15日 1 条评论

开启https配置

#下面是http跳转至https

分类: nginx 标签: