iptables

第一章:防火墙介绍

1.常见防火墙选用
  • 硬件防火墙

  • 开源软件:iptables(默认规则改为INPUT DROP)

  • 云服务器:安全组(阿里云 白名单,默认是拒绝的)

2.iptables使用 执行过程
3.iptables 4表5链
4.准备iptables环境
5.iptables功能之一防火墙
  • 封IP 封端口

  • 准许某个ip访问 网段访问

6.iptables功能之内网服务器上外网(共享上网)
7.iptables功能之 端口转发

第二章:常见防火墙选用

  • 公司网站入口使用的硬件 防火墙 、三次路由带有防火墙功能
  • itpables访问量小 C5 C6自带,CentOS 7为Firewalld
  • SELinux

第三章: 相关名词与单词

名词 含义 对比
容器 存放内容/存放东西
Netfilter/iptables 是表的容器 国家
(table) 是用来存放链的容器
(chain) 链 存放规则的容器
规则(policy) 准许/拒绝访问 区/县

第四章:防火墙执行过程

1.  防火墙是层层过滤的,实际是按照配置**规则**的顺序**从上到下**,**从前到后**进行过滤的。
2.  如果**匹配**上规则,即明确表示是阻止(DROP)还是通过(ACCEPT)数据包就**不再向下匹配新的规则。**
3.  如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配,直到匹配**默认规则**得到明确的阻止还是通过。
4.  防火墙的默认规则是所有规则执行完才执行的。
image

第五章:四表五链

5.1 四表及作用

功能
Filter 过滤,默认的表,防火墙功能
NAT 实现NAT转化:1.共享上网 2.端口转发
mangle
raw

5.2 四表中的5链

image
####五链:
PREROUTING
FORWARD
INPUT
OUPUT
POSTROUTING

image
image

5.3 filter表和nat表

image

5.3.1 filter表

filter表 企业工作场景:主机防火墙
INPUT 就是过滤进入主机的数据包
FORWARD 负责转发流经主机的数据包
OUTPUT 就是处理从主机发出去的数据包

5.3.2 nat表

nat表
PREROUTING 处理用户请求中的目的地址 目的端口 端口转发 ip映射
POSTROUTING 处理离开服务器的请求 源端口 源ip :共享上网
OUTPUT 和主机放出去的数据包有关,改变主机发出数据包的目的地址

补充:
filter表:
​​INPUT 作用:用于发送到本地套接字的数据包。
​FORWARD 作用:对于正在通过该框路由的数据包
​OUTPUT 作用:用于本地生成的数据包。

nat表:
 ​PREROUTING 作用:因为他们一进来就改变了包
​OUTPUT 作用:用于在路由之前更改本地划分的数据包。
 ​POSTROUTING 作用:改变包,因为它们即将离开

第六章:防火墙之filter表

6.1环境准备

[root@m01 ~]# rpm -qa iptables-services
iptables-1.4.21-28.el7.x86_64
[root@m01 ~]# rpm -ql iptables-services
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables #iptables 配置文件
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service    #iptables服务管理配置

启动防火墙

[root@m01 ~]# systemctl stop firewalld    #CentOS7关闭firewalld
[root@m01 ~]# systemctl restart iptables
[root@m01 ~]# systemctl enable iptables

手动加载内核模块

[root@m01 ~]# modprobe ip_tables
[root@m01 ~]# modprobe iptable_filter
[root@m01 ~]# modprobe iptable_nat
[root@m01 ~]# modprobe ip_conntrack
[root@m01 ~]# modprobe ip_conntrack_ftp
[root@m01 ~]# modprobe ip_nat_ftp
[root@m01 ~]# modprobe ipt_state

检查防火墙内核模块是否加载成功:

[root@m01 ~]# lsmod |egrep 'nat|ipt|filter'
nf_nat_ftp             12770  0 
nf_conntrack_ftp       18638  1 nf_nat_ftp
ipt_REJECT             12541  2 
nf_reject_ipv4         13373  1 ipt_REJECT
ipt_MASQUERADE         12678  1 
nf_nat_masquerade_ipv4    13412  1 ipt_MASQUERADE
iptable_filter         12810  1 
xt_nat                 12681  2 
iptable_nat            12875  1 
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26787  4 nf_nat_ftp,nf_nat_ipv4,xt_nat,nf_nat_masquerade_ipv4
nf_conntrack          133095  8 nf_nat_ftp,nf_nat,xt_state,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ftp,nf_conntrack_ipv4
ip_tables              27126  2 iptable_filter,iptable_nat
libcrc32c              12644  3 xfs,nf_nat,nf_conntrack

