例如,当我检查我所在区域有多少个可用的 WIFI 网络时,我发现大约有 6 个,而且我可以访问所有网络。
是否可以制作一个服务器或使用任何技巧将 WIFI 转换为代理并为每个代理提供一个端口。
(即每当我想使用 WIFI 时我只需更改端口)
答案1
您的问题实际上没有什么意义。
从技术上来说,这是可行的,但是这是一种极其先进的技术——我认为这是一项具有挑战性的任务——而且我在这个领域有多年的经验。 考虑到问题中隐含的知识水平,对你的问题的实际答案是否定的 - 你不能这样做。
探索专家如何在服务器上执行此操作(可能是基于 Linux 的机器,以便您可以更轻松地访问原始组件并链接使用工具来执行此操作)-
关键的障碍是识别开放网络并建立连接。更简单的方法可能是生成一个列表,然后编写一些代码将可访问的 IP 地址与端口关联起来。
(一种更优雅但非常依赖硬件且几乎不可能的方法是同时将您的路由器连接到多个 SSID,然后将这些 SSID 分配给端口 - 这将允许同时使用多个代理)
然后,您需要运行某种代理/缓存子系统,以及基于每个 SSID 的策略路由来路由请求。您可能需要为各个端口配置多个轻量级代理服务器实例,或者配置单个代理服务器并将其绑定到多个端口,或者使用 IPTables 执行相同操作。
您可能需要监控端口并根据端口修改出站连接 - 可以想象,您可以使用代理服务器中的钩子或 Fail2Ban 的 frankenmonster 配置来协助完成此操作。(如果您可以以某种方式连接到多个网络,则可能可以避免此步骤)
答案2
当然,您可以在 Linux 上执行此操作。首先,您需要通过多个 WiFI 卡和适当的 wpa_supplicant 配置连接到所有这些网络。当流量有限时,您可以每次重新关联到这些网络,或者为每个网络构建虚拟 TUN/TAP 接口。您可以通过编写脚本来跨越 WiFi 信道https://www.aircrack-ng.org/doku.php?id=airtun-ng或 scapy 。
然后,您可以使用 SQUID 并为每个网络配置端口,可能还可以使用附加 iptables SNAT/DNAT 规则。