我正在编写一个应用程序,目前在Python + Twisted中,它作为DNS请求的第一个调用端口 - 如果请求满足某些模式,例如Namecoin .bit地址或OpenNIC TLD,它们被传递到不同的DNS解析器,否则使用默认的解析器。
但有些地址我需要通过特殊路线重定向,例如Tor .onion地址不能解析为传统的IPv4地址,或某些网站因地理位置原因需要通过VPN进行隧道传输。因此,当对此类站点的DNS请求进入时,我希望应用程序创建新的环回接口/别名并返回此接口的IP。然后,我需要能够通过代理/ VPN或通过其设置的端点将通过此接口传输的所有TCP和UDP流量进行隧道传输。
问题是,我该怎么做?听取特定端口(例如80)对于大多数目的来说都没问题,但作为一个完美主义者,我想知道如何接受发送到所有端口的连接/消息,而不必设置成千上万的监听器并可能导致系统崩溃
注意:虽然目前一切都在Python中,但我不介意用C ++或其他语言添加组件,或者使用网络配置来实现这一点。