6.2 配置规则-禁止访问22端口

[root@m01 ~]# iptables -F  #清除规则
[root@m01 ~]# iptables -X
[root@m01 ~]# iptables -Z
[root@m01 ~]# iptables -nL #查看规则
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
[root@m01 ~]# #添加一条规则,禁止22端口访问
[root@m01 ~]# iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
[root@m01 ~]# 
Type `help' to learn how to use Xshell prompt.
[d:\~]$    #断开了~跑下机房

删除规则,重新连接m01
[root@m01 ~]# iptables -nL --line-number #查看防火墙规则
[root@m01 ~]# iptables -t filter -D INPUT 1   #删除第1条规则
[root@m01 ~]# iptables -nL --line-number #再次查看

image

重新连接 22端口就可以用了

Type `help' to learn how to use Xshell prompt.
[d:\~]$ 

Connecting to 10.0.0.61:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Tue Jul  2 17:04:55 2019
[root@m01 ~]# 

配置防火墙规则注意事项:
  1. 去机房重启系统或者登陆服务器删除刚才的禁止规则。

  2. 让机房人员重启服务器或者让机房人员拿用户密码登录进去

  3. 通过服务器的远程管理卡管理(推荐)

  4. 先写一个定时任务,每5分钟就停止防火墙**5. 测试环境测试好,写成脚本,批量执行

6.3 filter表其他规则配置

6.3.1 只让10.0.0.0/24网段进行访问连接

只要是10.0.0.0/24 局域网的用户 访问m01 都ACCEPT

此例子主要限制:网段或ip地址

[root@m01 ~]# iptables -A INPUT -p tcp ! -s 10.0.0.0/24 -j DROP   #"!" 叹号表示取反
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  -- !10.0.0.0/24          0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination      

image

去另一台服务器上测试一下是否成功:

[root@db01 ~]# ssh 10.0.0.61  #连接10.0.0.61,可以连接
root@10.0.0.61's password: 
Last login: Tue Jul  2 17:41:01 2019 from 10.0.0.51
[root@m01 ~]# logout  #退出
Connection to 10.0.0.61 closed.
[root@db01 ~]# ssh 172.16.1.61    #连接172.16.1.61,不可以连接
....等到死

image

6.3.2准许或禁止端口

多个端口:表示范围 1-1024范围

[root@m01 ~]# iptables -I INPUT -p tcp ! --dport 1:1024 -j DROP 
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:!1:1024
2    DROP       tcp  -- !10.0.0.0/24          0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination  

多个端口 不连续 80,443,52113,22

[root@m01 ~]# iptables -I INPUT -p tcp -m multiport ! --dport 80,443,22 -j DROP 
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports  !80,443,22
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination  

6.4 iptables命令及参数

iptables
-t 指定表 filter(默认) nat
-A append 把规则追加到末尾
-I (大写字母i ) insert 把规则插入到规则的第1条 (添加拒绝类规则的时候)
-p protocal 指定协议:tcp /udp/icmp
--dport destination port 目标端口
--sport source port 源端口
-d dest ip address 目标ip地址
-s source ip address 源ip地址
-j jump 方法 DROP (拒绝)、 ACCEPT(准许) 、REJECT(拒绝)
iptables查看 删除
-F 清除链中所有规则
-X 清空自定义链的规则
-Z 清空计数器
-n 不要把端口解析服务名字
-L 显示表中的规则
--line-number 给每个链中的规则加上行号
-D 删除规则 根据规则的号码进行删除

第七章: nc命令

##### nc用法:

 **nc -l 指定监听端口**
 
 **nc/telnet 连接**
[root@m01 ~]# nc -l 888 #m01服务器上
晚上好

[root@db01 ~]# nc 10.0.0.61 888 #db01服务器上
晚上好

第八章: 准许或禁止ping

现在是可以ping通的

