使用Crash工具查看一个TCP listen sock内存布局实例
利用crash工具,我们可以很方便的查看正在运行内核的一些全局变量的数据结构,如TCP的ehash、bhash哈希桶,全局变量的查看比较简单。Crash工具还允许我们查看调用堆栈内部的局部变量,下面示例查看一个进程的listen sock结构(实际上从file->private_data中查看更为方便)
******@Inspiron:~$nc -lk 45678#接着在另一个终端上运行下面命令root@Inspiron:/home/******$ps -aux | grep 45678- ******
5184 0.0 0.0 9184 816 pts/23 S+ 23:20 0:00 nc -lk 45678root 5187 0.0 0.0 15984 944 pts/20 S+ 23:20 0:00 grep --color=auto 45678root@Inspiron:/home/******$crashcrash 7.1.4Copyright(C)2002-2015 RedHat,Inc.Copyright(C)2004,2005,2006,2010 IBM CorporationCopyright(C)1999-2006 Hewlett-PackardCoCopyright(C)2005,2006,2011,2012 FujitsuLimitedCopyright(C)2006,2007 VA LinuxSystemsJapan K.K.Copyright(C)2005,2011 NEC CorporationCopyright(C)1999,2002,2007 SiliconGraphics,Inc.Copyright(C)1999,2000,2001,2002 MissionCriticalLinux,Inc.This program is free software, covered by the GNU GeneralPublicLicense,and you are welcome to change it and/or distribute copies of it undercertain conditions. Enter"help copying" to see the conditions.This program has absolutely no warranty. Enter"help warranty"for details.GNU gdb (GDB)7.6Copyright(C)2013FreeSoftwareFoundation,Inc.LicenseGPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law. Type"show copying"and "show warranty"for details.This GDB was configured as "x86_64-unknown-linux-gnu"...crash: read error: kernel virtual address: ffffffff81a11e30 type:"cpu_possible_mask"crash: this kernel may be configured with CONFIG_STRICT_DEVMEM, whichrenders /dev/mem unusable as a live memory source.crash: trying /proc/kcore as an alternative to /dev/memKERNEL:/lib/modules/4.4.13+/build/vmlinuxDUMPFILE:/proc/kcoreCPUS:4DATE:MonNov 723:20:532016UPTIME:02:28:15LOAD AVERAGE:1.10,0.86,0.77TASKS:663NODENAME: ******-Inspiron-N5010RELEASE:4.4.13+VERSION:#5 SMP Sat Nov 5 15:51:12 CST 2016MACHINE: x86_64 (2526Mhz)MEMORY:3.9 GBPID:5191COMMAND:"crash"TASK: ffff88006fc80000 [THREAD_INFO: ffff8800672bc000]CPU:1STATE: TASK_RUNNING (ACTIVE)crash>set pid 5184set: invalid task or pid value: pidPID:5184COMMAND:"nc"TASK: ffff880035687080 [THREAD_INFO: ffff88006ca34000]CPU:2STATE: TASK_INTERRUPTIBLEcrash> btPID:5184 TASK: ffff880035687080 CPU:2 COMMAND:"nc"#0 [ffff88006ca37ca0] __schedule at ffffffff81825b8e#1 [ffff88006ca37cf0] schedule at ffffffff81826275#2 [ffff88006ca37d08] schedule_timeout at ffffffff81829395#3 [ffff88006ca37db8] inet_csk_accept at ffffffff81766b8b#4 [ffff88006ca37e30] inet_accept at ffffffff8179897c#5 [ffff88006ca37e68] SYSC_accept4 at ffffffff816fe523#6 [ffff88006ca37f40] sys_accept at ffffffff81700110#7 [ffff88006ca37f50] entry_SYSCALL_64_fastpath at ffffffff8182a372RIP:00007fb0c2b504b0 RSP:00007ffd3bde40c8 RFLAGS:00000246RAX: ffffffffffffffda RBX:0000000001978010 RCX:00007fb0c2b504b0RDX:00007ffd3bde4154 RSI:00007ffd3bde41e0 RDI:0000000000000003RBP:0000000000000000 R8:0000000000000000 R9:0000000000000000R10:000000000000071a R11:0000000000000246 R12:0000000000000005R13:0000000000405a21 R14:0000000000000000 R15:0000000000000000ORIG_RAX:000000000000002b CS:0033 SS:002bcrash> bt -fPID:5184 TASK: ffff880035687080 CPU:2 COMMAND:"nc"#0 [ffff88006ca37ca0] __schedule at ffffffff81825b8effff88006ca37ca8: ffffffff811e9d79 ffff880132818c80ffff88006ca37cb8: ffff880035687080 ffff88006ca38000ffff88006ca37cc8: ffff88006ca37e3c 7fffffffffffffffffff88006ca37cd8: ffff880035687080 ffff880106ad8780ffff88006ca37ce8: ffff88006ca37d00 ffffffff81826275#1 [ffff88006ca37cf0] schedule at ffffffff81826275ffff88006ca37cf8:7fffffffffffffff ffff88006ca37db0ffff88006ca37d08: ffffffff81829395#2 [ffff88006ca37d08] schedule_timeout at ffffffff81829395ffff88006ca37d10:7fffffffffffffff ffffffff81d6021dffff88006ca37d20:00000000000000000000000000000000ffff88006ca37d30:00000000000000000000000000000000ffff88006ca37d40:00000000000000000000000600000001ffff88006ca37d50:00000000000000000000000000000246ffff88006ca37d60:7fffffffffffffff ffff88006ca37d78ffff88006ca37d70: ffffffff81829eae 0000000028c4ff93ffff88006ca37d80: ffffffff817033ad 7fffffffffffffffffff88006ca37d90: ffff88006ca37e3c 7fffffffffffffffffff88006ca37da0: ffff880035687080 ffff880106ad8780ffff88006ca37db0: ffff88006ca37e28 ffffffff81766b8b#3 [ffff88006ca37db8] inet_csk_accept at ffffffff81766b8bffff88006ca37dc0: ffff880035687080 ffff880035687080ffff88006ca37dd0:0000000000000001 ffff880035687080ffff88006ca37de0: ffffffff810c2a80 ffff88006c990908ffff88006ca37df0: ffff88006c990908 0000000028c4ff93ffff88006ca37e00: ffff88009a505b80 ffff88009a505400ffff88006ca37e10:000000000000000400007ffd3bde41e0ffff88006ca37e20: ffff88009a505400 ffff88006ca37e60#从inet_csk_accept反汇编代码中可以确定listen sock存储与R15寄存器,在函数调用过程中,R15寄存器存于调用堆栈中,如下代码push %r15crash> dis -l schedule_timeout/home/******/MyRes/linux-source-4.4.0/kernel/time/timer.c:14940xffffffff818291e0<schedule_timeout>: data32 data32 data32 xchg %ax,%ax [FTRACE NOP]0xffffffff818291e5<schedule_timeout+5>: push %rbp0xffffffff818291e6<schedule_timeout+6>: mov %rsp,%rbp0xffffffff818291e9<schedule_timeout+9>: push %r150xffffffff818291eb<schedule_timeout+11>: push %r140xffffffff818291ed<schedule_timeout+13>: push %r130xffffffff818291ef<schedule_timeout+15>: push %r120xffffffff818291f1<schedule_timeout+17>: push %rbx0xffffffff818291f2<schedule_timeout+18>: and $0xfffffffffffffff0,%rsp0xffffffff818291f6<schedule_timeout+22>: sub $0x70,%rsp0xffffffff818291fa<schedule_timeout+26>: mov %gs:0x28,%rax0xffffffff81829203<schedule_timeout+35>: mov %rax,0x68(%rsp)0xffffffff81829208<schedule_timeout+40>: xor %eax,%eax/home/******/MyRes/linux-source-4.4.0/kernel/time/timer.c:14980xffffffff8182920a<schedule_timeout+42>: movabs $0x7fffffffffffffff,%rax0xffffffff81829214<schedule_timeout+52>: cmp %rax,%rdi0xffffffff81829217<schedule_timeout+55>: je 0xffffffff8182938c<schedule_timeout+428>/home/******/MyRes/linux-source-4.4.0/kernel/time/timer.c:15180xffffffff8182921d<schedule_timeout+61>: test %rdi,%rdi0xffffffff81829220<schedule_timeout+64>: js 0xffffffff81829422<schedule_timeout+578>/home/******/MyRes/linux-source-4.4.0/kernel/time/timer.c:1527#从bt -f显示的调用堆栈中确定在运行inet_csk_accept函数的时候,R15寄存器的值为ffff880106ad8780,取出listen sock地址crash> struct sock ffff880106ad8780struct sock {__sk_common ={{skc_addrpair =0,{skc_daddr =0,skc_rcv_saddr =0}},{skc_hash =0,skc_u16hashes ={0,0}},{skc_portpair =2993553408,{skc_dport =0,skc_num =45678}},skc_family =2,skc_state =10'\n',skc_reuse =1'\001',skc_reuseport =0'\000',skc_ipv6only =0'\000',skc_net_refcnt =1'\001',debug =0'\000',skc_bound_dev_if =0,{skc_bind_node ={next =0x0,pprev =0xffff88006c9909e8},skc_portaddr_node ={next =0x0,pprev =0xffff88006c9909e8}},skc_prot =0xffffffff81efa160<tcp_prot>,skc_net ={net =0xffffffff81ef3e00<init_net>},skc_v6_daddr ={in6_u ={u6_addr8 ="\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",u6_addr16 ={0,0,0,0,0,0,0,0},u6_addr32 ={0,0,0,0}}},skc_v6_rcv_saddr ={in6_u ={u6_addr8 ="\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",u6_addr16 ={0,0,0,0,0,0,0,0},u6_addr32 ={0,0,0,0}}},skc_cookie ={counter =0},{skc_flags =768,skc_listener =0x300,skc_tw_dr =0x300},skc_dontcopy_begin =0xffff880106ad87e8,{skc_node ={next =0x4000000d,pprev =0xffffffff821f61a8<tcp_hashinfo+168>},skc_nulls_node ={next =0x4000000d,pprev =0xffffffff821f61a8<tcp_hashinfo+168>}},skc_tx_queue_mapping =-1,{skc_incoming_cpu =-1,skc_rcv_wnd =4294967295,skc_tw_rcv_nxt =4294967295},skc_refcnt ={counter =1},skc_dontcopy_end =0xffff880106ad8804,{skc_rxhash =0,skc_window_clamp =0,skc_tw_snd_nxt =0}},sk_lock ={slock ={{rlock ={raw_lock ={val ={counter =0}}}}},owned =0,wq ={lock ={{rlock ={raw_lock ={val ={counter =0}}}}},task_list ={next =0xffff880106ad8818,prev =0xffff880106ad8818}}},sk_receive_queue ={next =0xffff880106ad8828,prev =0xffff880106ad8828,qlen =0,lock ={{rlock ={raw_lock ={val ={counter =0}}}}}},sk_backlog ={rmem_alloc ={counter =0},len =0,head =0x0,tail =0x0},sk_forward_alloc =0,sk_txhash =0,sk_napi_id =0,sk_ll_usec =0,sk_drops ={counter =0},sk_rcvbuf =87380,sk_filter =0x0,{sk_wq =0xffff88006c990900,sk_wq_raw =0xffff88006c990900},sk_policy ={0x0,0x0},sk_rx_dst =0x0,sk_dst_cache =0x0,sk_wmem_alloc ={counter =1},sk_omem_alloc ={counter =0},sk_sndbuf =16384,sk_write_queue ={next =0xffff880106ad88b0,prev =0xffff880106ad88b0,qlen =0,lock ={{rlock ={raw_lock ={val ={counter =0}}}}}},sk_shutdown =0,sk_no_check_tx =0,sk_no_check_rx =0,sk_userlocks =8,sk_protocol =6,sk_type =1,sk_wmem_queued =0,sk_allocation =37748928,sk_pacing_rate =4294967295,sk_max_pacing_rate =4294967295,sk_route_caps =0,sk_route_nocaps =0,sk_gso_type =0,sk_gso_max_size =0,sk_gso_max_segs =0,sk_rcvlowat =1,sk_lingertime =0,sk_error_queue ={next =0xffff880106ad8908,prev =0xffff880106ad8908,qlen =0,lock ={{rlock ={raw_lock ={val ={counter =0}}}}}},sk_prot_creator =0xffffffff81efa160<tcp_prot>,sk_callback_lock ={raw_lock ={cnts ={counter =0},wait_lock ={val ={counter =0}}}},sk_err =0,sk_err_soft =0,sk_ack_backlog =0,sk_max_ack_backlog =1,sk_priority =0,sk_cgrp_prioidx =1,sk_peer_pid =0x0,sk_peer_cred =0x0,sk_rcvtimeo =9223372036854775807,sk_sndtimeo =9223372036854775807,sk_timer ={entry ={next =0x0,pprev =0x0},expires =0,function=0xffffffff8177d710<tcp_keepalive_timer>,data =18446612136721221504,flags =2,slack =-1,start_pid =-1,start_site =0x0,start_comm ="\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},sk_stamp ={tv64 =-1000000000},sk_tsflags =0,sk_tskey =0,sk_socket =0xffff88009a505b80,sk_user_data =0x0,sk_frag ={page =0x0,offset =0,size =0},sk_send_head =0x0,sk_peek_off =-1,sk_write_pending =0,sk_security =0xffff88006caaf340,sk_mark =0,sk_classid =0,sk_cgrp =0x0,sk_state_change =0xffffffff81701ee0<sock_def_wakeup>,sk_data_ready =0xffffffff81702930<sock_def_readable>,sk_write_space =0xffffffff8170f670<sk_stream_write_space>,sk_error_report =0xffffffff81702840<sock_def_error_report>,sk_backlog_rcv =0xffffffff81781da0<tcp_v4_do_rcv>,sk_destruct =0xffffffff817998f0<inet_sock_destruct>}crash> struct inet_connection_sock ffff880106ad8780struct inet_connection_sock {icsk_inet ={sk ={__sk_common ={{skc_addrpair =0,{skc_daddr =0,skc_rcv_saddr =0}},{skc_hash =0,skc_u16hashes ={0,0}},{skc_portpair =2993553408,{skc_dport =0,skc_num =45678}},skc_family =2,skc_state =10'\n',skc_reuse =1'\001',skc_reuseport =0'\000',skc_ipv6only =0'\000',skc_net_refcnt =1'\001',debug =0'\000',skc_bound_dev_if =0,{skc_bind_node ={next =0x0,pprev =0xffff88006c9909e8},skc_portaddr_node ={next =0x0,pprev =0xffff88006c9909e8}},skc_prot =0xffffffff81efa160<tcp_prot>,skc_net ={net =0xffffffff81ef3e00<init_net>},skc_v6_daddr ={in6_u ={u6_addr8 ="\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",u6_addr16 ={0,0,0,0,0,0,0,0},u6_addr32 ={0,0,0,0}}},skc_v6_rcv_saddr ={in6_u ={u6_addr8 ="\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",u6_addr16 ={0,0,0,0,0,0,0,0},u6_addr32 ={0,0,0,0}}},skc_cookie ={counter =0},{skc_flags =768,skc_listener =0x300,skc_tw_dr =0x300},skc_dontcopy_begin =0xffff880106ad87e8,{skc_node ={next =0x4000000d,pprev =0xffffffff821f61a8<tcp_hashinfo+168>},skc_nulls_node ={next =0x4000000d,pprev =0xffffffff821f61a8<tcp_hashinfo+168>}},skc_tx_queue_mapping =-1,{skc_incoming_cpu =-1,skc_rcv_wnd =4294967295,skc_tw_rcv_nxt =4294967295},skc_refcnt ={counter =1},skc_dontcopy_end =0xffff880106ad8804,{skc_rxhash =0,skc_window_clamp =0,skc_tw_snd_nxt =0}},sk_lock ={slock ={{rlock ={raw_lock ={val ={counter =0}}}}},owned =0,wq ={lock ={{rlock ={raw_lock ={val ={counter =0}}}}},task_list ={next =0xffff880106ad8818,prev =0xffff880106ad8818}}},sk_receive_queue ={next =0xffff880106ad8828,prev =0xffff880106ad8828,qlen =0,lock ={{rlock ={raw_lock ={val ={counter =0}}}}}},sk_backlog ={rmem_alloc ={counter =0},len =0,head =0x0,tail =0x0},sk_forward_alloc =0,sk_txhash =0,sk_napi_id =0,sk_ll_usec =0,sk_drops ={counter =0},sk_rcvbuf =87380,sk_filter =0x0,{sk_wq =0xffff88006c990900,sk_wq_raw =0xffff88006c990900},sk_policy ={0x0,0x0},sk_rx_dst =0x0,sk_dst_cache =0x0,sk_wmem_alloc ={counter =1},sk_omem_alloc ={counter =0},sk_sndbuf =16384,sk_write_queue ={next =0xffff880106ad88b0,prev =0xffff880106ad88b0,qlen =0,lock ={{rlock ={raw_lock ={val ={counter =0}}}}}},sk_shutdown =0,sk_no_check_tx =0,sk_no_check_rx =0,sk_userlocks =8,sk_protocol =6,sk_type =1,sk_wmem_queued =0,sk_allocation =37748928,sk_pacing_rate =4294967295,sk_max_pacing_rate =4294967295,sk_route_caps =0,sk_route_nocaps =0,sk_gso_type =0,sk_gso_max_size =0,sk_gso_max_segs =0,sk_rcvlowat =1,sk_lingertime =0,sk_error_queue ={next =0xffff880106ad8908,prev =0xffff880106ad8908,qlen =0,lock ={{rlock ={raw_lock ={val ={counter =0}}}}}},sk_prot_creator =0xffffffff81efa160<tcp_prot>,sk_callback_lock ={raw_lock ={cnts ={counter =0},wait_lock ={val ={counter =0}}}},sk_err =0,sk_err_soft =0,sk_ack_backlog =0,sk_max_ack_backlog =1,sk_priority =0,sk_cgrp_prioidx =1,sk_peer_pid =0x0,sk_peer_cred =0x0,sk_rcvtimeo =9223372036854775807,sk_sndtimeo =9223372036854775807,sk_timer ={entry ={next =0x0,pprev =0x0},expires =0,function=0xffffffff8177d710<tcp_keepalive_timer>,data =18446612136721221504,flags =2,slack =-1,start_pid =-1,start_site =0x0,start_comm ="\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},sk_stamp ={tv64 =-1000000000},sk_tsflags =0,sk_tskey =0,sk_socket =0xffff88009a505b80,sk_user_data =0x0,sk_frag ={page =0x0,offset =0,size =0},sk_send_head =0x0,sk_peek_off =-1,sk_write_pending =0,sk_security =0xffff88006caaf340,sk_mark =0,sk_classid =0,sk_cgrp =0x0,sk_state_change =0xffffffff81701ee0<sock_def_wakeup>,sk_data_ready =0xffffffff81702930<sock_def_readable>,sk_write_space =0xffffffff8170f670<sk_stream_write_space>,sk_error_report =0xffffffff81702840<sock_def_error_report>,sk_backlog_rcv =0xffffffff81781da0<tcp_v4_do_rcv>,sk_destruct =0xffffffff817998f0<inet_sock_destruct>},pinet6 =0x0,inet_saddr =0,uc_ttl =-1,cmsg_flags =0,inet_sport =28338,inet_id =0,inet_opt =0x0,rx_dst_ifindex =0,tos =0'\000',min_ttl =0'\000',mc_ttl =1'\001',pmtudisc =1'\001',recverr =0'\000',is_icsk =1'\001',freebind =0'\000',hdrincl =0'\000',mc_loop =1'\001',transparent =0'\000',mc_all =1'\001',nodefrag =0'\000',bind_address_no_port =0'\000',rcv_tos =0'\000',convert_csum =0'\000',uc_index =0,mc_index =0,mc_addr =0,mc_list =0x0,cork ={base ={flags =0,addr =0,opt =0x0,fragsize =0,length =0,dst =0x0,tx_flags =0'\000',ttl =0'\000',tos =0,priority =0'\000'},fl ={u ={__fl_common ={flowic_oif =0,flowic_iif =0,flowic_mark =0,flowic_tos =0'\000',flowic_scope =0'\000',flowic_proto =0'\000',flowic_flags =0'\000',flowic_secid =0,flowic_tun_key ={tun_id =0}},ip4 ={__fl_common ={flowic_oif =0,flowic_iif =0,flowic_mark =0,flowic_tos =0'\000',flowic_scope =0'\000',flowic_proto =0'\000',flowic_flags =0'\000',flowic_secid =0,flowic_tun_key ={tun_id =0}},saddr =0,daddr =0,uli ={ports ={dport =0,sport =0},icmpt ={type =0'\000',code =0'\000'},dnports ={dport =0,sport =0},spi =0,gre_key =0,mht ={type =0'\000'}}},ip6 ={__fl_common ={flowic_oif =0,flowic_iif =0,flowic_mark =0,flowic_tos =0'\000',flowic_scope =0'\000',flowic_proto =0'\000',flowic_flags =0'\000',flowic_secid =0,flowic_tun_key ={tun_id =0}},daddr ={in6_u ={u6_addr8 ="\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",u6_addr16 ={0,0,0,0,0,0,0,0},u6_addr32 ={0,0,0,0}}},saddr ={in6_u ={u6_addr8 ="\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",u6_addr16 ={0,0,0,0,0,0,0,0},u6_addr32 ={0,0,0,0}}},flowlabel =0,uli ={ports ={dport =0,sport =0},icmpt ={type =0'\000',code =0'\000'},dnports ={dport =0,sport =0},spi =0,gre_key =0,mht ={type =0'\000'}}},dn ={__fl_common ={flowic_oif =0,flowic_iif =0,flowic_mark =0,flowic_tos =0'\000',flowic_scope =0'\000',flowic_proto =0'\000',flowic_flags =0'\000',flowic_secid =0,flowic_tun_key ={tun_id =0}},daddr =0,saddr =0,uli ={ports ={dport =0,sport =0},icmpt ={type =0'\000',code =0'\000'},dnports ={dport =0,sport =0},spi =0,gre_key =0,mht ={type =0'\000'}}}}}}},icsk_accept_queue ={rskq_lock ={{rlock ={raw_lock ={val ={counter =0}}}}},rskq_defer_accept =0'\000',synflood_warned =0,qlen ={counter =0},young ={counter =0},rskq_accept_head =0x0,rskq_accept_tail =0x0,fastopenq ={rskq_rst_head =0x0,rskq_rst_tail =0x0,lock ={{rlock ={raw_lock ={val ={counter =0}}}}},qlen =0,max_qlen =0}},icsk_bind_hash =0xffff88006c9909c0,icsk_timeout =0,icsk_retransmit_timer ={entry ={next =0x0,pprev =0x0},expires =0,function=0xffffffff8177e850<tcp_write_timer>,data =18446612136721221504,flags =2,slack =-1,start_pid =-1,start_site =0x0,start_comm ="\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},icsk_delack_timer ={entry ={next =0x0,pprev =0x0},expires =0,function=0xffffffff8177dd10<tcp_delack_timer>,data =18446612136721221504,flags =2,slack =-1,start_pid =-1,start_site =0x0,start_comm ="\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},icsk_rto =250,icsk_pmtu_cookie =0,icsk_ca_ops =0xffffffff81f3e2e0<cubictcp>,icsk_af_ops =0xffffffff81ac1fc0<ipv4_specific>,icsk_sync_mss =0xffffffff81778240<tcp_sync_mss>,icsk_ca_state =0'\000',icsk_ca_setsockopt =0'\000',icsk_ca_dst_locked =0'\000',icsk_retransmits =0'\000',icsk_pending =0'\000',icsk_backoff =0'\000',icsk_syn_retries =0'\000',icsk_probes_out =0'\000',icsk_ext_hdr_len =0,icsk_ack ={pending =0'\000',quick =0'\000',pingpong =0'\000',blocked =0'\000',ato =0,timeout =0,lrcvtime =0,last_seg_size =0,rcv_mss =0},icsk_mtup ={enabled =0,search_high =0,search_low =0,probe_size =0,probe_timestamp =0},icsk_user_timeout =0,icsk_ca_priv ={0,0,0,0,0,0,0,0}}crash>crash>crash>crash>crash>

浙公网安备 33010602011771号