哈士奇_部落格

2012年7月25日

Linux netstat命令详解

简介

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

输出信息含义

执行netstat后,其输出结果为

复制代码
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 02210.34.6.89:telnet 210.34.6.96:2873ESTABLISHED
tcp 2960210.34.6.89:1165210.34.6.84:netbios-ssn ESTABLISHED
tcp 00localhost.localdom:9001localhost.localdom:1162ESTABLISHED
tcp 00localhost.localdom:1162localhost.localdom:9001ESTABLISHED
tcp 080210.34.6.89:1161210.34.6.10:netbios-ssn CLOSE

Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 1[ ] STREAM CONNECTED 16178@000000dd
unix 1[ ] STREAM CONNECTED 16176@000000dc
unix 9[ ] DGRAM 5292/dev/log
unix 1[ ] STREAM CONNECTED 16182@000000df
复制代码


从整体上看,netstat的输出结果可以分为两个部分:

一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

常见参数

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

 

实用命令实例
1. 列出所有端口 (包括监听和未监听的)

  列出所有端口 netstat -a

复制代码
# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        00localhost:30037*:*                     LISTEN
udp        00*:bootpc                *:*

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2[ ACC ]     STREAM     LISTENING     6135/tmp/.X11-unix/X0
unix  2[ ACC ]     STREAM     LISTENING     5140/var/run/acpid.socket
复制代码

  列出所有 tcp 端口 netstat -at

复制代码
# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        00localhost:30037*:*                     LISTEN
tcp        00localhost:ipp           *:*                     LISTEN
tcp        00*:smtp                  *:*                     LISTEN
tcp6       00localhost:ipp           [::]:*                  LISTEN
复制代码

  列出所有 udp 端口 netstat -au

复制代码
# netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        00*:bootpc                *:*
udp        00*:49119*:*
udp        00*:mdns                  *:*
复制代码

2. 列出所有处于监听状态的 Sockets

  只显示监听端口 netstat -l

复制代码
# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        00localhost:ipp           *:*                     LISTEN
tcp6       00localhost:ipp           [::]:*                  LISTEN
udp        00*:49119*:*
复制代码

  只列出所有监听 tcp 端口 netstat -lt

复制代码
# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        00localhost:30037*:*                     LISTEN
tcp        00*:smtp                  *:*                     LISTEN
tcp6       00localhost:ipp           [::]:*                  LISTEN
复制代码

  只列出所有监听 udp 端口 netstat -lu

# netstat -lu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        00*:49119*:*
udp        00*:mdns                  *:*

  只列出所有监听 UNIX 端口 netstat -lx

复制代码
# netstat -lx
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2[ ACC ]     STREAM     LISTENING     6294private/maildrop
unix  2[ ACC ]     STREAM     LISTENING     6203public/cleanup
unix  2[ ACC ]     STREAM     LISTENING     6302private/ifmail
unix  2[ ACC ]     STREAM     LISTENING     6306private/bsmtp
复制代码

3. 显示每个协议的统计信息

  显示所有端口的统计信息 netstat -s

复制代码
# netstat -s
Ip:
11150total packets received
1with invalid addresses
0forwarded
0incoming packets discarded
11149incoming packets delivered
11635requests sent out
Icmp:
0ICMP messages received
0input ICMP message failed.
Tcp:
582active connections openings
2failed connection attempts
25connection resets received
Udp:
1183packets received
4packets to unknown port received.
.....
复制代码

  显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su

# netstat -st 
# netstat -su
 4. 在 netstat 输出中显示 PID 和进程名称 netstat -p

netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。

# netstat -pt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        10ramesh-laptop.loc:47212192.168.185.75:www        CLOSE_WAIT  2109/firefox
tcp        00ramesh-laptop.loc:52750lax:www ESTABLISHED 2109/firefox
5. 在 netstat 输出中不显示主机,端口和用户名 (host, port or user)

当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。

同样可以加速输出,因为不用进行比对查询。

# netstat -an

如果只是不想让这三个名称中的一个被显示,使用以下命令

# netsat -a --numeric-ports
# netsat -a --numeric-hosts
# netsat -a --numeric-users
 6. 持续输出 netstat 信息