[root@m01 ~]# ping 10.0.0.61
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
64 bytes from 10.0.0.61: icmp_seq=1 ttl=64 time=0.064 ms
64 bytes from 10.0.0.61: icmp_seq=2 ttl=64 time=0.038 ms
^C
--- 10.0.0.61 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.038/0.051/0.064/0.013 ms
[root@m01 ~]# ping 172.16.1.61
PING 172.16.1.61 (172.16.1.61) 56(84) bytes of data.
64 bytes from 172.16.1.61: icmp_seq=1 ttl=64 time=0.079 ms
64 bytes from 172.16.1.61: icmp_seq=2 ttl=64 time=0.039 ms
^C
--- 172.16.1.61 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.039/0.059/0.079/0.020 ms
[root@m01 ~]# 

添加icmp,禁止ping

[root@m01 ~]# iptables -I INPUT -p icmp --icmp-type any -j DROP     #禁止ping
[root@m01 ~]# 
[root@m01 ~]# ping 10.0.0.61    #ping不通了
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
^C
--- 10.0.0.61 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms

[root@m01 ~]# ping 172.16.1.61  #ping不通了
PING 172.16.1.61 (172.16.1.61) 56(84) bytes of data.
^C
--- 172.16.1.61 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2001ms

[root@m01 ~]# ping 127.0.0.1    #ping不通了
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
^C
--- 127.0.0.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1003ms

第九章:限制访问频率

image
iptables -I INPUT -s 10.0.1.0/24 -p icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 5 -j ACCEPT

第十章:永久保存规则

[root@m01 ~]# cat /etc/sysconfig/iptables   #防火墙的默认规则
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
[root@m01 ~]# iptables-save     #当前的防火墙规则
# Generated by iptables-save v1.4.21 on Wed Jul  3 09:28:21 2019
*filter
:INPUT ACCEPT [93:6196]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [69:7412]
-A INPUT -s 10.0.1.0/24 -p icmp -m icmp --icmp-type 8 -m limit --limit 6/min -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type any -j DROP
COMMIT
# Completed on Wed Jul  3 09:28:21 2019
# Generated by iptables-save v1.4.21 on Wed Jul  3 09:28:21 2019
*nat
:PREROUTING ACCEPT [39:2360]
:INPUT ACCEPT [2:104]
:OUTPUT ACCEPT [44:3050]
:POSTROUTING ACCEPT [44:3050]
-A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source 10.0.0.61
-A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.61
COMMIT
# Completed on Wed Jul  3 09:28:21 2019
[root@m01 ~]# iptables-save   >/etc/sysconfig/iptables
[root@m01 ~]# 
[root@m01 ~]# iptables-restore < /etc/sysconfig/iptables
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     icmp --  10.0.0.0/24          0.0.0.0/0            icmptype 8 limit: avg 6/min burst 5
ACCEPT     icmp --  10.0.1.0/24          0.0.0.0/0            icmptype 8 limit: avg 6/min burst 5
DROP       icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 255

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@m01 ~]# systemctl restart iptables.service 

注意事项:

  • iptables-save >/etc/sysconfig/iptables
  • iptables 是关闭状态 stop/disable
  • 关闭时不要使用iptables -nL查看状态 ,一查看就打开了
  • 查看防火墙状态:systemctl is-active iptables

第11章: 生产环境防火墙配置

1.逛公园:防火墙默认的规则 默认规则都是允许(Chain INPUT (policy ACCEPT))

2.电影院:默认规则是拒绝DROP 凭票进入

image
image
image

允许SSH登录端口进入

