我正在尝试将Meek集成到Android应用程序中。这里有一个示例,展示了如何实例化传输:
问题是我要从那里做什么。假设我有一个使用OkHttp3的应用程序。当应用仅与Okhttp3交互时,是否有一种方法可以协调两者并将OkHttp3用作基础传输机制?
在如何实例化传输以及每个选项意味着什么方面,我也很矛盾。在上面提供的链接中,传输实例如下:
var text = $"tenant/Modules/Orders/Events/d1d28f67-17f2-4a43-ac63-f5e4dcf6d36c";
var validate = new Regex(@"^(\w+/?)+$");
var test = validate.Match(text).Success;
但是,在自述文件(https://github.com/guardianproject/AndroidPluggableTransports)中,建议的方法是:
private void initMeekTransport() {
new MeekTransport().register();
Properties options = new Properties();
String remoteAddress = "185.152.65.180:9001";// a public Tor guard to test
options.put(MeekTransport.OPTION_URL,"https://meek.azureedge.net/"); //the public Tor Meek endpoint
options.put(MeekTransport.OPTION_FRONT, "ajax.aspnetcdn.com"); //the domain fronting address to use
options.put(MeekTransport.OPTION_KEY, "97700DFE9F483596DDA6264C4D7DF7641E1E39CE"); //the key that is needed for this endpoint
init(DispatchConstants.PT_TRANSPORTS_MEEK, remoteAddress, options);
}
在后一种方法中,网桥地址被传递给init()方法。在第一种方法中,将远程地址传递给init()方法,而将桥地址作为选项传递。这些方法中哪一种是正确的?
此外,我希望对OPTION_URL,OPTION_FRONT和OPTION_KEY发表一些评论。这些信息中的每条来自哪里?如果我不想使用这些默认信息,例如,如何设置“ Meek端点”以不使用默认的Tor One? CDN上有什么特别需要做的事情吗?我将如何使用Amazon或Google而不是aspnetcdn?
如您所见,我很困惑。
答案 0 :(得分:2)
感谢您对此库的关注。不幸的是,我们还没有正式发布,它还处于开发的初期。
但是,我们认为我们仍然可以提供帮助。
首先,应该明确指出,支持域前端的主要云提供商(Google,Amazon,Azure)现在非常反对。因此,您可能会在使用任何这些平台时发现一些限制,尤其是在您无法控制的前端域中。
您可以在此处了解有关Tor和Signal自己的挣扎情况:https://signal.org/blog/looking-back-on-the-front/和https://blog.torproject.org/domain-fronting-critical-open-web
现在,这就是说,如果您仍然想继续进行域前端,并且您所使用的只是HTTP / S,那么您可以这样做,而根本不用Meek。您只需将请求上的“主机”标头设置为要访问的实际域,而请求本身则使用前置域。实际上很简单。
您可以在此处了解更多信息:https://www.bamsoftware.com/papers/fronting/#sec:introduction