editplus常用操作备忘录

  1. 删除文件中一个或多个空格开头的行
    1.1 原始文本

    1.2 按Ctrl+H快捷键呼出替换窗口,输入正则表达式

    1.3 替换结果
  2. 删除空行
    2.1 原始文件

    2.2 按Ctrl+H快捷键呼出替换窗口,输入正则表达式

    2.3 替换结果

联想Miix510入手体验

用了多年的ThinkPad x201i,不得不说ThinkPad的机器质量还是相当不错的。之所以考虑换Miix510主要也是看重了其便携性,关键的是键盘和主机分离。出差的时候可以在车上当平板使用一下,这是传统笔记本不具备的。在购买这台Miix510的时候在联想官网将旧的ThinkPad x201i以旧换新,换了代金券。

 

在拍照之前,我已经给Miix510贴了正面钢化膜,和背面磨砂膜了。联想官方不太建议贴膜,之所以贴膜还是看到周围有太多人不小心把屏幕搞碎的了,主要目的就是想防护一下。毕竟这类便携性的电子产品可移动性强,有时候难免疏忽。如果你是一个很细心的人,那确实可以不用贴膜,毕竟贴膜会影响触摸屏的灵敏度。

先来张正面图

Miix510

背面图

Miix510

键盘,笔(这个笔不像Surface那样可以吸附在边框上,而是插进USB的接口里保持固定的)

Miix510

支架展开姿态

Miix510

角度还是比较大的,官方给出最大150度。180度不会断。

Miix510

键盘展开

Miix510

键盘,手感不错,材质也很棒。这个键盘可以给80分(满分100,不带背光是个遗憾,边缘处理略粗糙了些)

Miix510

键盘特写,不得不说键冒还是挺大的

Miix510

键盘的触摸般是支持多点触控的(2手指在屏幕空白处是右键,在浏览器里可以上下翻页。3指可以打开语音助手。4指可以查看消息中心)

Miix510

手写笔,一股浓浓的ThinkPad风格

Miix510

4096级压感,做设计,绘画类的工作应该能体现优势

Miix510

手写笔插入USB口时的状态

Miix510

铰链特写,联想的设计专利,据说有200多个零件。确实够精细。

Miix510

Miix510接口(1个Type-C,1个USB,1个充电口,1个耳机孔) ?确实少了点

Miix510

键盘与主机的接口,吸附起来比较容易,基本上对上差不多的角度就会自动吸附过去。很少出错。

Miix510

待机画面,屏幕虽然达不到2K,但是也够精细了。

Miix510

开机时间8秒,得益于使用了PCIE-SSD

Miix510

自已买内胆包,这东西就怕摔。毕竟不是所有的电脑都跟ThinkPad一样结实,更不要说这种2合1平板了。

大小合适

就是这个笔的携带方式有点不方便,如果是吸附式的就好多了。

 

聊聊联想Miix510的优缺点

优点:

  1. ?平板,笔记本2合1设计。简直是出差利器
  2. ?键盘手感不错,还支持多点触控
  3. 支持关机时给手机充电,外出可以少带充电宝
  4. 开机速度快,可以随时进入工作状态

缺点:

  1. 充电器接口太紧,要是能换成Type-C充电就更好了
  2. 电池待机一般般3-4小时左右,这个成成绩一般了
  3. 发热量有点大
  4. 配置虽然不低,但和windows10的兼容性似乎没有想像中好,有时会卡顿。

SecureCRT密钥登录Linux

安全Shell的公钥认证概述

公开密钥认证是一种经验证的,成熟的认证方法,用于认证比密码认证更安全的计算设备。公共密钥认证采用一对计算机生成的密钥 – 一个公共和一个私有密钥 – 以及证明用户身份而不会将秘密密钥暴露于盗窃或劫持的过程。