netstat 将每隔一秒输出网络信息。

复制代码
# netstat -c
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        00ramesh-laptop.loc:36130101-101-181-225.ama:www ESTABLISHED
tcp        11ramesh-laptop.loc:52564101.11.169.230:www      CLOSING
tcp        00ramesh-laptop.loc:43758server-101-101-43-2:www ESTABLISHED
tcp        11ramesh-laptop.loc:42367101.101.34.101:www      CLOSING
^C
复制代码
 7. 显示系统不支持的地址族 (Address Families)
netstat --verbose

在输出的末尾,会有如下的信息

netstat: no support for`AF IPX'on this system.
netstat: no support for`AF AX25'on this system.
netstat: no support for`AF X25'on this system.
netstat: no support for`AF NETROM'on this system.
 8. 显示核心路由信息 netstat -r
复制代码
# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0*               255.255.255.0U         000eth2
link-local      *               255.255.0.0U         000eth2
default192.168.1.10.0.0.0UG        000eth2
复制代码

注意: 使用 netstat -rn 显示数字格式,不查询主机名称。

 9. 找出程序运行的端口

并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。

# netstat -ap | grep ssh
tcp        10dev-db:ssh           101.174.100.22:39213CLOSE_WAIT  -
tcp        10dev-db:ssh           101.174.100.22:57643CLOSE_WAIT  -

  找出运行在指定端口的进程

# netstat -an | grep ':80'
 10. 显示网络接口列表
复制代码
# netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500000000000BMU
eth2       150002619600026883600BMRU
lo        16436040004000LRU
复制代码

显示详细信息,像是 ifconfig 使用 netstat -ie:

复制代码
# netstat -ie
Kernel Interface table
eth0      Link encap:Ethernet  HWaddr 00:10:40:11:11:11
UP BROADCAST MULTICAST  MTU:1500Metric:1
RX packets:0errors:0dropped:0overruns:0frame:0
TX packets:0errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RX bytes:0(0.0B)  TX bytes:0(0.0B)
Memory:f6ae0000-f6b00000
复制代码

11. IP和TCP分析

  查看连接某服务端口最多的的IP地址

复制代码
wss8848@ubuntu:~$ netstat -nat | grep "192.168.1.15:22"|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
18221.136.168.36
3154.74.45.242
278.173.31.236
262.183.207.98
2192.168.1.14
2182.48.111.215
2124.193.219.34
2119.145.41.2
2114.255.41.30
175.102.11.99
复制代码

  TCP各种状态列表

复制代码
wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'
established)
Foreign
LISTEN
TIME_WAIT
ESTABLISHED
TIME_WAIT
SYN_SENT
复制代码
先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。
复制代码
wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c
143ESTABLISHED
1FIN_WAIT1
1Foreign
1LAST_ACK
36LISTEN
6SYN_SENT
113TIME_WAIT
1established)
复制代码
最后的命令如下:
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
分析access.log获得访问前10位的ip地址
awk '{print $1}'access.log |sort|uniq -c|sort -nr|head -10

参考资料:http://blog.maxiang.net/10-netstat-command-examples/139/

            http://www.ipcpu.com/2011/07/netstat-linux/

posted @ 2012-07-25 11:07 拉风 阅读(512) | 评论 (0)编辑 收藏

Ubuntu安装VMware Workstation8.0.3

Ubuntu安装VMware Workstation8.0.3
 
由于使用Ubuntu的人比较少,网上关于Ubuntu的资料也很少,笔者在安装VMware Workstation时就遇到了问题,首先网上关于Ubuntu12.04先行版的内容比较少,其次关于在Ubuntu12.04下安装VMware Workstation8.0.3最新版的资料就更少。
我遇到的问题是:
1. 下载好VMware Workstation8.0.3的bundle版本(linux)后,无法运行
2. 经过几番折腾终于能运行安装后,却无法运行VMware Workstation8.0.3
3. 安装完VMware Workstation后,通常我们要更改一些设置来优化,但是却也改不了。
4. 安装完后,想卸载怎么办?  www.2cto.com  
 
