当前位置: 首页 > news >正文

shafow网站是谁做的/google中文搜索引擎

shafow网站是谁做的,google中文搜索引擎,郑州外贸网站建设公司价格,沈阳网站建设制作1. n2n 简介 上文实验分析了 FRP 和 Zerotier 的利弊,本文再介绍另一种内网穿透方案,n2n。 n2n 是 C/S 架构的内网穿透服务,不同于 FRP 的 反向代理,它的原理是类似 Zerotier 的先打孔,打孔失败再尝试转发。关于打孔本…

1. n2n 简介

上文实验分析了 FRP 和 Zerotier 的利弊,本文再介绍另一种内网穿透方案,n2n。
n2n 是 C/S 架构的内网穿透服务,不同于 FRP 的 反向代理,它的原理是类似 Zerotier 的先打孔,打孔失败再尝试转发。关于打孔本文不会展开介绍,只说一点,国内网络打孔成功率不低,成功后两个客户端之间的通信无需经过服务端转发。

与 FRP 相比,n2n 的优势在于它能打孔;因此速度和用户容量全面优于 FRP,延迟大致持平。
与 Zerotier 相比,n2n 的优势在于:
1.Zerotier 是商业产品,以后的收费策略未可知。n2n 是开源的。
2.Zerotier 只有不开源的 moon 服务器能搭建,根服务器在美国;n2n 全开源,根服务器可以自行搭建。
3.n2n 服务端,客户端均轻量,结构比 Zerotier 更简单。实施时只需要配好配置文件和脚本传给客户,客户每次运行脚本即可连接,对小白客户的实施也比 Zerotier 容易。
4.n2n 打孔速度比 Zerotier 快,Zerotier 常常出现第一次连接需要等待的卡顿感。

n2n 的 缺点在于,不提供 Windows 编译版本,没有官方图形界面,本文会提供编译好的 n2n 3.0。

前提还是需要一台云服务器,选用主流云服务器即可。本文仍举例星露谷物语联机为应用场景。

2. 安装 n2n 服务端

下载 n2n,https://github.com/ntop/n2n/releases/tag/3.0
这里简单说一下怎么看安装包的名字,先看扩展名,代表系统类型,.rpm 是 redhat 类系统,如 CentOS,.deb 是 debian 类系统,如 Ubuntu。
再看文件尾,代表 CPU 架构,x86_64 代表 32位/64位 通用,i386 代表 32位,amd64 代表 64位,arm 代表 arm 架构(如树莓派,手机)。
github 上开源项目的 release 一般都会提供针对几个主流 linux 系统编译的可运行文件,其他的系统请用源代码自行编译。(😡难道 windows 不是主流系统?)
可以用这几条命令查看自己的系统架构,linux 发行版 等信息。