在使用公钥验证之前,必须创建公钥/私钥对文件,将公钥文件的副本上传到服务器上的特定位置。使用密钥生成实用程序生成公钥和私钥。虽然密钥对中的私有密钥和公钥是相关的,但私有密钥无法由只具有相应公钥的人派生。

当客户端证明它具有与服务器配置使用的公钥文件相关联的“秘密”私钥时,公钥认证才成功。通常,客户端计算机上的私钥文件受“密码”保护,因此即使私钥文件被盗,攻击者也必须知道密码才能使用。与认证过程中在客户端与服务器之间传输密码的“密码”认证方式相反,私钥内容不会在客户端与服务器之间传输。由于私钥永远不会通过连接传输,所以公认密钥认证方法被认为比密码认证方法更安全。每个键的长度通常在1024到2048位之间。

 

本文测试环境

Linux服务器信息

[root@localhost ~]# hostnamectl
Static hostname: localhost.localdomain
Icon name: computer
Chassis: n/a
Machine ID: 73cfb6a50d9040cbb5dcea2e423f489e
Boot ID: bc3d48a5c1ef40cc89bb3ec9495f3796
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-229.el7.x86_64
Architecture: x86_64
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:32:0a:25 brd ff:ff:ff:ff:ff:ff
inet 192.168.214.130/24 brd 192.168.214.255 scope global dynamic eno16777736
valid_lft 1022sec preferred_lft 1022sec
inet6 fe80::20c:29ff:fe32:a25/64 scope link
valid_lft forever preferred_lft forever

SecureCRT客户端信息

 

 

一、 配置密钥

1) 双击打开桌面SecureCRT,选择菜单栏—–>工具—–>创建公钥

2) 生成密钥向导,点击Next进行下一步

3) 密钥类型选择RSA

4) 设置通行短语,可以留空不设置短语,如不设置,登录时直接进入系统。为了系统更加安全,建议设置。

5) 密钥长度,这里填写2048位,尽可能提高安全性。

6) 密钥生成, 等进度条完全变绿色后,点击Next进行下一步。

7) 密钥格式这里选择OpenSSH密钥格式。[这里请记住密钥保存路径]

8) 如果将公钥以后登录其他服务器,建议设置成全局公钥。

 

二、 登录测试

1) 回到桌面,重新打开软件,弹出快速连接。输入登录信息。

2) 输入我们要登录的Linux服务器IP地址,端口,用户名。输入完成点击连接。

3) 点击连接后在弹出的窗口中输入Linux服务器安装时设定的登录密码。

4) 进入系统

5) 接下来我们将生成的公钥上传至Linux服务器,首先在Linux服务器上创建公钥目录,按下图中的命令进行创建。

6) 创建目录完成后,使用系统自带编辑器vi建立公钥文件,命令如下图所示。

7) 按小写字母i进入INSERT模式。

8) 返回客户端Windows系统,打开在生成密钥时提示保存的目录,使用文本编辑器(建议notepad++, editplus)打开Identity.pub公钥文件。

9) 全选文件内容(Ctrl+A), 然后右键复制。

10) 返回SecureCRT软件,将刚刚复制的文本右键粘贴进vi编辑器里。

11) 粘贴好如下图(注意公钥生成并非与本文完全一样,格式类似即可)

12) 粘贴安成后,在vi编辑模式下连续按两次Esc键,再输入:x并按回车进行保存。

13) 使用vi编辑器编辑sshd配置文件,路径一般为/etc/ssh/sshd_config。命令如下面。

14) 使用方向键,找到下图红色方框所示段落,将光标移动至#号上面,按字母x,将其删除。

15) 效果如下图,确保下图红色方框前段落前面没有#号。

16) 上一步完成后,连续按两次Esc键,再输入:x回车并退出编辑器。

17) 重启ssh服务, 命令如下图。

18) 输入logout命令退出系统。

 

三、 密钥登录

1) 刚刚在第二部份退出系统后,下面进行密钥登录设置。在SecureCRT界面中选择刚刚登录的标签,单击右键—–>会话选项。

