Sho*_* Ya 5 networking firewall tcp port
我的学校有一个防火墙,它限制了大多数传出端口。只有TCP/80
, TCP/443
,TCP/21
允许。有没有办法找出防火墙允许的所有传出端口?
我目前的想法:打开nc
远程服务器上的所有 TCP 端口,然后使用nmap
扫描哪些端口可以访问。但是如果我没有远程服务器怎么办?或者是否有公共服务器为此类测试打开所有端口?
对于那些担心我违反学校规定的人,我认为这样做没什么大不了的。假设我在外部主机上建立一个服务并希望它可以被学校网络访问,我愿意知道我可以使用哪些端口来提供这个服务。我没有破坏任何东西。我相信这样做是 100% 合法的。
您可以使用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 的端口),但除了一些特殊情况外,所有剩余的端口都应该打开。