uname -m
lsb_release -a
cat /etc/*release*

比如我的是 Ubuntu 20.04.5 LTS x86_64,因此选择 n2n_3.0.0-1038_amd64.deb。

用 apt 来安装 deb 包。

apt install n2n_3.0.0-1038_amd64.deb

等待安装完毕,systemctl 里面就多了 supernode 和 edge 两个服务,也就是 n2n 的服务端和客户端。这条命令可以看到服务端此时并未开启。

systemctl status supernode

3. 安装 n2n 客户端,第一次连接

先对云服务器上的服务端进行配置。

vim /etc/n2n/supernode.conf
-p=7984
-F=FeigeGarden

-p 是端口号,随意填写,这一步做完后还需要在云服务器的防火墙面板放行 7984 端口(UDP)。
-F 是服务器的名字,客户端连接时要核对。

然后用该命令启动 n2n 服务端,并查看其状态。

systemctl start supernode
systemctl status supernode

可以看到 supernode.service 的启动命令是 /usr/sbin/supernode /etc/n2n/supernode.conf -f

然后在本地PC上安装 n2n 客户端,如果是 linux 系统,则安装步骤和安装服务端一模一样。
下面介绍的是 windows 系统,n2n 并未提供 windows 系统的编译版本,因此需要用 Visual Studio 编译源码。
本文提供 EasyN2N 作者编译好的 n2n-3.0,n2n-keygen 工具。以及 windows 系统还需要额外安装的虚拟网卡 tap-windows-9.23.3。

https://pan.baidu.com/s/103fC4QAkz4uvjj9mippgxA?pwd=fgtc

在 本地PC 下载后解压,先安装虚拟网卡 tap-windows-9.23.3,不赘述。
然后用 n2n-keygen 生成公钥

 .\n2n-keygen.exe -F FeigeGarden

这里的 -F FeigeGarden 就是刚才服务端的配置文件 supernode.conf 中的 -F 服务器名。
可以看到一串加密后的乱码,这就是我们连接服务器的凭证。

在 本地PC 的 edge.exe 同目录下创建一个 edge.conf 文件。

-l 172.7.76.71:7984
-P OjWvhPvHc9Qo5tPthq9vEZfGvq3fn7+498fDDS0Oyqm
-c StardewValley

-l 是云服务器的 IP 和 端口。
-P 是 公钥,刚才 n2n-keygen 生成的密文,用来验证服务器名。
-c 是 community,可以理解为房间名,不同房间网络不互通。

在 本地PC 调出 cmd(管理员权限),运行客户端,尝试第一次连接。

C:\prohos\pro\n2n\edge C:\prohos\pro\n2n\edge.conf

出现如下画面证明连接成功,红圈内为 虚拟局域网IP 10.219.185.106,关闭此窗口则连接断开。

在这里插入图片描述

完成第一次连接后,只要给每个小伙伴的 本地PC 都安装上客户端,写好配置文件运行成功,就可以进行联机了,只要星露谷房主记住自己的虚拟局域网IP 10.219.185.106,其他成员填写这个 IP 加入游戏即可。

4. 配置用户权限

虽然已经可以成功联机,但是这样配置的服务器仅有一个验证凭据 -P,太单薄。我们还需要用用户名密码的方式强化下 n2n 服务器的访问权限。

在云服务器上修改配置文件,/etc/n2n/supernode.conf,加入这一行

-c=/etc/n2n/community.list

然后创建 /etc/n2n/community.list,如下所示是仅允许 StardewValley 和 borderlands2 两个房间名,以及各个房间允许的用户,lengyu,sister1,sister2,friend5,friend6。其他所有连接请求全部拒绝。更多 community.list 支持的规则请参阅 n2n 官方文档。 https://github.com/ntop/n2n/blob/dev/doc/Communities.md

StardewValley
* lengyu nZaltWogB+Vv6dAUEiNjGfzrCyD2SBsdH+CDdtPRI4y
* sister1 iqgGLHRzTNbcL6ui6QrTANlfUPQ3jMniTwPSxFQqur8
* sister2 6lhQQhfx9fUHcy10fLDomOoRvHbkG-Q9oPajSErt76C
* friend5 2h-xsXFw0XQol7Ef0H14LSI+rvBlrPLjOVf9s7Ov6aO
* friend6 j9CeNWBnJJ5i0-Hy811rHHJHkkY+8Frv39OEFexv2a0borderlands2
* lengyu nZaltWogB+Vv6dAUEiNjGfzrCyD2SBsdH+CDdtPRI4y
* sister1 iqgGLHRzTNbcL6ui6QrTANlfUPQ3jMniTwPSxFQqur8
* sister2 6lhQQhfx9fUHcy10fLDomOoRvHbkG-Q9oPajSErt76C

用户名后面那串乱码是密码,是加密过的密文。现在说如何 明文->密文。
首先构思一对 用户名/密码,并且把它记录下来,例如:

lengyu
asTT-=3

然后使用 n2n-keygen 工具,生成密文

n2n-keygen lengyu asTT-=3

即可得到这样的结果

* lengyu nZaltWogB+Vv6dAUEiNjGfzrCyD2SBsdH+CDdtPRI4y

把这个结果贴到 community.list 中去。写完 community.list 之后,重启 n2n 服务端。

systemctl restart supernode

服务端配置完成,接下来修改客户端的 edge.conf。

-l 172.7.76.71:7984
-P OjWvhPvHc9Qo5tPthq9vEZfGvq3fn7+498fDDS0Oyqm
-c StardewValley
-I lengyu
-J asTT-=3
-A5
-k 23!->?gh

前三行没有任何变化。
-I 用户名
-J 明文密码
-A5 加密算法,A5 代表 Speck-CTR
-k 加密密钥,给加密算法使用的,可随意填写

这样调出 cmd(管理员权限),运行客户端 edge 就可以连接上 n2n 服务端了。

C:\prohos\pro\n2n\edge C:\prohos\pro\n2n\edge.conf

5. 编写批处理脚本(windows)

每次都调出 cmd(管理员权限) 输命令未免太过麻烦,对于小白用户来说也很劝退。我们可以写一个批处理脚本来干这个活,还是放在 edge.exe 的同目录下。

%1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~s0","::","%~dp0","runas",1)(window.close)&&exit
%~dp0\edge %~dp0\edge.conf
pause

这样,小伙伴们就可以啥都不用知道,每次联机之前双击这个脚本即可加入房间。

6. 杂谈

遗憾的是,本文并未采用实验的方式给出 n2n 和 FRP,Zerotier 的足够直观的性能对比。个人做过一些不太严谨的实验,得出的结论是:如果是以游戏联机为目标,可以首先尝试 n2n。另外,游戏的 主机/房主 还可以在路由器上打开 DMZ主机 功能,能够有效降低延迟;某些游戏会在检测网卡时优先选用物理网卡,导致联不上,这时需要手动修改跃点数来提高虚拟网卡的优先级。
PS:Steam上某些游戏就是采用打孔的方式联机的,官方服务器负担很小,比如枪火重生。

除了联机游戏,n2n 对于个人而言,还有个应用场景,就是遥控家里的智能设备,我家里的树莓派 同时配置了动态域名,n2n 客户端 和 Shadowsocks 服务端,这使得我身在千里之外也可以随时遥控家里的智能设备。一台自己做的电视盒子(CoreELEC),也同样配备了 n2n 客户端。

另外,n2n 有个独特的优势,它还是个分布式软件,服务端可以组成一个集群,这个神奇的优势在某些场景下可能让它脱颖而出。想不到一个服务端+客户端都不超过 2MB 的软件这么有志气。

翻看官方 github 页面还可以找到第三方的 windows GUI,docker 镜像,Android 版 n2n 等。

相关文章:

内网穿透利器 n2n 搭建指南

1. n2n 简介 上文实验分析了 FRP 和 Zerotier 的利弊,本文再介绍另一种内网穿透方案,n2n。 n2n 是 C/S 架构的内网穿透服务,不同于 FRP 的 反向代理,它的原理是类似 Zerotier 的先打孔,打孔失败再尝试转发。关于打孔本…...

phpcms头像上传漏洞引发的故事

目录 关键代码 第一次防御 第一次绕过 第二次防御 第二次绕过 第三次防御 第三次绕过 如何构造一个出错的压缩包 第四次防御 第四次绕过 本篇文章是参考某位大佬与开发人员对于文件包含漏洞的较量记录下的故事,因为要学习文件包含漏洞,就将大佬…...

二叉树|二叉树理论基础、二叉树的递归遍历

代码随想录 (programmercarl.com) 树和二叉树 1.树的基本概念 1.1树的定义 1.2树的逻辑表示方法 1.3树的基本术语 1.4树的性质 1.5树的基本运算 1.6树的存储结构 2.二叉树的概念和性质 2.1二叉树的定义 2.2二叉树的性质 2.3二叉树与树、森林之间的转换 3.二叉树的…...

JavaScript 语法-对象

对象 JavaScript 中的对象是一组键值对的集合,其中每个键都是字符串,每个值可以是任意类型。 对象是由一些属性和方法组成的集合,属性可以用来存储数据,方法可以用来操作数据。 属性和方法使用“.”来访问 // 创建一个对象 let …...

代码随想录阅读笔记-哈希表【四数之和】

题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a b c d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意:答案中不可以包…...

JVM学习——双亲委派机制

简而言之就是为了防止与Java固有全类名重复,而导致系统崩坏所设立的机制。 当类加载器接收到加载类的任务时,首先会向上请求,一直请求到引导类加载器,如果引导类加载器无法加载,就会逐层返回让类加载器自己执行&#…...

【Paper Reading】6.RLHF-V 提出用RLHF的1.4k的数据微调显著降低MLLM的虚幻问题

分类 内容 论文题目 RLHF-V: Towards Trustworthy MLLMs via Behavior Alignment from Fine-grained Correctional Human Feedback 作者 作者团队:由来自清华大学和新加坡国立大学的研究者组成,包括Tianyu Yu, Yuan Yao, Haoye Zhang, Taiwen He, Y…...

Aloudata 倾力打造,《Data Fabric 白皮书 2.0》正式发布

数字经济时代,越来越多企业开始寻求全新的数据管理范式,以更有效地管理、利用不断增长的数据资产。在此背景下,Data Fabric 的概念应运而生,被视为面向未来的数据管理解决方案。 距离第一版白皮书问世已经过去一年多时间&#xff…...

docker内部无法使用ping等网络工具解决方案

通常docker内部没有网络,所以我们先离线安装需要的依赖包,然后再使用sh脚本容器内部访问宿主机同网络端其他服务器ip,实现监测远程ip telnet包依赖于netbase包,但是netbase包没有安装。你需要先安装netbase包,然后再尝试安装teln…...

后端工程师快速使用vue和Element

文章目录 Vue1 Vue概述2 快速入门3 Vue指令3.1 v-bind和v-model3.2 v-on3.3 v-if和v-show3.4 v-for3.5 案例 4 生命周期 Element快速使用1 Element介绍2 快速入门3 当前页面中嵌套另一个页面案例代码案例截图 Vue 1 Vue概述 通过我们学习的htmlcssjs已经能够开发美观的页面了…...

自学rabbitmq入门到精通

交换机的fault (发布与订阅模式) 因为消息是由生产者发送给excahnge,exchange发送给队列, 然后由队列发送给消费者的。 展示使用图形化界面使用fanout模式。 创建交换机 然后创建三个队列,绑定对应的交换机&#xff…...

由浅到深认识C语言(13):共用体

该文章Github地址:https://github.com/AntonyCheng/c-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.csdn…...

python爬虫(9)之requests模块

1、获取动态加载的数据 1、在开发者工具中查看动态数据 找到csdn的门户的开发者工具后到这一页面。 2、加载代码 import requests headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36…...

phpstudy自定义安装mysql8.3并启动

phpstudy自定义安装mysql8.3并启动 先去官网:https://dev.mysql.com/downloads/下载压缩包文件 然后按下面的图片一步一步操作 选择版本,选择第一个压缩包文件,下载 下载完成后,解压到phpstudy环境目录下,如下图 然后进入mysq…...

Netty 学习资料

Netty 学习资料 搜集了一下Java网络库Netty的学习资料,整理如下,有空花时间研究一下。 1、Netty学习手册 《尚硅谷 Netty 核心技术及源码剖析》课程学习手册 本课程不适合零基础的学员,需要掌握常用的设计模式和数据结构 掌握 Java 的面向对…...

【概率论中的两种重要公式:全概率和贝叶斯】

贝叶斯公式(Bayes’ Theorem)是概率论中的一条重要定理,用于计算条件概率。它描述了在已知某一事件发生的条件下,另一事件发生的概率。贝叶斯公式如下所示: P ( A ∣ B ) P ( B ∣ A ) ⋅ P ( A ) P ( B ) P(A|B) \…...

python中的闭包

一、闭包 1、作用域 在Python代码中,作用域分为两种情况:全局作用域 与 局部作用域 2、变量的作用域 在全局定义的变量 > 全局变量 在局部定义的变量 > 局部变量 3、全局变量与局部变量的访问范围 ① 在全局作用域中可以访问全局变量&#…...

成功解决RuntimeError: OpenSSL 3.0‘s legacy provider failed to load

报错 RuntimeError: OpenSSL 3.0s legacy provider failed to load. This is a fatal error by default, but cryptography supports running without legacy algorithms by setting the environment variable CRYPTOGRAPHY_OPENSSL_NO_LEGACY. If you did not expect this er…...

【 React 】React 组件之间如何通信?

相关文章: React Context的使用方法 react Provider Consumer 使用方法 1. 是什么 我们将组件间通信可以拆分为两个词: 组件通信 组件是vue中最强大的功能之一,同样组件化是React的核心思想 相比vue,React的组件更加灵活和多样…...

汇总全网免费API,持续更新(新闻api、每日一言api、音乐。。。)

Public&FreeAPI 网址:apis.whyta.cn (推荐) UomgAPI 网址:https://api.uomg.com 教书先生 网址:https://api.oioweb.cn/ 山海API https://api.shserve.cn/ 云析API铺 https://api.a20safe.com/ 韩小韩…...

Android SystemServer进程解析

SystemServer进程在android系统中占了举足轻重的地位,系统的所有服务和SystemUI都是由它启动。 一、SystemServer进程主函数流程 1、主函数三部曲 //frameworks/base/services/java/com/android/server/SystemServer.java /** * The main entry point from zy…...

Github主页设置贪吃蛇详细教程

先看最终实现结果: 有条贪吃蛇放在主页还是蛮酷的哈哈哈。接下来我来讲一讲怎么在Github主页添加一条贪吃蛇。 首先要修改自己的Github的主页,我们得有一个特殊的仓库——这个仓库必须与你的Github用户名保持一致,并且需要公开&#xff0c…...

二、实现fastdfs文件上传与延迟删除功能的Spring Boot项目

如何在Spring Boot项目中集成FastDFS实现文件上传功能,并添加支持延迟删除功能的实现。 一、Spring Boot 中集成 fastdfs 使用 1、文件上传功能实现 首先,让我们看一下如何实现文件上传功能的接口方法: RestController public class File…...

Android FrameWork 学习路线

目录 前言 学习路线: 1.基础知识 2、AOSP 源码学习 3. AOSP 源码编译系统 4. Hal与硬件服务 5.基础组件 6. Binder 7. 系统启动过程分析 8. 应用层框架​编辑 9. 显示系统 10. Android 输入系统 11. 系统应用 前言 Android Framework 涉及的行业相当广…...

前端开发者如何打造自己的生态以及ip

作为独立开发者,在公司的岗位上面,经常面对的是页面,但我们不能局限页面,页面是切入点。 1在需求页面的过程中,我们会接触ui,原型,软件,需求, 2在接口对接的过程中&#…...

C语言实现一个两个数加减乘除的答题代码(含文件保存),用户增加,题目增加,题目测试,题目答题等等

目录 1、这是我大一自己写的小代码,现在翻到了就分享出来,高手勿喷。 2、项目运行 3、获取完整源码网址 1、这是我大一自己写的小代码,现在翻到了就分享出来,高手勿喷。 2、项目运行 (1)测试模块 每次…...

YOLOv9改进策略:注意力机制 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点

💡💡💡本文改进内容:用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测 yolov9-c-ContextAggregation summary: 971 layers, 51002153 parameters, 51002121 gradients, 238.9 GFLOPs 改…...

基于单片机的老人防丢系统设计

目 录 摘 要 I Abstract II 引 言 3 1 系统总体架构 6 1.1方案设计与选择 6 1.2 系统架构设计 6 1.3 系统器件选择 7 2 系统硬件设计 9 2.1 单片机外围电路设计 9 2.2 LCD1602液晶显示电路设计 12 2.3 短信模块电路设计 14 2.4 GPS模块电路设计 14 2.5 电源与按键控制电路设计…...

从海外开发者大会的亲身体悟聊起,谈谈 AI 与开发者关系的重构 | 编码人声

本期「编码人声」节目中,我们聚焦于「AI 与开发者关系的重构」这一主题,从嘉宾参加海外开发者大会的亲身体验开始分享,聊一聊 AI 技术如何影响开发者社区和生态,以及开发者如何在这一变革中找到新的位置。 我们邀请了开发者社区与…...

HTML_CSS练习:HTML注释

一、代码示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>HTML注释</title> </head> <body><marquee loop"1">马龙强<!--下面的输入框是可以滚动的&#x…...