RustScan

bee-sanGPL-3.0活跃维护

用 Rust 写的高速端口扫描器,几秒内扫完 65535 个端口,还能自动调用 Nmap 做深度探测,适合渗透测试和网络排查。

🤖 The Modern Port Scanner 🤖

2.4.1发布于 2025-02-23 15:03 UTC20,691star +5 / 7 天1,404fork同步于 2026-11-10 05:22 UTC

怎么上手

从 README 代码块原样提取,可能是其中一种安装方式
brew install rustscan
硬件要求按 README 关键词推断
支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

这个条目还没有人工点评。如果它对你很有用,欢迎到 提交仓库 页写下你的使用经验。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    最近发版

    5 个版本2.4.1
    1. 2.4.12.4.1 - Guaranteed Speed 🦔最新正式版2025-02-23 · 2025-02-23 15:03 UTC

      BIG FEATURES

      Liking RustScan? You can directly support development by buying me a burrito or a coffee (I consume nothing else 😉) https://github.com/sponsors/bee-san

      RustScan is now guaranteed to always be fast

      We have added benchmarks for UDP and TCP scanning, and are setting up an automated CI service to make sure every PR doesn't decrease RustScan's speed.

      We also handled some things like deduplication, less clones(), and more to ensure speed.

      Also.... We now have a RustScan library! You can use RustScan in your code :)

      This release is really just a lot of things. Seriously. Look at the What's Changed!

      Big big thanks to everyone who has contributed <3

      What's Changed

    2. 2.3.02024-07-08 · 2024-07-08 13:57 UTC
      查看更新说明

      Features

      • Udp Scanning (#596) @BrendanGlancy
      • feat(cli): add custom dns resolver option (#587) @PsypherPunk

      What’s Changed

      • 2.3.0 release (#613) @bee-san
      • Removed unnecessary .clone()s (#610) @Arvmor
      • Bump log from 0.4.21 to 0.4.22 (#605) @dependabot
      • Bump clap from 4.5.7 to 4.5.8 (#607) @dependabot
      • Bump text_placeholder from 0.5.0 to 0.5.1 (#609) @dependabot
      • fix for the target x86_64-pc-windows-gnu (#611) @madneal
      • Bump actions/upload-artifact from 4.3.3 to 4.3.4 (#612) @dependabot
      • Bump alpine from 3.20.0 to 3.20.1 (#604) @dependabot
      • Bump docker/build-push-action from 5 to 6 (#603) @dependabot
      • Bump clap from 4.5.6 to 4.5.7 (#601) @dependabot
      • Bump clap from 4.5.4 to 4.5.6 (#600) @dependabot
      • Bump alpine from 3.19.1 to 3.20.0 (#597) @dependabot
      • Bump toml from 0.8.13 to 0.8.14 (#599) @dependabot
      • ci: refactor ci/cd and extends matrix build (#598) @LeoFVO
      • Update dockere in README (#595) @bee-san
      • Bump toml from 0.8.12 to 0.8.13 (#592) @dependabot
      • Bump itertools from 0.12.1 to 0.13.0 (#593) @dependabot
      • refactor: remove structopt in favour of clap (#591) @PsypherPunk
      • chore: upgrade dependencies (#590) @PsypherPunk
      • refactor: move address-related functions (#585) @PsypherPunk
      • Bump env_logger from 0.8.4 to 0.11.3 (#583) @dependabot
      • Bump toml from 0.5.11 to 0.8.12 (#582) @dependabot
    3. untagged-544fc861a2260fa828102.2.4-rc1pre-release2024-05-18 · 2024-05-18 13:49 UTC
      查看更新说明

      This is a beta version, a release candidate :)

      What’s Changed

      • refactor: remove structopt in favour of clap (#591) @PsypherPunk
      • chore: upgrade dependencies (#590) @PsypherPunk
      • feat(cli): add custom dns resolver option (#587) @PsypherPunk
      • refactor: move address-related functions (#585) @PsypherPunk
      • Bump env_logger from 0.8.4 to 0.11.3 (#583) @dependabot
      • Bump toml from 0.5.11 to 0.8.12 (#582) @dependabot
    4. 2.2.32024-05-01 · 2024-05-01 14:50 UTC
      查看更新说明

      Minor bug fix change to bump version and get CI to successfully run :)

      What’s Changed

      • Update RustScan to 2.2.3 (#581) @bee-san
      • Bump actions/upload-artifact from 4.3.2 to 4.3.3 (#578) @dependabot
    5. 2.2.22.2.2 🥳2024-04-21 · 2024-04-21 07:34 UTC
      查看更新说明

      Release

      This release should automatically build and distribute .deb files and upload to Cargo etc. If it doesn't let me know!

      Features

      • Build CI to auto-distribute releases (#468) @LeoFVO This release should auto build .debs, docker etc and publish them!

      • refactor: make RustScan additionally a library (#562) @PsypherPunk You can now use RustScan as a library in your own Rust code!

      • First attempt enabling exclude port list capability Issue #530 (#534) @wasuaje You can now exclude ports from being scanned.

      • Update for ARM; (#464) @bee-san RustScan now supports ARM based devices, which means you can use it on a Raspberry Pi etc. Also, there has been support added for Apple Silicon chips.

      Everything Else

      • Bump rustls from 0.21.10 to 0.21.11 (#574) @dependabot
      • Remove docker build from PRs (#573) @bee-san
      • Bump actions/upload-artifact from 4.3.1 to 4.3.2 (#571) @dependabot
      • chore: remove repetitive word (#572) @toofooboo
      • Bump Swatinem/rust-cache from 1 to 2 (#563) @dependabot
      • Bump actions/download-artifact from 2 to 4 (#564) @dependabot
      • Bump mislav/bump-homebrew-formula-action from 1 to 3 (#565) @dependabot
      • Bump actions/setup-python from 4 to 5 (#566) @dependabot
      • Bump actions/upload-artifact from 2.2.4 to 4.3.1 (#567) @dependabot
      • Upgrade Alpine to 3.19.x (#373) @gaby
      • build: update Docker workflow trigger (#561) @PsypherPunk
      • Update Docker Runner (#560) @CMNatic
      • Fixed #527 (#537) @gufengwyx8
      • Update release workflow (#559) @PsypherPunk
      • minor change in help section (#318) @lokendrasinghrawat
      • fix help message (#319) (#330) @u5surf
      • Bump text_placeholder from 0.4.1 to 0.5.0 (#558) @dependabot
      • Bump colored from 2.0.0 to 2.1.0 (#557) @dependabot
      • Bump text_placeholder from 0.4.0 to 0.4.1 (#552) @dependabot
      • Bump trust-dns-resolver from 0.21.2 to 0.23.2 (#554) @dependabot
      • feat(build): add GitHub Action to make release (#427) @PsypherPunk
      • fix port range to include end (#518) @hpmaxi
      • initialize errors HashSet without high initial capacity (#532) @fabianbees
      • Added more funny quotes. (#526) @zasekle
      • Fix markdown-link-checker workflow (#542) @CMNatic
      • Fix clippy lint issues for CI/CD pipeline (#538) @bergabman
      • Fixed #524 (#525) @R-Rothrock
      • Update README.md (#520) @thomasthaddeus
      • :rotating_light: Fix linter warning (#521) @lepirlouit
      • 📝 Change obsolet link to tgotwig.dev (#398) @tgotwig
      • :rotating_light: fix linter warnings (#511) @lepirlouit
      • Update README.md (#517) @thomasthaddeus
      • Fix typos (#505) @kianmeng
      • Minor documentation table fix for github.io (#491) @lerignoux
      • Update Docker base image from alpine 3.12 to 3.17 (#484) @PeterDaveHello
      • Upgrade to GitHub-native Dependabot (#382) @dependabot-preview
      • build and publish docker image in ci (#472) @LeoFVO
      • Minor fixes to fit ci update (#470) @LeoFVO

    README 原文

    未翻译

    ➡️ Discord | Installation Guide | Usage Guide ⬅️

    Fast, smart, effective.

    Arch Linux package Built with Rust GitHub All Releases Crates.io Discord Actions

    🤔 What is this?

    fast

    The Modern Port Scanner. Find ports quickly (3 seconds at its fastest). Run scripts through our scripting engine (Python, Lua, Shell supported).

    🛠️ Installation

    You can install RustScan's binary from our releases page.

    We would prefer you to install with a package manager so it is tested and works for your system.

    RustScan is in many repositories already. Install it with whatever tools you wish:

    Packaging status

    RustScan only officially supports Cargo installations, if you want to use that please install Rust and then cargo install rustscan

    Example installations include:

    MacOS:

      brew install rustscan
    

    Arch:

      pacman -S rustscan
    

    ✨ Features

    • Scans all 65k ports in 3 seconds.
    • Full scripting engine support. Automatically pipe results into Nmap, or use our scripts (or write your own) to do whatever you want.
    • Adaptive learning. RustScan improves the more you use it. No bloated machine learning here, just basic maths.
    • The usuals you would expect. IPv6, CIDR, file input and more.
    • Automatically pipes ports into Nmap.

    ‼️ Important Links

    :book: Installation Guide:books: Documentation:parrot: Discord
    :penguin: ARM Support

    🙋 Table of Contents

    🔭 Why RustScan?

    RustScan is a modern take on the port scanner. Sleek & fast. All while providing extensive extendability to you.

    Not to mention RustScan uses Adaptive Learning to improve itself over time, making it the best port scanner for you.

    🧋 Speed

    fast

    Speed is guaranteed via RustScan. However, if you want to run a slow scan due to stealth, that is possible too.

    Firstly, let's talk code.

    We have tests that check to see if RustScan is significantly slower than the previous version. If it is, the continuous integration fails, and we can't commit code to master unless we make it faster.

    HyperFine is used to monitor RustScan's performance over time to answer the question, "Are we getting faster? Are we getting slower?".

    Every pull request is reviewed by one person, but more often than not, two people review it. We test it manually and ensure the code doesn't negatively affect performance.

    Read more here.

    ⚙️ Extensible

    scripts

    RustScan piping results into the custom Python script

    RustScan has a new scripting engine that allows anyone to write scripts in most languages. Python, Lua, and Shell are all supported.

    Want to take your found ports and pipe them into Nmap for further analysis? That's possible. Want to run smb-enum if SMB is found open? Possible.

    The possibilities are endless -- and you can write scripts in whatever language you feel comfortable with.

    Read more here.

    🌊 Adaptive

    adaptive

    RustScan automatically fine-tunes itself to match the host OS

    RustScan has a cool set of features called "Adaptive Learning". These features "learn" about the environment you are scanning and how you use RustScan to improve itself over time.

    We use this umbrella term for any feature that fits this criterion. The list constantly changes, so check out our wiki for more information.

    👩‍🦯 Accessible

    fast

    RustScan is one of the first penetration testing tools that aims to be entirely accessible.

    Most penetration testing tools are not accessible, which negatively affects the whole industry.

    RustScan has continuous integration testing that aims to ensure it is accessible, and we are constantly working on ways to improve our accessibility and ensure everyone can use RustScan.

    🤸 Usage

    We have 2 usage guides. Basic Usage and Things you may want to do.

    We also have documentation about our config file here.

    🎪 Community

    Contributing Read this to learn how.

    Contributors ✨

    All Contributors

    Thanks goes to these wonderful people (emoji key):

    This project follows the all-contributors specification. Contributions of any kind welcome!