检测防火墙绕过了哪些传出端口

Sho*_* Ya 5 networking firewall tcp port

我的学校有一个防火墙,它限制了大多数传出端口。只有TCP/80, TCP/443,TCP/21允许。有没有办法找出防火墙允许的所有传出端口?

我目前的想法:打开nc远程服务器上的所有 TCP 端口,然后使用nmap扫描哪些端口可以访问。但是如果我没有远程服务器怎么办?或者是否有公共服务器为此类测试打开所有端口?

对于那些担心我违反学校规定的人,我认为这样做没什么大不了的。假设我在外部主机上建立一个服务并希望它可以被学校网络访问,我愿意知道我可以使用哪些端口来提供这个服务。我没有破坏任何东西。我相信这样做是 100% 合法的。

rr-*_*rr- 3

您可以使用portquiz.net,这正是正在寻找的服务器类型。例如,以下 shell 脚本可以完成这项工作:

for x in `seq 1 65535`; do

    echo -ne "$x "
    curl "http://portquiz.net:$x" \
      --connect-timeout 1 \
      -o /dev/null \
      -q >/dev/null 2>&1 \
        && echo 'open' \
        || echo 'closed'

done | tee ports.lst
Run Code Online (Sandbox Code Playgroud)

请注意,这将运行相当长的时间,因此如果您不耐烦,可以使用 GNU 并行化该任务parallel

另外,某些端口portquiz似乎被阻止了(据我记得它们是 SSH 和 HTTPS 的端口),但除了一些特殊情况外,所有剩余的端口都应该打开。