基于以上我遇到的几点问题,经过我半天的努力“折腾”终于解决了,半天啊!也够折磨人了,特此拿出来给大家分享,目的就是为了节省大家宝贵的时间!
一、下载最新VMware Workstation的bundle版本(linux)【这里笔者已上传至115网盘上了,免得大家还要从官网先注册再下载】
32位:http://115.com/file/e7ii0l33
64位:http://115.com/file/dpww9wzw
二、修改文件的属性
下载好后,我们要修改下文件的一个属性,目的是更改程序运行方式,具体如下:
进入下载文件的目录,找到下载文件(VMware-Workstation-Full-8.0.3-703057.i386.bundle),右击选择属性,选择权限选项卡,勾选“允许以程序执行文件”,完毕
或者也可以用终端命令的方式:
先cd到下载文件所在目录,然后输入
[plain]  
chmod +x VMware-Workstation-Full-8.0.3-703057.i386.bundle  
三、运行bundle安装程序,安装VMware Workstation8.0.3
四、下载针对linux内核的VMware Workstation8.0.2补丁
我们安装完后,运行VMware Workstation时无法运行,具体情况如下:
 



 
上面的意思是vmware的相关服务没有启动,要求你先启动服务再运行程序,然而启动服务的时候“Virtual Network Device”却怎么也启动不起来,这其实是Vmware对于最新版Ubuntu的Linux内核的支持问题,因此需要下载个补丁才能解决此问题,下载地址如下:  www.2cto.com  
vmware802fixlinux320.tar.bz2:http://115.com/file/c28j2n5y
五、解压vmware802fixlinux320.tar.bz2,修改patch-modules_3.2.0.sh文件
在第7行,将vmreqver=8.0.2改为vmreqver=8.0.3,保存退出
因为这个补丁是针对8.0.2版本的,8.0.3版本直接运行这个的话是没有作用的。
六、以root权限运行patch-modules_3.2.0.sh
打开终端,利用“cd”命令进入patch-modules_3.2.0.sh所在文件目录下,并输入以下命令
[plain]  
sudo ./patch-modules_3.2.0.sh  
七、运行 ,安装VMware Workstation8.0.3,基本上一直next就行
八、安装完后,若想修改VMware Workstation的全局设置,需要以root运行程序
首先要进入VMware Workstation运行文件所在目录,默认是在“文件系统”里(文件系统是类似windows的c盘里的window文件夹),具体位置是:/usr/bin/vmware
可以通过“主文件夹”进入,也可以通过终端进入,终端命令如下:
[plain]  
<pre name="code" class="plain">cd ../  
cd ../  
cd usr  
cd bin  
sudo ./vmware  
 
九、卸载VMware Workstation的方法
卸载VMware Workstation从“Ubuntu软件中心”是找不到的(我是没找到),那么卸载的方法其实跟第七步是类似的
首先要进入VMware Workstation卸载文件所在目录,同样是在“文件系统”里的“/usr/bin/”目录下,卸载我们只能通过终端来运行,命令如下:
[plain]  
cd ../  
cd ../    www.2cto.com  
cd usr  
cd bin  
sudo ./vmware-uninstall  
 
好啦,以上就是我关于Ubuntu下安装VMware Workstation8.0.3的一些心得,希望能给需要用的朋友一些帮助。
 

 
作者 wangpeng047

posted @ 2012-07-25 11:06 拉风 阅读(306) | 评论 (0)编辑 收藏

Debian中设置sudo

    安装好Debian后还不能使用sudo

    如果没有安装sudo,则在root用户下apt-get install sudo

    在root设置sudoers配制文件

    chmod +w /etc/sudoers

    vim /etc/sudoers

    添加一行 username ALL=(ALL) ALL

    其中username是你的用户名,保存

    更改sudoers文件权限 chmod 0440 /etc/sudoers

    退出root

posted @ 2012-07-25 11:06 拉风 阅读(362) | 评论 (0)编辑 收藏

debian root 密码破解

1/debian linux 系统密码破解

  1.在grub选项菜单’Debian GNU/Linux,...(recovery mode)’,按e进入编辑模式

  2.编辑kernel那行面的 ro single 改成 rw single init=/bin/bash,按b执行重启

  3.进入后执行下列命令

  root@(none)#mount -a

  root@(none)#passwd root

  root@(none)#reboot




