『Freesia』- (K)NoW_NAME
樱花任务/Sakura Quest ED1
我会把这个贴子当作【分享发现】收藏夹。
我会把这个贴子当作【分享发现】收藏夹。
92 个评论
櫻花任務啊,當時剛開始看的時候覺得這不是『白箱』嗎Σ( ° △ °|||)
音乐台又上新了,坐在洗衣机前看直播
【备用】
旧品葱备份问题:【什么是费拉】
https://pincongbackup.github.io/p/77336/
旧品葱备份文章:【统一与民主——驳刘仲敬的诸夏论】
https://pincongbackup.github.io/p/71106/
旧品葱备份问题:【什么是费拉】
https://pincongbackup.github.io/p/77336/
旧品葱备份文章:【统一与民主——驳刘仲敬的诸夏论】
https://pincongbackup.github.io/p/71106/
记一个tor的大纲,有时间慢慢补充:
- 目录服务器
- 如何建立通信链路
- 守卫节点
- 中间节点
- 出口节点
- 网桥(ScrambleSuit→obfs4) https://www.cs.kau.se/philwint/scramblesuit/
- 洋葱服务握手(又名:接头的艺术)
- 暗网架站
看错标题了,以为是『Freesia』- Uru
……
(所以,不要停下来啊!)
……
广场君也有水楼了(^3^~♪
【只看楼主】功能希望
【只看楼主】功能希望
广场君也有水楼了(^3^~♪【只看楼主】功能希望
【只看單個用戶】功能希望╮(๑•́ ₃•̀๑)╭
Tor必须知道有哪些可用的中继节点,才能建立代理链路。世界上一共有6000多个公开的Tor中继节点,这些节点的信息保存在所谓的【目录服务器】里。Tor客户端启动时,会向目录服务器发起请求,获得一份所有tor中继的列表,然后从这个列表中随机选取三个节点建立链路。目录服务器是Tor匿名网络的基础。
全世界一共有10个Tor目录服务器,这10个目录服务器的IP直接硬编码到Tor程序里。Tor启动时,就根据程序里编码的IP,与目录服务器建立通讯。Tor有容错和校验机制。如果某个目录服务器被控制,发布蜜罐节点,Tor可以用其它服务器返回的结果比对,进行多数表决,从而排除恶意目录服务器的结果。
目录服务器是Tor的阿喀琉斯之蹱。因为Tor使用多数表决机制,所以只要控制了10个服务器中的6个,就可以控制整个Tor网络。因此在Tor的设计中,10个目录服务器分布在不同的国家,并且,每一个服务器都由不同的非营利组织/大学运营。据我查证,这10个目录服务器的IP地址和位置分别是:
- 154.35.32.5 - 美国
- 208.83.223.34 - 美国
- 199.254.238.52 - 美国
- 128.31.0.34 - 美国(麻省理工学院)
- 193.23.244.244 - 德国
- 131.188.40.189 - 德国(埃尔朗根-纽伦堡大学)
- 82.94.251.203 - 荷兰
- 194.109.206.212 - 荷兰
- 171.25.193.9 - 瑞典
- 86.59.21.38 - 奥地利
Ref:
https://jordan-wright.com/blog/2014/12/19/what-happens-if-tor-directory-authorities-are-seized/
--------------------------
更新:第三代Tor协议不需要客户端验证列表。在第三代协议中,10个目录服务器互相交换自己的列表,并给其它服务器的列表签名。所以Tor客户端不用再向每个目录服务器请求列表。客户端只要向一个服务器请求列表,并验证上面的签名即可。
【只看單個用戶】功能希望╮(๑•́ ₃•̀๑)╭
【单个用户】是指谁啊?(笑
技术向水楼?Lisa快来
【单个用户】是指谁啊?(笑
哈,就是一個樓裡有時候只想看某個用戶的發言,差不多這種功能?╮(๑•́ ₃•̀๑)╭
先回顾一下TLS握手。。。
1. 客户端发送ClientHello。
2. 服务器发送ServerHello,把签名后的公钥发给客户端。
3. 客户端验证证书有效后,把一个随机数用服务器的公钥加密后,发送CertVerify
4. 服务器用私钥解开随机数;根据前面的随机数,服务器和客户端用相同的方法生成session key,发送ServerFin建立会话。
建立Tor链路的过程:
0. 客户端向目录服务器发出请求,拿到节点列表。
1.
- 客户端选出第一个节点,叫做葱1。葱1的公钥记作PK1,葱1把自己的公钥签名后发给客户端。拿到可信的公钥之后,就可以建立TLS连接了。
2.
- 客户端选出第二个节点,叫做葱2;客户端用PK1加密葱2的地址,并把加密后的信息发给葱1。
- 葱1用私钥解密地址,发现要求自己和葱2建立连接,就根据此地址与葱2建立连接。
- 葱2的公钥记作PK2,葱2把自己的公钥签名后,通过葱1发给客户端。
3.
- 客户端选出第三个节点,叫做葱3;客户端依次用PK2加密葱3的地址,然后附上葱2的地址,再用PK1加密一次。然后,把加密后的信息发给葱1。
- 葱1用私钥解密地址,发现是葱2的地址,就把数据包转发给葱2。
- 葱2用私钥解密地址,发现要求自己和葱3建立连接,就根据此地址与葱3建立连接。
- 葱3的公钥记作PK3,葱3把自己的公钥签名后,通过葱2,葱1发给客户端。
最后的结果是,客户端与葱1,葱2,葱3建立circuit,并且收到三把公钥PK1,PK2,PK3。每个中继节点都由客户端自主选择,因此恶意节点不会影响链路的构建。在构建链路时,全过程中只有葱1知道客户端的IP,并且每个节点都只知道自己的前序和后继节点,无法判断请求是来自客户端还是中继,因此客户端不会暴露身份。
遗留的问题是:建立链路的请求要通过中继节点完成,然而中继节点不是完全可信。如何保证中继节点确实按照客户端的指令建立了连接,而不是把流量导向蜜罐?或者如何防止中继节点进行中间人攻击?
方法是每个洋葱节点持有两把密钥:一把长期持有的身份密钥,和一把短期使用的会话密钥(就是前面建立TLS会话用到的密钥)。身份密钥用来给TLS证书签名,同时上传一份公钥到目录服务器。客户端与目录服务器连接后,检查节点列表中的公钥与洋葱节点传来的公钥是否匹配即可。
Ref:
[1] https://svn-archive.torproject.org/svn/projects/design-paper/tor-design.pdf
[2] https://security.stackexchange.com/questions/215155/how-does-tor-protect-against-mitm-attacks-between-the-client-and-relay-nodes
[3] https://robertheaton.com/2019/04/06/how-does-tor-work/
遗留的问题是:建立链路的请求要通过中继节点完成,然而中继节点不是完全可信。如何保证中继节点确实按照客户端的指令建立了连接,而不是把流量导向蜜罐?或者如何防止中继节点进行中间人攻击?
方法是每个洋葱节点持有两把密钥:一把长期持有的身份密钥,和一把短期使用的会话密钥(就是前面建立TLS会话用到的密钥)。身份密钥用来给TLS证书签名,同时上传一份公钥到目录服务器。客户端与目录服务器连接后,检查节点列表中的公钥与洋葱节点传来的公钥是否匹配即可。
Ref:
[1] https://svn-archive.torproject.org/svn/projects/design-paper/tor-design.pdf
[2] https://security.stackexchange.com/questions/215155/how-does-tor-protect-against-mitm-attacks-between-the-client-and-relay-nodes
[3] https://robertheaton.com/2019/04/06/how-does-tor-work/
搭建Tor守卫节点/中间节点的机器必须有公网IP,网速至少>16Mbps,每月至少100GB流量,推荐2TB以上。内存>512MB,CPU支持AES。
具体要求可以看:
https://community.torproject.org/relay/relays-requirements/
1. 安装Tor
yum install -y epel-release && yum install -y tor
2. 编辑配置文件
Nickname myNiceRelay # 洋葱节点的别名,可以随便填。
ORPort 9001 # 洋葱端口号
SocksPort 0 # 禁止本地socks连接。
ExitRelay 0 # 这里填0,表示此节点是非出口节点。
ContactInfo xijinping@gmail.com # 填自己的邮箱(可选),此邮箱会被公开。
3. 启动Tor
service tor enable
service tor start
新加入Tor网络的节点一般都是中间节点,稳定运行一段时间后就会自动转成守卫节点,具体规则可以看:
https://blog.torproject.org/lifecycle-new-relay
搜集一些隐写术的文章:
《从根号2到AlphaGo番外篇——眼见未必为实--漫谈图像隐写术》
https://zhuanlan.zhihu.com/p/51263749
《阿里巴巴公司根据截图查到泄露信息的具体员工的技术是什么?》(数字水印)
https://www.zhihu.com/question/50735753
《隐写术:基于2D-FFT的图像数字水印技术》
https://zhuanlan.zhihu.com/p/41306815
《隐写术之图片隐写》(包含分析工具)
https://zhuanlan.zhihu.com/p/62895080
《江湖高手专用的“隐身术”:图片隐写技术》(包含分析工具)
https://zhuanlan.zhihu.com/p/66651679
《从根号2到AlphaGo番外篇——眼见未必为实--漫谈图像隐写术》
https://zhuanlan.zhihu.com/p/51263749
《阿里巴巴公司根据截图查到泄露信息的具体员工的技术是什么?》(数字水印)
https://www.zhihu.com/question/50735753
《隐写术:基于2D-FFT的图像数字水印技术》
https://zhuanlan.zhihu.com/p/41306815
《隐写术之图片隐写》(包含分析工具)
https://zhuanlan.zhihu.com/p/62895080
《江湖高手专用的“隐身术”:图片隐写技术》(包含分析工具)
https://zhuanlan.zhihu.com/p/66651679
隐写术(Steganography)相关的书:
- 《数据隐藏技术揭秘》(libgen)https://book.douban.com/subject/25837887/
- Information Hiding - by Jessica Fridrich (libgen)
- Digital watermarking and steganography - by Jessica Fridrich (libgen)
知乎上那几篇文章过于低端,都是把信息嵌入exif里或者文件尾,根本不用看。
一篇介绍现代隐写术的文章:https://qxiaomay.github.io/2019/06/06/steganalysis/
大体上就是根据图像不同区域的熵来嵌入信息,同时又不破坏自然图像的统计特征,估计深度学习可以用一下啦。
一篇介绍现代隐写术的文章:https://qxiaomay.github.io/2019/06/06/steganalysis/
HUGO, SUNIWARD, WOW, HILL-CMD, MiPOD等内容自适应隐写术可以自动的将隐秘信嵌入到纹理、噪声丰富的图像区域,从而保持复杂的图像高阶统计特性。
大体上就是根据图像不同区域的熵来嵌入信息,同时又不破坏自然图像的统计特征,估计深度学习可以用一下啦。
很有意思的文章:Life without a CA:
https://blog.torproject.org/life-without-ca
https://blog.torproject.org/life-without-ca
很有意思的文章:Life without a CA:
迫真高仿id还行
才发现@立紗Lisa 也三退了?sad
才发现 也三退了?sad
lisa是暂时退葱,还会回来
基本原理是,双虚拟机隔离保护匿名,VPN+Tor隐藏流量特征。具体可以参考编程随想的文章:
https://program-think.blogspot.com/2013/01/howto-cover-your-tracks-6.html
https://program-think.blogspot.com/2015/04/howto-cover-your-tracks-8.html
我使用Tor前置部署方案,即【网关虚拟机】里安装VPN开源客户端和Tor,上网软件安装在【隔离虚拟机】里,隔离虚拟机的全部(TCP)流量走网关,见图:

虚拟化软件使用VirtualBox。
网关虚拟机配置三张网卡:
eth0:连接到VirtualBox自带的NAT网络,可以直接上网。eth0的IP交给系统自动管理即可。
eth1:较旧的双虚拟机互联大多使用host-only模式。host-only模式下流量要通过主机网络栈,有安全风险。新版VirtualBox自带一个“内部网络”模式,内部网络由VirtualBox管理,仅虚拟机可见,与主机没有任何交互。这里设置eth1的网络为192.168.89.0/24,网关虚拟机地址为192.168.89.64。VirtualBox的内部网络使用【界面名称】来唯一标识每一个网络。这里界面名称叫【tor-intnet】.
eth2:可选,配置一个host-only网络,可以用来SSH。不用时关掉。在VirtualBox里新建一个主机网络192.168.12.0/24,eth2地址设置为192.168.12.64。
最后,VirtualBox的文档里推荐,如果操作系统支持,虚拟网卡控制芯片尽量选virtio-net,速度更快。
然后打开网关虚拟机,配置interfaces. 在/etc/network/interfaces里面,增加以下内容:
auto eth1
iface eth1 inet static
address 192.168.89.64
auto eth2
iface eth2 inet static
address 192.168.12.64
用V2Ray作为Tor的前置代理,可以用真正的TLS流量包装Tor流量,外人看上去就是在访问无害的网站。
首先下载v2ray:
wget https://github.com/v2ray/v2ray-core/releases/download/v4.23.1/v2ray-linux-64.zip
然后切进v2ray的目录,修改config.json,我这里的配置是V2Ray+WS+TLS+Web+CDN,一步到位:
{
"inbound": {
"protocol": "socks",
"port": 10086,
"listen": "127.0.0.1"
},
"outbound": {
"protocol": "vmess",
"settings": {"vnext": [{
"address": "域名",
"port": 443,
"users": [{"id": "UUID"}]
}]},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {"serverName": "域名"},
"wsSettings": {
"headers": {"Host": "域名"},
"path": "ws路径"
}
},
"mux": {"enabled": true}
}
}socks5端口是万年不变的10086。然后把v2ray解压出来的v2ray.service拷贝到systemd下,运行:
systemctl restart v2ray
v2ray就搭建好了。
安装:
pkg install tor
安装完成以后打开/etc/tor/torrc,在后面增加:
Socks5Proxy 127.0.0.1:10086
SOCKSPort 192.168.89.64:9050
SOCKSPolicy accept 192.168.89.0/24
然后运行:
systemctl restart tor
网关虚拟机就制作完成了。
按照上面的配置,网络参数如下:
- 界面名称:tor-intnet
- 网络号:192.168.89.0/24
- 网关IP:192.168.89.64
- Socks5端口:9050
注意【隔离虚拟机】只能有一张网卡,而且网卡的模式必须是【内部网络】,否则起不到隔离的效果。
在VirtualBox里,网卡的界面名称填tor-intnet,进入虚拟机,网卡配置填:
auto eth0
iface eth0 inet static
address 192.168.89.2
这是因为内部网络模式不会自动分配IP,所以必须手动指定如果要使用动态IP,可以在宿主机里添加DHCP:
vboxmanage dhcpserver add --netname tor-intnet --ip 192.168.89.1 --netmask 255.255.255.0 --lowerip 192.168.89.2 --upperip 192.168.89.254 -enable
以下命令可以删除已添加的DHCP服务器:
vboxmanage dhcpserver remove --netname tor-intnet
VirtualBox的manual见:https://www.virtualbox.org/manual
设置完网络后,对【隔离虚拟机】中的任何软件,只要配置socks5代理,就可以用Tor+VPN上网了。反过来说,只要软件配置了socks5,那么它的流量一定经过了Tor+VPN。而其它任何没有配置socks的流量,都无法穿出隔离虚拟机,更不用说联网了。
如果软件要联网,可以配置以下sock5代理:192.168.89.64:9050
如果要在隔离虚拟机里使用系统代理,可以使用privoxy:
pkg install privoxy
然后打开配置文件/etc/privoxy/config,末尾添加:
forward-socks5t / 192.168.89.64:9050 .
forward localhost/ .
就可以设置本地全局代理。
上面这个Tor网关,可以装在OpenBSD上,号称世界上最安全的系统。安装OpenBSD时选中下面三个包就可以了:
BSD系统再算上V2Ray和Tor,占用硬盘不到300MB,平时挂在系统后台,几乎感觉不到占用资源。相比之下,CentOS选【最小安装】还要1.5GB,对于一个功能单一的网关来说实在太肥了。
- bsd:内核
- base66:全家桶
- man66:manual
BSD系统再算上V2Ray和Tor,占用硬盘不到300MB,平时挂在系统后台,几乎感觉不到占用资源。相比之下,CentOS选【最小安装】还要1.5GB,对于一个功能单一的网关来说实在太肥了。
加固Virtual Box,减小虚拟机攻击面。
Check List:
Ref: https://www.whonix.org/wiki/Virtualization_Platform_Security#VirtualBox_Hardening
Check List:
- 【系统】:启动设备禁用软驱,光驱,网络,只保留硬盘。
- 【系统】:指点设备使用PS/2鼠标。
- 【系统】:硬件时钟使用UTC。(防止时区泄露)
- 【系统】:处理器启用PAE/NX。
- 【显示】:禁用2D视频加速,禁用3D加速。
- 【显示】:禁用远程桌面。
- 【声音】:禁用声音。
- 【串口】:禁用串口。
- 【USB设备】:禁用设备。
- 【共享文件夹】:禁用共享文件夹。
- 禁用ACPI。
Ref: https://www.whonix.org/wiki/Virtualization_Platform_Security#VirtualBox_Hardening
看到一篇文章,网站设计反机器识别验证码的一些原则:Text-based CAPTCHA strengths and weaknesses
https://dl.acm.org/doi/abs/10.1145/2046707.2046724
和我之前在纸牌屋提到的差不多,主要手段是反分割。不过毕竟是这方面专门的research(被引了300多次),列出来的设计原则更多更详细,想做anti-spam的站长可以参考下啦。
https://dl.acm.org/doi/abs/10.1145/2046707.2046724
和我之前在纸牌屋提到的差不多,主要手段是反分割。不过毕竟是这方面专门的research(被引了300多次),列出来的设计原则更多更详细,想做anti-spam的站长可以参考下啦。
櫻花任務啊,當時剛開始看的時候覺得這不是『白箱』嗎Σ( ° △ °|||)
俺很喜欢这两个番。
本文讲解搭建双虚拟机隔离Web服务和Tor,架设暗网网站的方法。
暗网架站的好处:
- 不会暴露服务器IP:服务器有至少三层Tor中继做代理保护。相比之下,明网网站只能用CDN隐藏IP,如果CDN厂商被收买/爆出漏洞,服务器源IP就有暴露的危险。网站用CDN和Tor的安全性差别,可以类比于客户端用商业VPN和Tor的差别。
- 不会暴露访问者IP:客户端访问暗网网站也要经过三层中继。算上服务的三层中继,任何tor客户端到服务器之间都有6个Tor节点保护,因此服务器和客户端互相不知道对方身份。具体原理可以见:How do onion services work
- 架站方便,成本非常低:Tor可以穿透NAT,所以暗网不需要申请域名和公网IP,家用宽带就可以建网站。网站可以架在PC/上网本/树莓派上,可以利用家里的废旧电脑建暗网网站。
- 流量加密:Tor网络自带端到端加密,并且抗中间人攻击,不需要HTTPS。
双虚拟机架站能极大地减小Web服务端泄露IP的风险(Application level leaks)。原理和双虚拟机隔离上网一样:【服务器虚拟机】里安装Web服务端,【网关虚拟机】里安装Tor和代理客户端,网络拓扑如下所示。
|--------------|
| |
| Web Server | Web Server ==> 192.168.89.12:80
| |
|--------------|
|
| Internal [192.168.89.12:80]
|
| Internal [192.168.89.64:80]
|
|--------------|
| | 192.168.89.64:80 ==> tor
| Tor Gateway | tor ==> 127.0.0.1:10086
| | 127.0.0.1:10086 ==> V2Ray
|--------------| V2Ray ==> Internet
|
|
|
Internet
搭建暗网网站是高风险操作。为了防止【单点故障】的风险,建议【网关虚拟机】和【服务器虚拟机】用不同的操作系统。为了减小攻击面,操作系统应该尽量精简,安装时选择【极小安装】。为了防止【虚拟机穿透】,按照楼上上上的方法,关掉虚拟机不用的功能。
软件选择:
网关虚拟机:推荐Debian,
Web服务器虚拟机:同上
Web服务器软件:根据安全专家的意见,Apache漏洞太多,Web服务器推荐Nginx。
网关虚拟机是第一道堡垒,操作系统用【世界上最安全的操作系统】OpenBSD。
摘录知乎上的一个问题:《长期使用FreeBSD或OpenBSD是一种什么体验?》
回答1:
公司里有台freebsd服务器做邮件网关,几年前我亲手上架的,天天都在用,但是我找不着它在哪儿了……
回答2:
太稳了,稳到没有折腾它的动力。
OpenBSD在modem和无线网关中间,安全性有保证……
回答3:
做服务器的体验就是,过了好多年没维护过,居然还活着而且工作正常,而你都忘了那台机器扔在哪了。
回答4:
记得08年左右在杭州工作,用M0n0Wall修改版 做路由(FREEBSD精简版,带网页设置,跟普通路由器差不多),给一个500多台电脑的网吧做路由(P3 + 256MB内存 + Intel千兆网卡X3),下接一个千兆管理交换机,用来隔离ARP病毒这种东西。
1、两条线路电信+网通 双百兆对等线路接入。自己写了个脚本自动获取路由表,根据路由表走电信与网通。
2、开启网卡轮询模式,可以扛很大的DDOS攻击。
3、稳定到你没话说!除了停电、电信断网、电源故障,这路由器就没宕机过
4、而且下载是不限速的、上传限速。500多台电脑,顾客全满的情况下,速度依旧快的一B!
目前为止,还没见其他LINUX软路由能强大到这种程度。
个人玩过所有的软路由系统。。。。
OpenBSD下载链接:https://www.openbsd.org/faq/faq4.html#Download
和前面一样,网关虚拟机需要配置三块虚拟网卡,在VirtualBox里面配置:
eth0: 设置为【NAT模式】。这块网卡用来连接公网。
eth1: 设置为【内部网络】。这块网卡用来连接Web服务器。eth1所在的网络是192.168.89.0,此网络上有两台机器:
- 192.168.89.64: 网关IP
- 192.168.89.1: Web服务器IP
eth2: 设置为【Host-Only】。这块网卡和宿主机连接,用来SSH。eth2所在的网络是192.168.12.0,此网络上有两台机器:
- 192.168.12.64: 网关IP
- 192.168.12.1: 宿主机IP
从这里可以下载OpenBSD版的V2Ray(4.23.1):
https://github.com/v2ray/v2ray-core/releases/download/v4.23.1/v2ray-openbsd-64.zip
https://github.com/v2ray/v2ray-core/releases/download/v4.23.1/v2ray-openbsd-64.zip.dgst
zip包验证并解压以后,其它无用的readme之类文件可以删除,只保留以下5个文件:
- v2ray:V2Ray程序本体。
- v2ctl:V2Ray控制器。
- geoip.dat:IP数据文件。
- geosite.dat:域名数据文件。
- config.json:配置文件。
V2Ray配置文件使用ws+tls+cdn,具体配置见这层楼:
https://pincong.rocks/video/item_id-14286
在/etc/local下新建v2ray目录,把上面5个文件扔到这个目录下,v2ray和v2ctl赋执行权限:
mkdir /etc/local/v2ray
chmod +x /etc/local/v2ray/v2*
注意如果此时会以root权限执行V2Ray程序,新建用户v2ray:
useradd -d /var/empty -s /sbin/nologin v2ray
然后在/etc/rc.d下新建文件v2ray,配置OpenBSD启动脚本:
#!/bin/ksh
#
# $OpenBSD: v2ray.rc rpe Exp $
daemon="/usr/local/v2ray/v2ray"
daemon_timeout=60
daemon_user=v2ray
. /etc/rc.d/rc.subr
rc_bg=YES
rc_reload=NO
rc_stop() {
pkill -INT -xf "${pexp}"
}
rc_cmd $1
配置好脚本以后,运行
rcctl enable v2ray
/etc/rc.d/v2ray
就可以让V2Ray自启并在后台运行。安装curl并运行:
curl -x socks5h://127.0.0.1:10086 http://www.google.com/
可以测试V2Ray是否搭建成功。
安装Tor:
pkg_add tor
建立目录,放置Tor网站的私钥,同时设置权限:
mkdir -p /var/lib/tor/hidden_service
chmod 700 -R /var/lib/tor/hidden_service
chown -R _tor:_tor /var/lib/tor/hidden_service
Tor网站不需要IP或者域名,它用一个随机生成的hash来唯一标识。能唯一控制这个域名的就是hash对应的私钥,因此必须保管好私钥,如果私钥泄露即丧失了对暗网域名的控制权。
然后编辑/etc/tor/torrc文件,在其中添加以下内容:
Socks5Proxy 127.0.0.1:10086
SocksPort 0
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 192.168.89.12:80
HiddenServiceVersion 2
HiddenServiceMaxStreams 10
HiddenServiceMaxStreamsCloseCircuit 1
HiddenServiceNumIntroductionPoints 10
需要注意的是HiddenServiceVersion这一行,tor有第二代和第三代两种协议可选,第三代Tor协议隐蔽性更好,可以抗流量分析,同时使用更强的加密算法(二代Tor协议只使用RSA1024),此外还支持客户端验证功能。唯一的“缺点”是.onion域名有56位,比较长。OpenBSD上Tor安装好以后默认使用第三代协议,即
HiddenServiceVersion 3
如果这一栏取3,则tor会在hidden_service目录下生成私钥和你的域名,域名保存在hostname文件中,输入
cat /etc/lib/tor/hidden_service/hostname
可以查看域名。
这里为了方便自定义域名前缀,使用较弱的第二代协议。
如果域名前缀比较短,可以用工具爆破出来,记录两个工具:
- Eschalot,CPU上的爆破工具,下载:https://github.com/ReclaimYourPrivacy/eschalot
- Scallion,用GPU暴力破解Hash的工具,下载:https://github.com/lachesis/scallion
Eschalot支持多核并行猜解Hash,编译前需要有libssl-dev库。编译安装后,假设要爆破以“pincong”开头的Hash串,可以运行:
./eschalot -vct16 -p pincong
这里用16核CPU计算Hash。如果有游戏显卡,可以用Scallion爆破。
各种设备爆破的速度,单位:百万Hash/秒。
- Intel i7-2620M 9.9 MH/s
- Intel i5-5200U 118 MH/s
- NVIDIA GT 520 38.7 MH/s
- NVIDIA Quadro K2000M 90 MH/s
- NVIDIA GTS 250 128 MH/s
- NVIDIA GTS 450 144 MH/s
- NVIDIA GTX 670 480 MH/s
- NVIDIA GTX 970 2350 MH/s
- NVIDIA GTX 980 3260 MH/s
- NVIDIA GTX 1050 (M) 1400 MH/s
- NVIDIA GTX 1070 4140 MH/s
- NVIDIA GTX 1070 TI 5100 MH/s
- NVIDIA GTX TITAN X 4412 MH/s
- NVIDIA GTX 1080 5760 MH/s
- NVIDIA Tesla V100 11646 MH/s
- AMD A8-7600 APU 120 MH/s
- AMD Radeon HD5770 520 MH/s
- AMD Radeon HD6850 600 MH/s
- AMD Radeon RX 460 840 MH/s
- AMD Radeon RX 470 957 MH/s
- AMD Radeon R9 380X 2058 MH/s
- AMD FirePro W9100 2566 MH/s
- AMD Radeon RX 480 2700 MH/s
- AMD Radeon RX 580 3180 MH/s
- AMD Radeon R9 Nano 3325 MH/s
- AMD Vega Frontier Edition 7119 MH/s
计算公式:Estimated time=2^(5*length-1) / hashspeed (单位是秒)
举个例子,如果用GTX1070,猜解pincong前缀的hash,那么花费时间是:2^(5*7-1) / 4140 / 10^6 = 4秒
暗网Web服务器和明网上的Web服务器完全一样。上一步中,网关的地址是192.168.89.64:80,Web服务只要监听这个端口就OK了。
网关用*BSD是为了避免【单点故障】的风险,搭建Web服务器可以选一个喜欢的Linux发行版。Web服务不要用
此处贴一个超级简单的Nginx配置
server {
listen 80;
server_name pincongrocks8964.onion;
server_tokens off;
autoindex off;
charset utf-8;
gzip on;
root /var/www;
location / {
index index.html;
}
}
暗网Web服务器和明网上的Web服务器完全一样。上一步中,网关的地址是192.168.89.64:8...
网关强烈推荐 OPNsense。
上面这个Tor网关,可以装在OpenBSD上,号称世界上最安全的系统。安装OpenBSD时选中下面三...
Alpine Linux 更小,也非常安全,非常适合做网关。
网关强烈推荐 OPNsense。
比较精简的,占用资源少服务器端Linux发行版,有没有什么建议?内存<=512MB,硬盘<=2G.
我正打算试试这个Alpine Linux,上面能跑一个静态Web服务就够了。
比较精简的,占用资源少服务器端Linux发行版,有没有什么建议?内存<=512MB,硬盘<=2G.我...
Docker 常用的那几个发行版都可以,比如 Debian slim。
俺很喜欢这两个番。
同感≖‿≖✧
熊熊乖,《小书痴的下克上》第二季开播了,我回来打个广告谁把我解除禁止登陆的?为什么我查不到
嗯嗯,聽說了,這季度重頭戲之一呢,這種穿越劇真的很獨特的,比勇者鬥惡龍那種好看多了!
我查了一下管理記錄也沒有,我猜解除的可能是站長吧……
按道理,这季度可以拍完《神殿的见习女巫》,下季才是干女儿。站长不会无理由解除我的封禁
唉,想起第一季看到男主和女主對峙問女主真實身份那段好虐啊( ;∀;) ,
女主對書的執著令人敬佩!
那如果不是站長我就不太清楚了…
唉,想起第一季看到男主和女主對峙問女主真實身份那段好虐啊( ;∀;) ,女主對書的執著令人敬佩!那如...
他不是男主。。。大神官才是。。
讲的是大叔和萝莉的爱情,路兹就是个跑龙套的,后面基本没戏分了
他不是男主。。。大神官才是。。讲的是大叔和萝莉的爱情,路兹就是个跑龙套的,后面基本没戏分了
soga,期待第二季的劇情╮(๑•́ ₃•̀๑)╭還有從零開始的異世界生活第二季,都很棒!
晚上8点以后帮我禁止登陆下
可能要找其他人,我管理員正處於請假狀態,而且lisa姐聲望比我高,
我幫你@其他管理員來幫忙吧……
@懦夫斯基
懦懦前輩,麻煩在中國時間晚上8點以後幫Lisa姐重新禁止登錄,可以嗎?
https://2049bbs.xyz/t/4106你被谁性骚扰了?
我也不知道( ;∀;) 莫名其妙的…
可能要找其他人,我管理員正處於請假狀態,而且lisa姐聲望比我高,我幫你@其他管理員來幫忙吧……懦懦...
禁止登录仅仅用于违规者和决心永别账号者,临时退出者请锻炼自己的自控能力。
好吧,你没事就好。抱抱
嗯,抱抱,一切都過去了…沒事了…
#!/bin/bash
echo "installation beginning"
printf "Input domain name: "
read domain
printf "Input websocket path: "
read wspath
mkdir tmp
wget "https://caddyserver.com/download/linux/amd64?license=personal&telemetry=off" -O tmp/caddy.tar.gz
wget "https://github.com/v2ray/v2ray-core/releases/download/v4.23.1/v2ray-linux-64.zip" -O tmp/v2ray.zip
gunzip tmp/caddy.tar.gz
tar -xvf tmp/caddy.tar -C tmp/
unzip tmp/v2ray.zip -d tmp/
mkdir -p /opt/breakwall /opt/breakwall/ssl /opt/breakwall/html
cp tmp/caddy /opt/breakwall/
cp tmp/v2ray /opt/breakwall/
cp tmp/v2ctl /opt/breakwall/
cp tmp/geoip.dat /opt/breakwall/
cp tmp/geosite.dat /opt/breakwall/
rm -rf tmp/
openssl genrsa -out /opt/breakwall/ssl/ca.key 2048
openssl req -new -key /opt/breakwall/ssl/ca.key -out /opt/breakwall/ssl/ca.csr -subj "/CN=$domain"
openssl req -x509 -days 3650 -key /opt/breakwall/ssl/ca.key -in /opt/breakwall/ssl/ca.csr -out /opt/breakwall/ssl/ca.crt
cat << EOF > /opt/breakwall/Caddyfile
https://$domain
tls /opt/breakwall/ssl/ca.crt /opt/breakwall/ssl/ca.key
root /opt/breakwall/html
proxy /$wspath https://127.0.0.1:8964
EOF
cat << EOF > /opt/breakwall/config.json
{
"inbound": {
"listen": "127.0.0.1",
"port": 8964,
"protocol": "socks",
"settings": {"udp": true},
"streamSettings": {
"wsSettings": {"path": "/$wspath"},
"network": "ws"
}
},
"outbound": {"protocol": "freedom"}
}
EOF
cat << EOF > /etc/systemd/system/caddy.service
[Unit]
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service
[Service]
Type=simple
User=breakwall
ExecStart=/opt/breakwall/caddy -conf=/opt/breakwall/Caddyfile -agree=true
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
EOF
cat << EOF > /etc/systemd/system/v2ray.service
[Unit]
After=network.target nss-lookup.target
Wants=network-online.target
[Service]
Type=simple
User=breakwall
ExecStart=/opt/breakwall/v2ray
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_NET_RAW
NoNewPrivileges=yes
Restart=on-failure
RestartPreventExitStatus=23
[Install]
WantedBy=multi-user.target
EOF
rand_str=
function random_string() {
rand_num=$(($(date +%s%N)%$(($2-$1+1))+$1))
rand_str=$(cat /dev/urandom | tr -dc 'a-z' | fold -w ${rand_num} | head -n 1)
}
random_string 5 20
title=$rand_str
random_string 5 20
header=$rand_str
MIN_LINE=100
MAX_LINE=200
n_paragraphs=$(($(date +%s%N)%$(($MAX_LINE-$MIN_LINE+1))+$MIN_LINE))
random_string 50 120
paragraph=$rand_str
i=0
while(($i<n_paragraphs))
do
random_string 50 120
paragraph="${paragraph}<br />${rand_str}"
let "i++"
done
cat << EOF > /opt/breakwall/html/index.html
<html>
<head>
<title>${title}</title>
</head>
<body>
<h1>${header}</h1>
<p>${paragraph}</p>
</body>
</html>
EOF
useradd --system --home-dir /nonexistent --shell /sbin/nologin breakwall
chown -R breakwall:breakwall /opt/breakwall/html
chown -R breakwall:breakwall /opt/breakwall/ssl
chmod 700 /opt/breakwall/ssl
chmod +x /opt/breakwall/v2ray /opt/breakwall/v2ctl /opt/breakwall/caddy
systemctl daemon-reload
systemctl enable caddy v2ray --now
echo "Installation finished."
V2Ray一键安装脚本,自用。
特点:
特点:
- 使用比较少见的配置组合:Socks5+WS+TLS+Web,安全性靠TLS提供,Websocket路径提供抗主动探测能力。理论上说,少一道vmess协议,速度更快,延迟更低。
- 部分V2Ray客户端不支持Socks5+WS+TLS配置。
- 使用自签名证书,不需要和公共服务交互(CA),麻烦更少。但是如果客户端不导入自签证书,有被中间人攻击的风险。
- 墙在未来有封杀自签名tls流量的可能
- 自动生成一个填充随机内容的网页,防止主动探测。
楼上的一键卸载脚本:
systemctl stop v2ray caddy
systemctl disable v2ray caddy
rm -rf /opt/breakwall
rm /etc/systemd/system/v2ray.service
rm /etc/systemd/system/caddy.service
userdel breakwall
socks5+ws+tls组合很多客户端不支持,必须自己导入配置文件。
config.json:
config.json:
{
"inbounds":[
{"listen": "127.0.0.1", "port":"10086", "protocol":"socks", "settings":{"udp":true}},
{"listen": "127.0.0.1", "port":"10087", "protocol":"http"}
],
"outbounds": [
{
"tag": "proxy",
"protocol":"socks",
"settings":{"servers":[{"address":"IP地址", "port":443}]},
"streamSettings":{
"network":"ws",
"security":"tls",
"wsSettings":{"path":"/WS路径"},
"tlsSettings":{"serverName":"域名"}
}
},
{"tag":"direct", "protocol":"freedom"}
],
"routing":{
"domainStrategy":"IPOnDemand",
"rules": [ {"outboundTag":"direct", "type":"field", "ip":["geoip:private"]} ]
}
}
install.sh
https://paste.ee/p/v0NAV
https://paste.ee/p/v0NAV
socks5+ws+tls组合很多客户端不支持,必须自己导入配置文件。config.json:
这个配置是对的!这个配置实现了socks5 over wss
我在这个帖子里https://pincong.rocks/question/item_id-201013的想法是socks5 over TLS。但是2049的人v2rayuser和小二说的CDN反代来保证自己的IP不被封,更实用一些!
如果按我说的socks5 over TLS,虽然可以保证翻墙,但是GFW可以直接封了IP,就惨了!所以应该和其他网站共享IP,也就是找CDN公司做反代。cf的反代【就是nginx】只能代理http,https请求,所以终极方案就是你发的socks5 over wss。但是网上传的配置文件基本都是vmess over wss。
====================分割线========================
TOR的meek网桥其实也是这个逻辑,用Azure CDN来做反代。
tor的meek,实现了socks5 over https。
v2ray,实现了 socks5 over wss。
按道理,不考虑tor的话,meek方式性能更好,内存占用更低。
想了想,v2ray的确太大了!
不过自己直接用meek改来用。
PC端:直接用meek-client.exe 就好了
服务端:修改meek-server程序,把tor那部分,改成geph-exit那部分,就可以用了~
迷雾通的geph-exit 表示出口节点的代码实现。
我还在看bridge的实现,了解中间都发生了什么。
不过自己直接用meek改来用。
PC端:直接用meek-client.exe 就好了
服务端:修改meek-server程序,把tor那部分,改成geph-exit那部分,就可以用了~
case "proxy":
if len(command) < 1 {
return
}
rlp.Encode(soxclient, true)
dialStart := time.Now()
host := command[1]
var remote net.Conn
for _, ntype := range []string{"tcp6", "tcp4"} {
tcpAddr, err := net.ResolveTCPAddr(ntype, host)
if err != nil || isBlack(tcpAddr) {
continue
}
remote, err = net.DialTimeout(ntype, tcpAddr.String(), time.Second*30)
if err != nil {
continue
}
break
}
if remote == nil {
return
}
atomic.AddUint64(&tunnCount, 1)
defer atomic.AddUint64(&tunnCount, ^uint64(0))
// measure dial latency
dialLatency := time.Since(dialStart)
if statClient != nil && singleHop == "" && reportRL.Allow() {
statClient.Timing(hostname+".dialLatency", dialLatency.Milliseconds())
}
defer remote.Close()
onPacket := func(l int) {
if statClient != nil && singleHop == "" {
before := atomic.LoadUint64(&counter)
atomic.AddUint64(&counter, uint64(l))
after := atomic.LoadUint64(&counter)
if before/1000000 != after/1000000 {
statClient.Increment(hostname + ".transferMB")
}
}
}
go func() {
defer remote.Close()
defer soxclient.Close()
cwl.CopyWithLimit(remote, soxclient, limiter, onPacket, timeout)
}()
cwl.CopyWithLimit(soxclient, remote, limiter, onPacket, timeout)
迷雾通的geph-exit 表示出口节点的代码实现。
我还在看bridge的实现,了解中间都发生了什么。
socks5+ws+tls组合很多客户端不支持,必须自己导入配置文件。config.json:
"streamSettings":{
"network":"ws",
"security":"tls",
"wsSettings":{"path":"/WS路径"},
"tlsSettings":{"serverName":"域名"}
}可以改成下面这样,使用 https 转发,这样可以部署到不支持 wss 的CDN上
"streamSettings":{
"network":"h2",
"security":"tls",
"httpSettings":{"path":"/http路径"},
"tlsSettings":{"serverName":"域名"}
}PS:和meek方式不同!不兼容!
meek代理使用的是post请求,但是v2ray的https转发使用的是put请求
这个配置是对的!这个配置实现了socks5 over wss我在这个帖子里https://pinco...
查了一下,果然很多Sock5 over TLS。。。
不过这种方法除了不能用CDN,也不能抵抗主动探测。比较好的方法是Socks5 over https,搭配前置代理使用。
查了一下,果然很多Sock5 over TLS。。。不过这种方法除了不能用CDN,也不能抵抗主动探测...
开着tor的情况下,你把火狐的代理方式改成http,端口填9150,随便打开一个网页看看。
我觉得socks5可以实现返回http报文模拟自己是http服务器。
网上的方式都是vmess over wss,你的配置文件是 socks5 over wss比他们性能好很多!
我提供的是一种 socks5 over https 逻辑上不用 wss库了,性能应该好些。
我的总结,已经没有研究SS,Vmess协议的价值了!
如果我是GFW,看到目的IP地址是 VPS服务商的,流量不是TLS的加密流量,直接封IP就是了!
TLS1.3 必然是主流, DoH + ESNI的代码讲解,我放在2049了, ESNI的功能,需要配合DoH,
原因是传统的DNS,存在中间人攻击,就像现在的DNS污染,既然可以给错误的IP应答,自然可以给错误的TXT应答,导致esni不可信!DoH保证了不存在中间人攻击。
品葱发帖,太费葱,而且没人看,没人回,没人点赞,不能回本。。。
开着tor的情况下,你把火狐的代理方式改成http,端口填9150,随便打开一个网页看看。我觉得so...
trojan是socks5 over TLS,
不过它在socks5的头部又加了一段hash,如果hash和预设的密码对不上,就转发给http服务器,防止主动探测。
https://trojan-gfw.github.io/trojan/protocol
你已经领会了翻墙的精髓。。。自己可以独立开发一个翻墙软件,我觉得完全没有问题!额外的,你在刚才的基础...
俺认为,需要有扎实的密码学知识和经验,才能开发翻墙工具。这个要求非常高,一般人很难达到。
这个配置是对的!这个配置实现了socks5 over wss我在这个帖子里https://pinco...
有一个问题想问Lisa:为什么socks5 over TLS不支持cloudflare反代?(比如trojan)
按理说,如果cloudflare打开了full或者strict模式,SSL流量是端到端加密的。中间人看不到TLS里面东西,所以socks,http应该都可以走反代才对。
有一个问题想问Lisa:为什么socks5 over TLS不支持cloudflare反代?(比如t...
nginx 有个 ngx_stream_core_module 模块可以反向代理
CF应该是没有启用这个模块【我猜的】
https://nginx.org/en/docs/stream/ngx_stream_core_module.html
The ngx_stream_core_module module is available since version 1.9.0. This module is not built by default, it should be enabled with the --with-stream configuration parameter.
如果有空,以后我讲解下nginx源码吧。。。
DNS返回的地址是CDN的,不是品葱的。所以,给证书的是CDN,而不是品葱服务器。再有,CDN必须要...
用来翻墙的VPS,私钥保存在自己服务器上。CF只转发客户端到VPS之间的流量,不拿私钥,按理说是看不到里面协议的。。
strict模式:
https://support.cloudflare.com/hc/zh-cn/articles/200170416-%E4%BD%BF%E7%94%A8-Cloudflare-%E7%9A%84%E7%AB%AF%E5%88%B0%E7%AB%AF-HTTPS-%E7%AC%AC-3-%E9%83%A8%E5%88%86-SSL-%E9%80%89%E9%A1%B9
用来翻墙的VPS,私钥保存在自己服务器上。CF只转发客户端到VPS之间的流量,不拿私钥,按理说是看不...
我觉得过程是这样的
pincong申请了 Let's Encrypt 的证书 A
然后用了CF的CDN,所以CF也签发了pincong的证书B
用户连到CDN的时候,拿到了证书B,CDN解密以后,用证书A加密,转发给品葱
整个过程,CDN这边肯定会解密才对。
我觉得过程是这样的pincong申请了 Let's Encrypt 的证书 A然后用了CF的CDN,...
我测试了一下,确实是这样,客户端看到的是CDN的证书,而不是服务器的证书。
CDN会解开TLS流量,再用自己的私钥加密,所以只有CDN支持的协议(websocket,http)才可以走代理。
我测试了一下,确实是这样,客户端看到的是CDN的证书,而不是服务器的证书。CDN会解开TLS流量,再...
这个问题,我很早就注意到了。
https://pincong.rocks/article/item_id-306069
https://pincong.rocks/article/item_id-306475
因为迷雾通和品葱,都是把密码明文在CDN里传输的
打算有时间写一下telegram安全使用,搜集一些第三方参考材料:
品葱&膜乎(6篇):
《为什么俺不用 Telegram,兼谈墙外聊天工具的隐私问题》
https://pincong.rocks/article/11131
《Telegramの新手下载教程》
https://pincong.rocks/article/14598
原文出处:《不用VPN 手动输入代理注册使用Telegram》
https://telegra.ph/telegramsocks-09-05
《【牆內活動】如何向牆內普及telegram?》
https://pincong.rocks/question/15077
《Telegram有哪些非常實用的機器人?》
https://pincong.rocks/article/2255
《求推荐一些telegram海外群》
https://www.pincong.rocks/question/1007
《telegram有哪些使用技巧?》
https://mohu.pincong.rocks/question/859
其它来源(6篇):
电报使用教程:如何不翻墙注册并使用电报Telegram,附原版软件
https://telegra.ph/dianbaojiaocheng-12-22
电报Telegram 的优势以及必须的安全设置
https://telegra.ph/telegramyoushianquan-12-22
电报Telegram上如何对付朝廷特务,避免身份泄露
https://telegra.ph/duifutewuzougou-01-05
电报Telegram频道的优点与运行技巧
https://telegra.ph/duifutewuzougou-01-05
Telegram知识
https://congcong0806.github.io/2019/04/11/Telegram/
Telegram 被曝出重大 bug
https://20**bbs.xyz/t/1409
官方FAQ:
https://telegram.org/faq
非官方FAQ:
https://telegramcn.org/faq
品葱&膜乎(6篇):
《为什么俺不用 Telegram,兼谈墙外聊天工具的隐私问题》
https://pincong.rocks/article/11131
《Telegramの新手下载教程》
https://pincong.rocks/article/14598
原文出处:《不用VPN 手动输入代理注册使用Telegram》
https://telegra.ph/telegramsocks-09-05
《【牆內活動】如何向牆內普及telegram?》
https://pincong.rocks/question/15077
《Telegram有哪些非常實用的機器人?》
https://pincong.rocks/article/2255
《求推荐一些telegram海外群》
https://www.pincong.rocks/question/1007
《telegram有哪些使用技巧?》
https://mohu.pincong.rocks/question/859
其它来源(6篇):
电报使用教程:如何不翻墙注册并使用电报Telegram,附原版软件
https://telegra.ph/dianbaojiaocheng-12-22
电报Telegram 的优势以及必须的安全设置
https://telegra.ph/telegramyoushianquan-12-22
电报Telegram上如何对付朝廷特务,避免身份泄露
https://telegra.ph/duifutewuzougou-01-05
电报Telegram频道的优点与运行技巧
https://telegra.ph/duifutewuzougou-01-05
Telegram知识
https://congcong0806.github.io/2019/04/11/Telegram/
Telegram 被曝出重大 bug
https://20**bbs.xyz/t/1409
官方FAQ:
https://telegram.org/faq
非官方FAQ:
https://telegramcn.org/faq
-----BEGIN PGP MESSAGE-----
hQIMA33gFzay35YhARAAxpFpA7aw1sp04CHrWVpH7Yspq3Qt3hOn25o7MUHWRj2s
qoCa6j8cit8pbXMuRzU6UPqesnwFK5sZnE2vS+rD31X/U/hsame6YzrBR413kZBS
eFhrrbVZfAFjDUjtkQXWlQ++OxVDEjyCFdFgEpYNs8DXadgTVJL1pI1fyV16Q/8U
XQCTYeK5/NTB5SjvFFH1TePhnbyA2788/itqlI6ZrfNwIN4WCihvLr4tYjo2h4EE
kU+xhwekVu/jU19tGDzMOefoWZYMeWfyfK9uEbmYELIIRVhxkdtLTdgKNQQt2Ljq
dqlA4r5YPbZnPwoSEqu7Gqq1U42lwnHkr26C+Sy91+y64VlZ3nJ/rO6wYoExtg70
86PMnLMoahF0liZ2YFuHcabQg+XKLJFO/GqbaVWy96FsPLdbcT41UJR7BhuyFMHq
kmeBHxYhAtX5OfmW+qIUiZOpXJugQZRUmcLvADzs3umf53EOHPJhlmSmyU9qYNw7
cTAb6Yf0uTBYUo1rYNpRBEFR2GURgUX7wnxghMQCqqbeqcrPkrcSVoWGjkbk2AyB
3rpPJQbkXiUh5sUuy/l+k5P7Hl51TMruciCfVRNolcLiUzkjopHttfNoE8gkE2T3
bQoYo50so+KIeG0Rz6SWX4OwzieGBkaEkepEPe+sCvrjr/1PH6LFc3PXxzUfh9vS
wcwBL3tw6SeDQulngcEwXLccbCeB03X+jqjpeU4k6b4qOnLMu/SLvcsV4nyPMsfK
TDWQXcqIUM/6pDOHepPNsYbUt9uIMvWFZgPwsMtNEbCmVwuB1KeXw/Iqn/n5CmSf
71ipuPnOM5eLA0oPvKssinndvbFM0wwjBtCXE2PKvX8/90kpUO+RjYTgSpxz2KQ8
eJDow0yXai3bMPiUk6WXSnVgED8ZScy6HhcDzYM9t8V5IGCC3katCgum58p/xEJS
/0cdviKjUE2VdQBseQM9rYylrIwecLR02pJnLxwK3APWEYEKvANg8YoAIDm8Vqy7
oeG4CG9/lHlbWMays7nOR5CZyaMcr8D61FPqTEwj0ZvmXZ9rI9WiQpJugSKlqjCN
gEhOaiAsRt7HZR0uvFmE7p1W1rJowH1PLIR2O3EGroLAhwtWThMWgb/KzUdfHaIC
PMYeUBUye1+w9RuCBoO1wUanrcvlN9GIhaW0fXl5FEy6f61ekJoFgEGCK4y0DS+U
3i4t8NwExBXkvPpvbJYlWF+U4vsDT7adh7LnyJA4B0InOXBxEFQZRkut6+CVvkbx
vx7a5NKXrB3krJtu4g2dqcJK43Z+OorTyeSp5dYz3fC3eHl28zMDU+bVCCUL8yZ2
KhqcDpS7g64qBsWjEmMQ4QXxT9CstbJ0x67iXUYXs2yQpnY2P7SB/YV+tWl2hrE+
eQ9Pc43MVipKjA5lr6W6Go+KBrLmtI4h5sQOgStCzcpBfvDWqfD2F3nu16aLOv+o
8U5ePdabqpJAjE1RQiMLVhUPaSdrPsrSoqHgNRcdLy19YRmaugaqCVCdXTLlX6wQ
/pstY0iKiKx+q/co+HjIcZ0Te6aQBl4Ip4h8x/BX
=4MzZ
-----END PGP MESSAGE-----
hQIMA33gFzay35YhARAAxpFpA7aw1sp04CHrWVpH7Yspq3Qt3hOn25o7MUHWRj2s
qoCa6j8cit8pbXMuRzU6UPqesnwFK5sZnE2vS+rD31X/U/hsame6YzrBR413kZBS
eFhrrbVZfAFjDUjtkQXWlQ++OxVDEjyCFdFgEpYNs8DXadgTVJL1pI1fyV16Q/8U
XQCTYeK5/NTB5SjvFFH1TePhnbyA2788/itqlI6ZrfNwIN4WCihvLr4tYjo2h4EE
kU+xhwekVu/jU19tGDzMOefoWZYMeWfyfK9uEbmYELIIRVhxkdtLTdgKNQQt2Ljq
dqlA4r5YPbZnPwoSEqu7Gqq1U42lwnHkr26C+Sy91+y64VlZ3nJ/rO6wYoExtg70
86PMnLMoahF0liZ2YFuHcabQg+XKLJFO/GqbaVWy96FsPLdbcT41UJR7BhuyFMHq
kmeBHxYhAtX5OfmW+qIUiZOpXJugQZRUmcLvADzs3umf53EOHPJhlmSmyU9qYNw7
cTAb6Yf0uTBYUo1rYNpRBEFR2GURgUX7wnxghMQCqqbeqcrPkrcSVoWGjkbk2AyB
3rpPJQbkXiUh5sUuy/l+k5P7Hl51TMruciCfVRNolcLiUzkjopHttfNoE8gkE2T3
bQoYo50so+KIeG0Rz6SWX4OwzieGBkaEkepEPe+sCvrjr/1PH6LFc3PXxzUfh9vS
wcwBL3tw6SeDQulngcEwXLccbCeB03X+jqjpeU4k6b4qOnLMu/SLvcsV4nyPMsfK
TDWQXcqIUM/6pDOHepPNsYbUt9uIMvWFZgPwsMtNEbCmVwuB1KeXw/Iqn/n5CmSf
71ipuPnOM5eLA0oPvKssinndvbFM0wwjBtCXE2PKvX8/90kpUO+RjYTgSpxz2KQ8
eJDow0yXai3bMPiUk6WXSnVgED8ZScy6HhcDzYM9t8V5IGCC3katCgum58p/xEJS
/0cdviKjUE2VdQBseQM9rYylrIwecLR02pJnLxwK3APWEYEKvANg8YoAIDm8Vqy7
oeG4CG9/lHlbWMays7nOR5CZyaMcr8D61FPqTEwj0ZvmXZ9rI9WiQpJugSKlqjCN
gEhOaiAsRt7HZR0uvFmE7p1W1rJowH1PLIR2O3EGroLAhwtWThMWgb/KzUdfHaIC
PMYeUBUye1+w9RuCBoO1wUanrcvlN9GIhaW0fXl5FEy6f61ekJoFgEGCK4y0DS+U
3i4t8NwExBXkvPpvbJYlWF+U4vsDT7adh7LnyJA4B0InOXBxEFQZRkut6+CVvkbx
vx7a5NKXrB3krJtu4g2dqcJK43Z+OorTyeSp5dYz3fC3eHl28zMDU+bVCCUL8yZ2
KhqcDpS7g64qBsWjEmMQ4QXxT9CstbJ0x67iXUYXs2yQpnY2P7SB/YV+tWl2hrE+
eQ9Pc43MVipKjA5lr6W6Go+KBrLmtI4h5sQOgStCzcpBfvDWqfD2F3nu16aLOv+o
8U5ePdabqpJAjE1RQiMLVhUPaSdrPsrSoqHgNRcdLy19YRmaugaqCVCdXTLlX6wQ
/pstY0iKiKx+q/co+HjIcZ0Te6aQBl4Ip4h8x/BX
=4MzZ
-----END PGP MESSAGE-----
75.0
Firefox Release
April 7, 2020
Version 75.0, first offered to Release channel users on April 7, 2020
We'd like to extend a special thank you to all of the new Mozillians who contributed to this release of Firefox.
New
With today's release, a number of improvements will help you search smarter, faster. Type less and find more with Firefox's revamped address bar:
Focused, clean search experience that's optimized for smaller laptop screens
Top sites now appear when you select the address
Improved readability of search suggestions with a focus on new search terms
Suggestions include solutions to common Firefox issues
On Linux, the behavior when clicking on the Address Bar and the Search Bar now matches other desktop platforms: a single click selects all without primary selection, a double click selects a word, and a triple click selects all with primary selection
地址栏在输入模式下会放大,可谓近年来Firefox唯一照顾我们老年用户使用体验的改动,颇有一种上网冲浪的旧时气息。现在的界面设计都喜欢劈头盖脸砸你一堆按钮,勾引用户不小心点进去制造PV。像我这样老掉牙的键盘侠,从刚上网的时候就习惯了直接记忆网址,从不搜索跳转也不喜欢从收藏夹打开,已经很不受这些新软件的欢迎了。
地址栏在输入模式下会放大,可谓近年来Firefox唯一照顾我们老年用户使用体验的改动,颇有一种上网冲...
看到这个,我想抱团有没有人像我一样用windows是用“运行”而不是用程序/快捷方式的?
https://www.zhihu.com/question/21955083
看到这个,我想抱团有没有人像我一样用windows是用“运行”而不是用程序/快捷方式的?
https://twitter.com/verge/status/1251170549964902401
喜欢win+r的福音
https://pincong.rocks/video/item_id-17625
我把KCP相關代碼講解留在這裏了,希望能幫上你吧
---
翻墻相關代碼,我已經都刪了。
GitHub賬號也已經注銷。
應該不會再參與這類話題了。
以後的我,只想發歌了~
已經和admin完成商量
放棄儅管理員,換來5000葱隨便發音樂
很划算的買賣
我把KCP相關代碼講解留在這裏了,希望能幫上你吧
---
翻墻相關代碼,我已經都刪了。
GitHub賬號也已經注銷。
應該不會再參與這類話題了。
以後的我,只想發歌了~
已經和admin完成商量
放棄儅管理員,換來5000葱隨便發音樂
很划算的買賣

