是否可以通过Tor隐藏服务建立Clearnet网站隧道? 例如,某人拥有blah.com,它指向服务器IP 1.2.3.4,但希望1.2.3.4向隐藏的服务发出代理请求。
关键是要有一个clearnet“查找”网站,同时将网站本身的内容放在隐藏的服务器上,基本上是proxy_pass要做的,除了它需要连接到本地主机。
有什么想法/如何做到的?
答案 0 :(得分:1)
糟糕,我参加聚会有点晚了。几天前我想做完全相同的事情,但找不到解决问题的可行方法。因此,经过几天的研究和一些开发,我想出了 tor-nginx-proxy
- 一个帮助我们实现这一目标的 docker 镜像。
阅读更多相关信息 - https://harshitbudhraja.com/port-a-website-to-the-dark-web-in-under-2-minutes
答案 1 :(得分:0)
您没有指定后端语言,因此我将向您展示一个使用python Django的示例。
假设您已在服务器上配置了Tor(不是 tor浏览器),则只需使用requests
(或aiohttp,urllib2)发出GET请求等等),然后将响应转发给您的客户:
from django.shortcuts import render
import requests
def someView(req):
url = 'someWebsite.onion'
proxy = {
'http':'socks5h://localhost:9050',
'https':'socks5h://localhost:9050'
}
html = requests.get(url, proxy=proxy)
context = {'html':html}
return render(req, 'someTemplate.html', context)
然后在someTemplate.html
上
{{ html }}
可能有更优雅的方式将html数据 传输到客户端,但这很大程度上取决于您使用的后端。
如果您不熟悉在本地计算机上将tor作为代理运行,则应阅读此here。
在linux上:
apt install tor
tor
在Mac上:
brew install tor
(需要homebrew)tor
在Windows上:
我不知道如何在nginx服务器上配置tor代理,但这将是一个很好的后续问题。
答案 2 :(得分:0)
是的。这是可能的。 proxy_pass nginx 将该代理 socat 到 tor
/usr/bin/socat tcp4-LISTEN:$PORT,reuseaddr,fork,keepalive,bind=$IP SOCKS4A:127.0.0.1:$URL_ONION:$PORT_ONION,socksport=9050
用您的数据替换 $PORT 、 $IP 、 $URL_ONION 和 $PORT_ONION