【问题标题】:How can I know which ports are open on my android device and how to close them?我如何知道我的安卓设备上打开了哪些端口以及如何关闭它们?
【发布时间】:2014-04-11 20:57:39
【问题描述】:

有没有一种简单的方法可以查看我的 Android 设备上打开了哪些端口以及关闭打开的端口的方法?

【问题讨论】:

    标签: android ports


    【解决方案1】:
    1. 在手机上创建 wifi 热点
    2. 将您的计算机连接到热点
    3. 使用 ipconfig 或 ifconfig 知道网关 IP 地址(即:您手机的 IP 地址)
    4. 下载nmap:http://nmap.org/
    5. 使用 nmap 命令:nmap -sS -Pn -p- your_phone_ip_adress

    打开的 TCP 端口如下所示:


    65531 关闭端口 PORT
    国家服务
    53/tcp 开放域
    8187/tcp 打开未知
    38647/tcp 打开未知
    42761/tcp 打开 未知 MAC 地址:A4:9A:58:::**(三星电子公司)


    • PS:对于 UDP 端口,请使用:nmap -sU -Pn -p- your_phone_ip_adress

    【讨论】:

    • 我猜这里的列表是 TCP 开放端口的结果。您能否发布 UDP 的结果,以便每个人都可以方便地使用,而不是自己设置环境和发短信?
    • 如果步骤1-3只是确定设备的IP地址,也可以开启USB调试,运行adb shell ip addr查看wlan0接口的地址,如果它在 Wifi 上。
    【解决方案2】:

    您可以通过阅读文本 /proc 伪文件来确定当前打开的端口,例如

    /proc/net/tcp
    /proc/net/udp
    

    这基本上是 netstat 命令(在哪里实现)所做的——您可能希望找到并检查一个简单的 netstat 实现的源代码(应该可以将其移植到 java)

    但是,当以非特权应用程序用户 ID 运行时,您将只能关闭属于您自己的进程的套接字(或者通过涉及 ptrace 或进程终止的迂回方式,属于您的用户 ID 的其他进程)。另请注意,关闭套接字并不一定会使该端口可立即重用。

    【讨论】:

      【解决方案3】:

      您可以通过运行时尝试不同的网络命令并查看结果

      // netstat -lptu 
      // netstat -vat 
      
      
      Process su = Runtime.getRuntime().exec("netstat -vat ");
      

      【讨论】:

        猜你喜欢
        • 2018-02-26
        • 2013-01-23
        • 1970-01-01
        • 1970-01-01
        • 2018-03-09
        • 2015-03-02
        • 1970-01-01
        • 2013-04-18
        • 1970-01-01
        相关资源
        最近更新 更多