blog/_posts/2022-11-16-tor.md

120 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
layout: post
title: Tor在服务器上的使用体验
tags: [tor, 网络]
---
就像和普通网络一样使用Tor吧<!--more-->
# 起因
前段时间全世界最大的电子书图书馆——Zlibrary的域名被FBI回收了以致于想要访问它只能用Tor洋葱路由器或者Tor2Web访问它的Onion域名。 ~~众所周知只有恋童癖瘾君子和读书人才会用Tor🤣~~ 当然想要访问洋葱网络用Tor2Web最简单但是最不安全太容易被中间人攻击了或者安装洋葱浏览器也很简单只不过我有个理念就是一个设备不应该安装超过一个浏览器正因如此我也很不喜欢Electron的软件。既然我使用Windows本身就已经有个Egde浏览器了我为什么还要安装其他浏览器呢所以我就想能不能用更加简单的方式来访问Onion域名。
# 探索过程
要想不使用洋葱浏览器访问也可以只要装一个Tor核心然后让浏览器去连它的Socks代理就可以了只不过……在国内想要连接洋葱网络实在是太麻烦了还要整网桥前置代理啥的。不过要说代理……我自己倒是有一个那这么说来我干脆把代理和Tor组合到一起都放到服务器上然后我只要连代理就可以同时访问外网和洋葱网络了吧还不影响我访问其他网站的速度。
那应该怎么做呢Tor安装倒是很简单大多数软件包管理器都能直接安装甚至可以什么都不配置就可以用9050端口访问它的Socks5代理了我的话虽然之前用的是[wssocks](/2022/01/16/wssocks.html)但是并发效果很差也没有手机客户端所以最后还是换成了v2ray。像v2ray这种相比其他的还有一个优点就是它的路由配置功能还挺强大的这次也是用到了它的路由功能。其实去看官网文档上也有关于[将Tor和v2ray配合使用的教程](https://guide.v2fly.org/advanced/tor.html)只是不知道为什么它那个配置文件里面只有关于客户端的路由没有服务端的路由……不过不影响v2ray作为一个服务端和客户端等价的程序稍微改下那个配置文件就可以用了
```json
{
"log": {
"loglevel": "warning"
},
"routing": {
"domainStrategy": "AsIs",
"strategy": "rules",
"settings": {
"rules": [
{
"type": "field",
"domain": [
"regexp:\\.onion$"
],
"outboundTag": "tor"
},
{
"type": "field",
"outboundTag": "block",
"protocol": [
"bittorrent"
]
}
]
}
},
"inbounds": [
{
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
},
"listen": "/dev/shm/proxy.sock",
"protocol": "vless",
"settings": {
"udp": false,
"clients": [
{
"id": "***",
"alterId": 0,
"flow": ""
}
],
"decryption": "none",
"allowTransparent": false
},
"streamSettings": {
"network": "ws",
"security": "none",
"wsSettings": {
"path": "***",
"headers": {
"Host": "***"
}
}
}
}
],
"outbounds": [
{
"protocol": "freedom"
},
{
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 9050
}
]
},
"tag": "tor"
},
{
"protocol": "blackhole",
"tag": "block"
}
]
}
```
顺便我为了避免不小心服务器被封也屏蔽了bt下载其实也许把bt流量转发到洋葱网络里面也可以。配置好之后试着找了些Onion网站试了试还不错访问速度一般也不影响我访问其他网站。
不过需要注意的一点是这个方法**不能匿名**仅仅是作为访问Onion网站的手段因为普通的浏览器不会有那么多保护隐私的机制这样的配置方法很容易会导致IP泄露就算是有代理也会有WebRTC泄露的可能性想匿名还是用洋葱浏览器+前置代理或者Tor做透明代理会更好一些。
# 使用Tor进行建站
既然在服务器上安装了Tor正好我之前用[mkp224o](https://github.com/cathugger/mkp224o)算了几个vanity address这次可以直接拿已经算好了私钥开网站。方法也很简单在`HiddenServiceDir`后面加私钥的存放位置,然后在`HiddenServicePort`后面加想要服务的端口号和被映射的端口一般教程会说用nginx映射127.0.0.1:80而我会建议使用Unix domain Socket更加安全性能也会更好像我就会配成
```
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 unix:/dev/shm/nginx.sock
```
顺便加两句反蜜罐配置:
```
ExcludeNodes {cn},{hk},{mo},{kp},{ir},{sy},{pk},{cu},{vn}
StrictNodes 1
```
nginx的监听也要注意监听/dev/shm/nginx.sock这样能保证即使在服务器内扫描端口也不会泄露你的网站😆。
其实我本来想让v2ray的连接Tor也通过Unix domain Socket走但是很遗憾的是我没找到v2ray的Outbound怎么样设置Unix domain Socket连接……
# 感想
感觉洋葱网络其实还是对用户挺友好的,使用起来还是挺方便的,就像访问普通网络那样,大概也正是这种原因它才能成为匿名网络中最受欢迎的吧。