今天碰到一個問題,安全部分說我們機器8000端口一直處理LISTEN狀態,讓我查一下是哪個進程,需要解除這個狀態,要確認是哪個進程在監聽這個8000端口,我首先adb shell之後使用netstatus
root@p92s_hd:/ # netstat
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5037 0.0.0.0:* LISTEN
可以看到裏面有8000和5037端口在被使用,5037是adb, 8000是什麼呢
然後我就用cat /proc/net/tcp看了一下
root@p92s_hd:/ # cat /proc/net/tcp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:1F40 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 36594 1 0000000000000000 100 0 0 10 0
1: 0100007F:13AD 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 35288 1 0000000000000000 100 0 0 10 0
看到uid是0的時候我一下子就尷尬了,根據系統定義這是root啊,這東西ps看能有幾十個吧,根本確定不了用哪個,沒辦法只能用busybox工具來看了,
首先下載busybox,在這裏根據機器型號自己選擇,下載的時候先點進去自己要下載的,然後再右鍵保存。
- 將文件名字改成busybox,不要後綴
- adb push 到手機,比如 adb push ~/Download/busybox /sdcard
- 把busybox 複製到xbin下,首先 adb shell 然後cp /sdcard/busybox /system/xbin/(記住機器要adb remount)
- 修改busybox的執行權限 cd /system/xbin/ 然後 chmod 777 busybox sync 同步一下
- 然後驗證一下 busybox vi
好了,下面就可以看8000是哪個程序再使用了
root@p92s_hd:/system/xbin # busybox netstat -tlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 264/htfsk
tcp 0 0 localhost:5037 0.0.0.0:* LISTEN 2583/adbd