要查看linux中某個用戶從哪個ip登錄過,可通過last命令結合過濾實現。具體步驟:1.使用last 用戶名查看指定用戶登錄記錄,第三列為ip;2.結合grep過濾特定ip,如last 用戶名 | grep “ip”;3.用last | grep “ip”反向查哪些用戶曾用該ip登錄;4.通過last | awk ‘{print $1, $3}’提取用戶名和ip字段;5.用last | awk ‘{print $3}’ | sort | uniq列出所有去重的登錄ip。注意:本地登錄顯示為:0或localhost,跳板機登錄需結合/var/log/secure分析,建議用sudo執行確保權限。
查看linux用戶登錄IP,尤其是想找出某個用戶從哪個IP登錄過,其實不算難。last 命令是常用的工具之一,但默認輸出信息多、雜,直接看容易眼花。其實只要掌握幾個過濾和組合技巧,就能快速定位目標IP。
last命令基礎:看哪些用戶登錄過
last 命令默認會列出所有用戶的登錄記錄,包括終端、IP、登錄時間等信息。比如:
last | head -20
你會看到類似這樣的輸出:
user1 pts/0 192.168.1.100 Mon Jul 1 10:00 - 10:30 (00:30) user2 pts/1 10.0.0.5 Sun Jun 30 15:00 - 15:45 (00:45) reboot system boot 5.4.0-122-generi Sun Jun 30 14:55
重點看第三列,就是登錄的IP地址。如果你只想查某一個用戶,可以直接加用戶名作為參數:
last user1
這樣就能只看 user1 的登錄記錄了。
結合grep過濾IP:縮小范圍找特定登錄來源
如果你想查找某個用戶從特定IP登錄的歷史記錄,可以結合 grep 使用:
last user1 | grep "192.168.1.100"
這條命令的意思是:在 user1 的登錄記錄里,篩選出包含 192.168.1.100 的行。
也可以反過來,先不管用戶是誰,只想知道某個IP有沒有登錄過:
last | grep "10.0.0.5"
這種方式適合排查可疑登錄行為,或者確認某個外部IP是否連接過服務器。
高級用法:配合awk提取關鍵字段
有時候你可能只需要IP和用戶名,不需要其他信息。可以用 awk 提取關鍵字段:
last | awk '{print $1, $3}'
這樣輸出就只有用戶名和IP兩列,更直觀。
如果還想進一步去重,看看有哪些不同的IP登錄過:
last | awk '{print $3}' | sort | uniq
這段命令會列出所有出現過的登錄IP,并去重顯示。
小技巧提醒:注意IP偽裝和本地登錄
有些時候你可能會看到像 :0 或者 localhost 這樣的登錄記錄,這些通常是本地圖形界面登錄,沒有實際IP。
還有一些可能是通過跳板機或代理登錄的,這時候顯示的是中間服務器的IP,不是最終來源。這種情況下需要結合其他日志(如 /var/log/secure)來進一步分析。
另外,別忘了權限問題:普通用戶運行 last 可能看不到全部記錄,建議用 sudo 來確保完整數據。
基本上就這些操作了,不復雜但挺實用。熟練使用 last 搭配 grep 和 awk,基本能滿足大多數登錄IP查詢的需求。