[root@m01 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT  

允许机回环Io接口数据流量流出与流入

[root@m01 ~]# iptables -A OUTPUT -o lo -j ACCEPT 
[root@m01 ~]# iptables -A INPUT -i lo -j ACCEPT 

-i input 与 INPUT链一起使用

-o output 与 OUTPUT 链一起使用

准许icmp协议通过

[root@m01 ~]# iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

准许用户使用的端口通过 80,443

#先把信任网段删掉再进行测试
[root@m01 ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
[root@m01 ~]# iptables -A INPUT -p tcp --dport 443 -j ACCEPT 

#俩台虚拟机上测试
[root@m01 ~]# nc -l 80
你好
[root@db01 ~]# telnet 10.0.0.61 80
Trying 10.0.0.61...
Connected to 10.0.0.61.
Escape character is '^]'.
你好

允许用户与服务器建立连接

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

开启信任的IP网段

[root@m01 ~]# iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT 
[root@m01 ~]# iptables -A INPUT -s 172.16.1.0/24 -p all -j ACCEPT 

修改默认规则

[root@m01 ~]# iptables -P INPUT DROP
[root@m01 ~]# iptables -P FORWARD DROP
[root@m01 ~]# iptables -P OUTPUT ACCEPT

查看设置的规则

[root@m01 ~]# iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     all  --  10.0.0.0/24          0.0.0.0/0           
ACCEPT     all  --  172.16.1.0/24        0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

第十二章:NAT 表

nat表
PREROUTING 处理用户请求中的目的地址 目的端口 端口转发 ip映射
POSTROUTING 处理离开服务器的请求 源端口 源ip :**共享上网
OUTPUT 和主机放出去的数据包有关,改变主机发出数据包的目的地址

保存好之前的规则删除

[root@m01 ~]# iptables-save >/root/iptables.rule
[root@m01 ~]# ll iptables.rule 
-rw-r--r-- 1 root root 969 Jul  3 10:33 iptables.rule

跑机房修改默认规则:

image

PREROUTING

image
[root@m01 ~]# #iptables -t nat -A PREROUTING -d 10.0.0.61 -p tcp --dport 8080 -j DNAT --to-destination 10.0.0.51:22
[root@m01 ~]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            10.0.0.61            tcp dpt:8080 to:10.0.0.51:22

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  10.8.0.0/24         !10.8.0.0/24          to:10.0.0.61
SNAT       all  --  172.16.1.0/24        0.0.0.0/0            to:10.0.0.61

[root@m01 ~]# iptables -nL -t nat   #查看nat表
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            10.0.0.61            tcp dpt:9000 to:10.0.0.51:22

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  10.8.0.0/24         !10.8.0.0/24          to:10.0.0.61
SNAT       all  --  172.16.1.0/24        0.0.0.0/0            to:10.0.0.61
[root@m01 ~]# cat /proc/sys/net/ipv4/ip_forward #查看防火墙是否打开
1
[root@m01 ~]# lsmod |egrep 'nat|ipt|filter' #检查
iptable_filter         12810  1 
xt_nat                 12681  3 
iptable_nat            12875  1 
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26787  2 nf_nat_ipv4,xt_nat
nf_conntrack          133095  3 nf_nat,nf_nat_ipv4,nf_conntrack_ipv4
ip_tables              27126  2 iptable_filter,iptable_nat
ipt_REJECT             12541  0 
nf_reject_ipv4         13373  1 ipt_REJECT
libcrc32c              12644  3 xfs,nf_nat,nf_conntrack

#现在连接应该是不通,此刻需要添加一条内核优化
[root@m01 ~]# #第一种方法:
[root@m01 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@m01 ~]# cat /proc/sys/net/ipv4/ip_forward
1
[root@m01 ~]# #第二种方法:
[root@m01 ~]# echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf 

#让其生效
[root@m01 ~]# sysctl -p

POSTROUTING

image
#添加NAT共享上网命令
[root@m01 ~]# iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.61
[root@m01 ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  172.16.1.0/24        0.0.0.0/0            to:10.0.0.61

去db01上关闭网卡eth0

#关闭eth0网卡
[root@db01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=no       #把eth0网卡关闭
IPADDR=10.0.0.51
PREFIX=24
GATEWAY=10.0.0.254
DNS1=10.0.0.254
或者
[root@db01 ~]# ifdown eth0  #暂时将eth0网卡关闭
#可以利用m01进行ssh远程连接db01的内网地址
[root@m01 ~]# ssh 172.16.1.51
Last login: Wed Jul  3 11:12:04 2019 from 10.0.0.1
[root@db01 ~]# 

#修改eth1网卡网关
[root@db01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static
IPADDR=172.16.1.51
PREFIX=24
NAME=eth1
DEVICE=eth1
ONBOOT=yes
GATEWAY=172.16.1.61 #修改网关为m01的内网地址
DNS1=223.5.5.5  #DNS按原理来说会自动分配,如果不通的话就加入此条DNS解析即可
[root@db01 ~]# systemctl restart network    #重启网卡
[root@db01 ~]#
[root@db01 ~]# ping baidu.com   #可以上网了
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=127 time=7.74 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=127 time=11.8 ms
^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 7.249/9.136/11.833/1.812 ms
[root@db01 ~]#

image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容