背景:需要在windows下共享ubuntu中的文件
安裝過程挺坎坷,還好在下班前解決了。記錄一下遇到的問題。
1.tcp連接建立失敗
在windows下輸入ubuntu的ip地址,根本不顯示內(nèi)容,連接不上,通過抓包發(fā)現(xiàn)tcp連接都沒建立起來,client一直發(fā)syn包,server回復(fù)destination unreachable。想著會不會是ubuntu上有防火墻,通過iptables發(fā)現(xiàn),果然REJECT:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
解決辦法就是在上述規(guī)則之前,打開對445端口的權(quán)限。
需要查看一下為什么會有這些iptables規(guī)則.
2.samba crash
解決完tcp問題之后,發(fā)現(xiàn)還是不行,可以看到文件夾了,但是很不穩(wěn)定,根本不能用。
一通排查之后,在log里發(fā)現(xiàn)了有backtrace,通過查看進程發(fā)現(xiàn),果然samba崩了。這下估計是samba程序本身有問題了,上網(wǎng)發(fā)現(xiàn)確實,由于版本比較低,samba有bug. 重新卸載samba,再把軟件源update,再安裝,一切OK.
dumping core in /var/log/samba/cores/smbd
[2017/08/25 17:44:57.846274,? 0] ../source3/lib/popt_common.c:68(popt_s3_talloc_log_fn)
Bad talloc magic value - unknown value
[2017/08/25 17:44:57.846305,? 0] ../source3/lib/util.c:789(smb_panic_s3)
PANIC (pid 29643): Bad talloc magic value - unknown value
[2017/08/25 17:44:57.846770,? 0] ../source3/lib/util.c:900(log_stack_trace)
BACKTRACE: 28 stack frames:
#0 /usr/lib/x86_64-linux-gnu/samba/libsmbregistry.so.0(log_stack_trace+0x1a) [0x7fc48be871da]
#1 /usr/lib/x86_64-linux-gnu/samba/libsmbregistry.so.0(smb_panic_s3+0x20) [0x7fc48be872b0]
#2 /usr/lib/x86_64-linux-gnu/libsamba-util.so.0(smb_panic+0x2f) [0x7fc48cbfe8df]
#3 /usr/lib/x86_64-linux-gnu/libtalloc.so.2(_talloc_free+0x4de) [0x7fc4899862fe]
#4 /usr/lib/x86_64-linux-gnu/libsamba-util.so.0(+0x1246c) [0x7fc48cbf546c]
#5 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(+0x18b457) [0x7fc48c840457]
#6 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(get_share_mode_lock+0x17e) [0x7fc48c840f1e]
#7 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(+0xfc5be) [0x7fc48c7b15be]
#8 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(+0x100c5c) [0x7fc48c7b5c5c]
#9 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(create_file_default+0x1cf) [0x7fc48c7b70ef]
#10 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(+0x1d962e) [0x7fc48c88e62e]
#11 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(smb_vfs_call_create_file+0xd8) [0x7fc48c7bd928]
#12 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(smbd_smb2_request_process_create+0x1a24) [0x7fc48c7ec244]
#13 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(smbd_smb2_request_dispatch+0xc4d) [0x7fc48c7e3ced]
#14 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(+0x12f972) [0x7fc48c7e4972]
#15 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(run_events_poll+0x16c) [0x7fc48ab1f95c]
#16 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(+0x25bb0) [0x7fc48ab1fbb0]
#17 /usr/lib/x86_64-linux-gnu/libtevent.so.0(_tevent_loop_once+0x8d) [0x7fc489778d5d]
#18 /usr/lib/x86_64-linux-gnu/libtevent.so.0(tevent_common_loop_wait+0x1b) [0x7fc489778efb]
#19 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(smbd_process+0x6c9) [0x7fc48c7d30b9]
#20 smbd(+0x96b6) [0x5628cbad26b6]
#21 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(run_events_poll+0x16c) [0x7fc48ab1f95c]
#22 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(+0x25bb0) [0x7fc48ab1fbb0]
#23 /usr/lib/x86_64-linux-gnu/libtevent.so.0(_tevent_loop_once+0x8d) [0x7fc489778d5d]
#24 /usr/lib/x86_64-linux-gnu/libtevent.so.0(tevent_common_loop_wait+0x1b) [0x7fc489778efb]
#25 smbd(main+0x15b4) [0x5628cbad06c4]
#26 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fc4893d1f45]
#27 smbd(+0x7a96) [0x5628cbad0a96]
[2017/08/25 17:44:57.846831,? 0] ../source3/lib/util.c:801(smb_panic_s3)
smb_panic(): calling panic action [/usr/share/samba/panic-action 29643]
[2017/08/25 17:44:57.848460,? 0] ../source3/lib/util.c:809(smb_panic_s3)
smb_panic(): action returned status 0
本來一個很簡單的共享文件,花費了挺多時間。也學(xué)會了一些解決問題的思路。