2/debian linux系统密码破解
  1、在Grub的引导装载程序菜单上,选择你要进入的条目,键入 “e” 来进入编辑模式;
  2、在第二行(类似于kernel /vmlinuz-2.6.15 ro root=/dev/hda2 ),键入”e”进入编辑模式;
  3、在句末加上”init=/bin/bash”,回车;
  4、按“b”启动系统.
  这样我们即可获得一个bash的shell,进入shell后,根分区的挂载模式默认是只读,我们要将其改为可写,否则不能更改root密码:
  mount -no remount,rw /
  passwd root
  sync
  mount -no remount,ro /
  reboot
  这样即可成功更改debian的root用户的密码.

posted @ 2012-07-25 11:05 拉风 阅读(564) | 评论 (0)编辑 收藏

expect 讲解

使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。  

  

  

  

脚本代码如下:  

  

##############################################  

  

#!/usr/bin/expect  

  

set timeout 30  

  

spawn ssh -l username 192.168.1.1  

  

expect "password:"  

  

send "ispass/r"  

  

interact  

  

##############################################  

  

  

  

1. [#!/usr/bin/expect]  

  

这一行告诉操作系统脚本里的代码使用那一个shell来执行。这里的expect其实和linux下的bash、windows下的cmd是一类东西。  

  

  

  

注意:这一行需要在脚本的第一行。  

  

  

  

2. [set timeout 30]  

  

基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒  

  

  

  

3. [spawn ssh -l username 192.168.1.1]  

  

spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命令的。所以不要用 “which spawn“之类的命令去找spawn命令。好比windows里的dir就是一个内部命令,这个命令由shell自带,你无法找到一个dir.com 或 dir.exe 的可执行文件。  

  

它主要的功能是给ssh运行进程加个壳,用来传递交互指令。  

  

  

  

4. [expect "password:"]  

  

这里的expect也是expect的一个内部命令,有点晕吧,expect的shell命令和内部命令是一样的,但不是一个功能,习惯就好了。这个命令的意思是判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的30秒  

  

  

  

5. [send "ispass/r"]  

  

这里就是执行交互动作,与手工输入密码的动作等效。  

  

  

  

温馨提示: 命令字符串结尾别忘记加上 “/r”,如果出现异常等待的状态可以核查一下。  

  

  

  

6. [interact]  

  

执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。如果你只是登录过去执行一段命令就退出,可改为[expect eof]




百度知道解答:

shell脚本 ,在linux 下运行一个shell脚本登陆远程unix 服务器


#!/usr/local/bin/expect


  set timeout 10


  spawn ssh root@ip


  expect "*password*"


  send "123456\r"


  expect "#"


  send "service crond restart\r"


  expect eof



我的脚本:



set timeout 30  

  

spawn ssh -l www-data 192.168.206.120  

  

expect "*password:"  

  

send "123456\r" 


send "\r"


expect "$"


send "mysqldump -uroot -p123456 mysql > /data/webroot/mysql.sql\r"


send "cd\r"


send "tar vzcf mysql.sql.tar.gz mysql.sql\r"


expect eof







#!/usr/bin/expect  


set timeout 30  

  

spawn ssh -l www-data 192.168.206.120  

  

expect "*password:"  

  

send "123456\r" 


send "\r"


expect "$"


send "mysqldump -uroot -p123456 mysql > /data/webroot/mysql.sql\r"


send "cd\r"


send "tar vzcf mysql.sql.tar.gz mysql.sql\r"


send "date\r"


expect eof

wuyao@wuyao-Insp


wuyao@wuyao-Inspiron-1427:~$ cat mysql_download_20120712.sh 

#!/usr/bin/expect


spawn scp www-data@192.168.206.120:/data/webroot/mysql.sql.tar.gz /home/wuyao/


expect "password:"


send "123456\r"


expect "$"


send "mysql -uroot -p123456 mysql < /data/mysql.sql.tar.gz\r"


expect eof




posted @ 2012-07-25 11:04 拉风 阅读(442) | 评论 (0)编辑 收藏

神奇的ps命令详解以及pstree top等管理监控命令

     摘要: ps:将某个时间点的程序运作情况撷取下来?[root@linux ~]# ps aux[root@linux ~]# ps -lA[root@linux ~]# ps axjf参数:-A :所有的 process 均显示出来,与 -e 具有同样的效用;-a&n...  阅读全文

posted @ 2012-07-25 11:03 拉风 阅读(1764) | 评论 (0)编辑 收藏

mysqldump 导出数据库文件出错

mysqldump -uhigh_tv -phigh_tv -hdb199 -P3300 high_tv films > /data/webroot/high_tv.films.120711.sql 

mysqldump: Got error: 1044: Access denied for user 'high_tv'@'192.168.1.%' to database 'high_tv' when doing LOCK TABLES


意思大概是拒绝high_tv用户访问,因为tables 被lock,但是可以用来正常的登陆。。。

所以需要一个命令来解除锁定

--skip-lock-tables



mysqldump -uhigh_tv -phigh_tv -hdb199 -P3300 --skip-lock-tables high_tv films > /data/webroot/high_tv.films.120711.sql

posted @ 2012-07-25 11:02 拉风 阅读(366) | 评论 (0)编辑 收藏

LINUX任务(jobs)详解

LINUX任务(jobs)详解

在用管理员执行一个命令后,用Ctrl+Z把命令转移到了后台。导致无法退出root的。


输入命令:exit
终端显示:There are stopped jobs.

解决方法:
方法一、输入命令:jobs
终端显示:[1]+ Stopped vim /etc/network/interfaces > /home/leo/Desktop/ip.txt (wd: /)

KILL %1

方法二、输入命令:jobs -l
终端显示:[1]+ 4664 停止 vim /etc/network/interfaces > /home/leo/Desktop/ip.txt (wd: /)

看到4664,这个就是PID了

现在开始杀掉它:
输入命令:kill 4664
终端没有显示。ok。

再用jobs命令查看,确认已经杀掉了

Linux Jobs等前后台运行命令解

A,Shell支持作用控制,有以下命令: 
1. command& 让进程在后台运行 
2. jobs 查看后台运行的进程 
3. fg %n 让后台运行的进程n到前台来 
4. bg %n 让进程n到后台去;   
PS:"n"为jobs查看到的进程编号.

posted @ 2012-07-25 11:02 拉风 阅读(479) | 评论 (0)编辑 收藏

[Debian]alias 用法及配置

    alias是一个非常有用的配置,在linux中,通过alias可以把一些常用但是又比较长的指令用一些简写代替。比如ls -al简写成ll,还有就是一些比较危险的指令最好加一个显示提示的选项,比如在rm的时候默认提示是否要删除等等,这些命令和设置都是非常好用的。

设置很简单,只要在 终端输入

$ alias ll='ls -al'

    这样输入ll就显示的是ls -al的效果,很不错吧。但是这样有个问题就是,如果下次登入的时候,设置还是回到以前,怎么办?其实这样修改用户根目录下一个文件就可以了。

$ vim .bashrc(这里注明一下,因为我发觉vim这个比默认的vi好用,其实你用vi也是一样的效果,)

然后把下面几行

# some more ls aliases
alias ll='ls -al'
alias la='ls -A'
alias rm='rm -i'
alias l='ls -CF'
修改成需要的就可以了,注意前面如果有#的要删除,不然就被注释掉拉。上面是我的alias设定,你也可以结合自己需要配置自己的alias方式

posted @ 2012-07-25 11:01 拉风 阅读(632) | 评论 (0)编辑 收藏

解决apt-get的E: Could not get lock /var/lib/dpkg/lock方法

使用apt-get进行软件的install或update时,有时会出现以下提示信息:
E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

原因是有可能有其他的apt-get进程在活动。
解决办法,把apt-get进程找出来,杀死!
ps aux | grep apt-get
sudo kill -9 <PID>

如果再次执行apt-get,还是有这样情况出现,删除/var/lib/dpkg/lock文件,即可。

posted @ 2012-07-25 11:00 拉风 阅读(443) | 评论 (0)编辑 收藏

仅列出标题  下一页
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