2) 类别选择SSH2, 在右边鉴权中去掉密码,GSSAPI两项。点击确定。

3) 返回登录标签,右键,重新连接。

4) 提示输入通行短语,输入我们生成密钥时设置的短语。输入完成后,点击确定。

5) 顺利登录系统,本次利用SecureCRT进行密钥登录顺利完成。

四、 屏蔽密码登录

1) 既然我们利用密钥来进行系统登录,从安全角度考虑不再适合使用密码的方式来进行登录。我们编辑ssh配置文件来关闭密码登录。命令如下。

2) 将下图红框中的PasswordAuthentication yes 修改成PasswordAuthentication no , 如下图所示。

3) 重启ssh, 并推出系统。

4) 编辑会话选项,将公钥和GSSAPI删除,使用密码来进行登录。

5) 重新连接。

6) 此时提示无法登录,ssh禁用密码登录成功。

graylog2 server 安装指南(2017最新版)

系统信息

操作系统版本: CentOS 7 x86_64 最小化安装
ip地址: 192.168.103.1

初始化操作系统

[root@localhost ~]# hostnamectl set-hostname graylog2server.shensuping.com    ##设置FQDN主机名
[root@localhost ~]# systemctl restart systemd-hostnamed
[root@localhost ~]# hostnamectl status
Static hostname: graylog2server.shensuping.com
Icon name: computer-vm
Chassis: vm
Machine ID: a18933dbe7b94f5f9ec5f894eca9d9c6
Boot ID: 209ffd917b7f4515a545b62589286679
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.el7.x86_64
Architecture: x86-64
[root@localhost ~]# reboot
[root@graylog2server ~]# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config  ##关闭SELINUX
[root@graylog2server ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config  ##优化SSH连接速度
[root@graylog2server ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  ##设置时区
[root@graylog2server ~]# yum install wget vim net-tools ntp* -y   ##安装一些工具软件
[root@graylog2server ~]# ntpdate ntp.fudan.edu.cn
[root@graylog2server ~]# systemctl start ntpd
[root@graylog2server ~]# systemctl enable ntpd
[root@graylog2server ~]# cat >> /etc/security/limits.conf  <<EOF
* soft nofile 65536 
* hard nofile 65536
EOF
[root@graylog2server ~]# cat >> /etc/sysctl.conf <<EOF
vm.max_map_count=262144
EOF
[root@graylog2server ~]# yum update -y
[root@graylog2server ~]# systemctl stop firewalld
[root@graylog2server ~]# reboot

安装graylog2 server

[root@graylog2server ~]# cat  >  /etc/yum.repos.d/mongodb.repo <<EOF
[mongodb]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
EOF
[root@graylog2server ~]# yum install mongodb-org -y  ##安装mongodb
[root@graylog2server ~]# service mongod start  ##启动mongodb
[root@graylog2server ~]# chkconfig mongod on  ##设置开机启动
[root@graylog2server ~]# wget -c https://mirror.its.sfu.ca/mirror/CentOS-Third-Party/NSG/common/x86_64/jdk-8u66-linux-x64.rpm  ##下载JDK
[root@graylog2server ~]# rpm -Uvh jdk-8u66-linux-x64.rpm  ##安装JDK
[root@graylog2server ~]# java -version  ##查看JDK安装是否完成
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
[root@graylog2server ~]#  cat >  /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch]
name=Elasticsearch repository
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF
[root@graylog2server ~]# yum install elasticsearch -y  ##安装elasticsearch 
[root@graylog2server ~]# systemctl daemon-reload  ##启动elasticsearch 
[root@graylog2server ~]# systemctl enable elasticsearch  ##设置elasticsearch开机启动
[root@graylog2server ~]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
[root@graylog2server ~]# cat  > /etc/elasticsearch/elasticsearch.yml <<EOF
cluster.name: graylog
network.host: 0.0.0.0
http.port: 9200
node.master: true
node.data: true
bootstrap.mlockall: true
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicasts.hosts: ["127.0.0.1"]
EOF
[root@graylog2server ~]# systemctl restart elasticsearch  ##重启elasticsearch 
[root@graylog2server ~]# netstat -tupan|grep :9200  ##测试elasticsearch进程是否启动
tcp6 0 0 :::9200 :::* LISTEN 10616/java
[root@graylog2server ~]# curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'  ##测试elasticsearch
{
"cluster_name" : "graylog",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
[root@graylog2server ~]# wget -c https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.rpm ##下载graylog2 repo仓库
[root@graylog2server ~]# rpm -Uvh graylog-2.2-repository_latest.rpm
[root@graylog2server ~]# yum install graylog-server -y
[root@graylog2server ~]# yum install epel-release -y
[root@graylog2server ~]# yum install pwgen -y
[root@graylog2server ~]# pwgen -N 1 -s 96  ##生成随即密码
Z2LoxxeFvWoAPbMF0sIlYWhHH06leW6bfUAeImqhUe86Wzq8p4HDZAyKTQpaedvBuCoKYjaQAGQTj93R33sREiSIVt1sTRg0
[root@graylog2server ~]# echo -n admin | sha256sum   ##生成管理员密码
8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 -
[root@graylog2server ~]# cp /etc/graylog/server/server.conf /etc/graylog/server/server.conf.bak
[root@graylog2server ~]# cat > /etc/graylog/server/server.conf <<EOF
is_master = true
node_id_file = /etc/graylog/server/node-id
password_secret = Z2LoxxeFvWoAPbMF0sIlYWhHH06leW6bfUAeImqhUe86Wzq8p4HDZAyKTQpaedvBuCoKYjaQAGQTj93R33sREiSIVt1sTRg0
root_password_sha2 = 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
root_timezone = PRC
plugin_dir = /usr/share/graylog-server/plugin
rest_listen_uri = http://192.168.103.1:9000/api/
web_listen_uri = http://192.168.103.1:9000/
rotation_strategy = count
elasticsearch_max_docs_per_index = 20000000
elasticsearch_max_number_of_indices = 20
retention_strategy = delete
elasticsearch_shards = 4
elasticsearch_replicas = 0
elasticsearch_index_prefix = graylog
allow_leading_wildcard_searches = false
allow_highlighting = false
elasticsearch_analyzer = standard
output_batch_size = 500
output_flush_interval = 1
output_fault_count_threshold = 5
output_fault_penalty_seconds = 30
processbuffer_processors = 5
outputbuffer_processors = 3
processor_wait_strategy = blocking
ring_size = 65536
inputbuffer_ring_size = 65536
inputbuffer_processors = 2
inputbuffer_wait_strategy = blocking
message_journal_enabled = true
message_journal_dir = /var/lib/graylog-server/journal
lb_recognition_period_seconds = 3
mongodb_uri = mongodb://localhost/graylog
mongodb_max_connections = 1000
mongodb_threads_allowed_to_block_multiplier = 5
content_packs_dir = /usr/share/graylog-server/contentpacks
content_packs_auto_load = grok-patterns.json
proxied_requests_thread_pool_size = 32
EOF
[root@graylog2server ~]# systemctl daemon-reload
[root@graylog2server ~]# systemctl restart graylog-server  ##重启graylog-server
[root@graylog2server ~]# systemctl enable graylog-server  ##设置graylog-server开机启动

访问测试(graylog server启动较慢,请等待几分钟)

Windows Server 2003 企业级共享设置

设计需求:
模拟公司: 上海水果公司
人员架构:
CEO, 副总经理1(管理销售部,市场部),副总经理2(管理行政部)
部门:
销售部 (员工 shbA, shbB )
市场部 (员工 scbA, scbB )
行政部 (员工xzbA, xzbB )
共享文件夹权限:
上海水果公司
|—–公共(ceo, 所有人读写权限)
|—–销售部(ceo,副总经理1,销售部员工具有读写权限)
|—–市场部(ceo,副总经理1,市场部员工具有读写权限)
|—–行政部(ceo,副总经理2,行政部员工具有读写权限)
1.操作系统版本(建议安装纯净版本)
1
文件夹结构
2
建立模拟用户
3
建立用户组
4
建立上海水果公司组并将全体人员加入
5
建立市场部用户组并将所属成员加入
6
建立行政部用户组并将所属成员加入
7
建立销售部用户组并将所属成员加入
8
设置上海水果公司文件夹共享的权限
1. 在上海水果公司文件夹上右键,弹出的菜单中选择共享与安全选项卡
2. 在弹出的窗口中选择共享选项
3. 点击权限按钮在弹出的共享权限中将其他删除,并将上海水果公司用户组加入并给读取,写入权限。
按以上设置,所有人对上海水果公司文件夹都具有读,写权限。
9
设置市场部文件夹访问权限
1. 右键文件夹在弹出的菜单中选择共享与安全选项卡
2. 在安全选项中加入副总经理2,上海水果公司销售部和行政部两个用户组并将权限设置成全部拒绝
10
设置销售部文件夹访问权限
1. 右键文件夹在弹出的菜单中选择共享与安全选项卡
2. 在安全选项中加入副总经理2,上海水果公司市场部和行政部两个用户组并将权限设置成全部拒绝
11
设置行政部文件夹访问权限
1. 右键文件夹在弹出的菜单中选择共享与安全选项卡
2. 在安全选项中加入副总经理1,上海水果公司市场部和销售部两个用户组并将权限设置成全部拒绝
12

公共文件夹不用设置,默认对所有用户具有可读写权限

访问测试
ceo访问测试
13
14
15
登录后,每个文件夹建立ceo目录,如果都建立成功,说明ceo权限设置正确
16
副总经理1 权限测试
清除之前访问保存的用户和口令(操作后系统会有延时,等几分钟再访问)
21
22
18
访问行政部(按需求设计,应该是无权限访问)
19
其他文件夹建立权限(如果除行政部外建立成功,说明权限设置正确)
20
副总经理2 权限测试
21
22
23
访问市场部
24
访问销售部
31
访问其他文件夹(按权限设计要求副总经理2拥有对公共,行政部的权限,其它文件夹则无权访问)
32
普通用户权限访问测试(此处仅以scbA为例)
27
28
29
访问行政部
30
访问销售部
31
访问公共部和市场部
32
其他用户测试雷同,此处省略。。。。。。。。。。。

基于 openresty 或 Nginx 的一种封锁恶意来访IP的方式

在WEB的世界里,我们有时由于某种原因会经常要从WEB服务器层面对来访的IP进行一些限制。传统的方式是人为手动的改动如apache,IIS,Nginx的配置文件。这类传统的方式比较烦琐,也往往影响线上的服务。

openresty的出现使得对WEB服务器的控制更加灵活,今天测试了openresty下一种基于共享词典的封锁恶意IP方式。

整个思路如下:

1. 在配置段里构造访问 url 来接受封锁的IP存入全局共享字典
2. 在访问阶段对来字典里的IP是否匹配remote_add,如果匹配则返回403

此种配置方式的优点:

  1. 比较灵活,不需要人为手动改动配置文件重启WEB服务器

 

openresty配置文件如下:

[root@iZ28guvzhdyZ conf]# cat nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    lua_shared_dict blockipaddr 10m;
    server {
        listen       88;
        server_name  localhost;

        ##设置接受IP的接口
        location /setblockip {
            default_type 'text/plain';
            content_by_lua '
                local blockipaddr = ngx.shared.blockipaddr
                local blockip =  "" .. ngx.var.arg_blockip
                blockipaddr:set(blockip, "true")
                ngx.say("STORED")
            ';
        }

        ##设置查询IP的接口
        location /getblockip {
            default_type 'text/plain';
            content_by_lua '
                 local blockipaddr = ngx.shared.blockipaddr
                 local blockip =  "" .. ngx.var.arg_blockip
                 local get_dict_values = blockipaddr:get(blockip)
                 ngx.say(get_dict_values)
            ';
        }

        ##设置删除IP接口
        location /delblockip {
            default_type 'text/plain';
            content_by_lua '
                 local blockipaddr = ngx.shared.blockipaddr
                 local blockip =  "" .. ngx.var.arg_blockip
                 local get_dict_values = blockipaddr:delete(blockip)
                 ngx.say(get_dict_values)
            ';
        }

        ##访问配置段
        location /  {
            access_by_lua '
                 local blockipaddr = ngx.shared.blockipaddr
                 local blockip = "" .. ngx.var.remote_addr
                 local get_dict_values = blockipaddr:get(blockip)
                 if get_dict_values then
                     ngx.exit(403)
                     return
                 end 
            ';
            root   html;
            index  index.html index.htm;
        }

        location /client  {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

 

客户端访问测试:

  1. 设置恶意IP地址
    1
  2. 访问测试
    5
  3. 查看IP是否被存入字典
    2
  4. 删除刚刚被封锁的IP地址
    4
  5. 重新访问刚刚的地址
    3

 

结束语:
这里讨论的是一种实现思路以及很粗糙的配置语法,实际应用之中还有比较大的优化余地,比如效率问题以及封锁IP段,还有对传入IP地址的有效性过滤。也欢迎大家好的建议。谢谢!

在 Nginx 日志中记录客户端请求的域名

在 Nginx 日志中记录客户端请求的域名

  1. 配置Nginx日志格式
    log_format main '$http_host $remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
  2. 配置虚拟主机
    server {
    listen 80;
    server_name *.a.com *.b.com www.www.com;
    access_log /var/log/nginx/log/sites.log main;
    location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /usr/share/nginx/html;
    }
    
    }
  3. 打开浏览器分别访问在虚拟主机中配置的域名
  4. 查看日志文件
    [root@localhost log]# tailf sites.log
    a.a.com 10.0.210.161 - - [19/Feb/2016:14:10:33 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36" "-"
    a.a.com 10.0.210.161 - - [19/Feb/2016:14:10:33 +0800] "GET /favicon.ico HTTP/1.1" 404 570 "http://a.a.com/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36" "-"
    a.b.com 10.0.210.161 - - [19/Feb/2016:14:10:46 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36" "-"
    a.b.com 10.0.210.161 - - [19/Feb/2016:14:10:46 +0800] "GET /favicon.ico HTTP/1.1" 404 570 "http://a.b.com/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36" "-"
    www.www.com 10.0.210.161 - - [19/Feb/2016:14:10:52 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36" "-"
    www.www.com 10.0.210.161 - - [19/Feb/2016:14:10:52 +0800] "GET /favicon.ico HTTP/1.1" 404 570 "http://www.www.com/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36" "-"
    

tcpdump查看http响应头

当我们的WEB服务器上配置了多个虚拟主机的时候,在流量过大的时候我们想要查看是否是某个虚拟主机的访问量过大时。可以使用tcpdump来排查。

[root@iZ28guvzhdyZ ~]# tcpdump -i eth1  -s 1024 -l -A dst 'port 80' -vv|egrep -E 'Host:'           
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 1024 bytes
Host: shensuping.com
^C7 packets captured
12 packets received by filter
0 packets dropped by kernel
[root@iZ28guvzhdyZ ~]# tcpdump -i eth1  -s 1024 -l -A dst 'port 80' -vv|egrep -E 'User-Agent'
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 1024 bytes
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36
^C7 packets captured
10 packets received by filter
0 packets dropped by kernel