计网 – Wasting_Misaka.Blog https://forelink.top Hso! Sun, 15 Sep 2024 18:58:45 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.7.1 Network Fundamentals 4.4 https://forelink.top/index.php/2024/09/16/network-fundamentals-4-4/ https://forelink.top/index.php/2024/09/16/network-fundamentals-4-4/#respond Sun, 15 Sep 2024 18:58:44 +0000 https://forelink.top/?p=592 — 《计算机科学概论》 4.4

Internet Protocols

讲述了信息是如何在因特网上传输的。 通过什么软件来协作多设备信息传输的过程

The Layered Approach to Internet Software

软件通过网络连接的主要任务,是需要一个设备间传输数据的基础。 在互联网中,数据传输的活动是通过 不同的软件层 实现的。

就像给朋友邮寄礼物,你将礼物 包装好与邮寄地址 一并交给物流公司,物流公司将包裹通过不同的中转站发送到你朋友的家中。

image.png

网络中数据的传输,也是 不同层之间来回转发完成的,每一个层级都直接调用下一个层级的功能,而无需关心下一层的具体实现。 具体来说,互联网软件 有这四个层级: 应用层(Application) 传输层(Transport) 网络层(Network) 数据链路层(Data Link)

消息从应用层(Application)中产生,一路传递给网络层(Network)准备传输消息,由链路层(Link)传输给其他互联网软件,最终由目的地的链路层(Link)接收消息,并逐层向上返回给应用层(Application)

Application

应用层包含了使用互联网通信的客户端或服务端等,在传输消息前,需要提供一个互联网中的地址,这个过程可能需要使用互联网中的名称服务器(name server)来将记忆地址(域名)转化为IP地址,然后通过指定端口号传输给 传输层

Transport

传输层的任务专注于确认收到的消息格式,并对消息进行拆解或重组。 在将消息发送给网络层前,传输层会将消息拆分成多个片段并赋加序号,以便到达后根据序号重组,然后将数据包交给网络层继续数据的传输。

Network

网络层维护一张转发表,用来确定下一跳(物理意义上的位置),然后移交给数据链路层,将数据包通过互联网发送到指定的地点。 在网络层中,来自同一应用层的数据包将不再视作有关联的消息,而是独立的数据包,网络层只需要确认当前数据表是否到达的目的地,来决定要交给传输层,还是和下一跳一起返回给数据链路层

数据链路层负责转移数据包,细节处理通信过程(如给Ethernet传输时使用CSMA/CD 协议,CSMA/CA 给WIFI)当数据链路层收到数据包时,会交给网络层进行处理。

数据包在互联网传输的过程中,往往会经途多个中转站,数据包这些中转站中只经过网络层数据链路层,而不会真正的有数据校验和重组行为(?)应当提及的是,现在互联网上充当转发角色的互联网软件,会将网络层确认下一跳的功能集成在数据链路层中,用来缩短数据传输的延迟。

当数据包到达目标的互联网软件后,网络层确认数据包已经到达了最终位置,并提交给传输层传输层将数据包解包,并依照发送者附加的序号重组数据,当过程完成后,通过指定的端口号将完整的数据交给对应的应用层。(不同的协议会使用确定的端口号,如HTTP使用80,SMTP使用25)所以对于应用层而言,端口号也是正常接收数据所需要关心的。

Summary

应用层负责生产消息;传输层将信息分成多个兼容网络传输协议的数据包、将收到的信息依序重组并提交给对应的应用层网络层确认数据包的下一跳(传输层/数据链路层/丢弃);数据链路层完成数据包的设备间转移。 通过这些行为,响应时间得以用毫秒计,并为不间断的互联网事务提供了条件。

The TCP/IP Protocol Suite

对公用网络的需求催生出了对公开标准的需求—-硬件制造商和软件提供商都想从中分得一杯羹。 而其中的一个成果就是 OSI七层模型(open system interconnection) 由国际组织认证,概念清楚,理论完整,但由于模型本身的一些设计缺陷,和发布时 TCP/IP 已经在全球范围内得到了大规模应用,并未成功替代 TCP/IP四层模型。

TCP/IP 是一系列协议标准,用以在互联网上实现文初提及的四层模型。所以实际上,TCP/IP 并不仅仅指具体的两个协议,而是一系列协议和标准的总和。但此处仅对这两种协议 TCP IP 进行介绍。

TCP

TCP(Transmission Control Protocol)是传输层所使用的协议之一,传输层可以有其他的版本如UDP(User Datagram Protocol),或者是TCP/IP中的其他实现方式,这是根据应用层决定的。 基于TCP的传输层在发送消息前会先告知目的地的TCP传输层,在确认能和对方建立连接后,才会开始传输数据包。 差异一:TCP需要建立连接后才会发送数据包,而UDP不考虑建立连接,直接将数据包发送到指定位置。所以UDP也被称为 无连接式协议(connectionless protocol) 差异二:TCP传输过程中,两端是共同合作,通过确认和重传保证数据完整性。所以在可靠性上TCP远大于UDP 差异三:TCP在传输过程中会通过 流控制阻塞控制 来减轻数据传输的压力。UDP的传输过程会比TCP显的更为 用力。 ————————— 然而此非证明UDP毫无用武之地,UDP传输过程中不用考虑确认和重传操作,传输过程更线性,没有额外的性能开销,在接受数据方有所准备的场景更具有效率,如:适用于DNS查找和推流

TCP 更可靠,但效率较低。 UDP 效率高,但不可靠。

IP

IP(Internet Protocol)是实现网络层的互联网标准。网络层的任务包括更新转发表和确认下一跳,IP标准中与路由相关的大部分内容都涉及相邻网络层之间在交换路由信息时所使用的协议。

IP网络层会在数据包末尾添加一个指定跳数(hop count),每当网络层将数据包转发时,就会将这个数减去1。通过这个机制来限定数据包在互联网中的转发次数,避免数据包滞留在互联网中,甚至出现转发回路。尽管现在的互联网在日益增长,被初始化为$2^6$的跳数已经足够数据包在ISP的众多路由中到达目的地了。

这些传输,路由和转发数据包的特性,加和在一起共同构成了互联网容错,给征途失意的数据包,有太多将军小道。

]]>
https://forelink.top/index.php/2024/09/16/network-fundamentals-4-4/feed/ 0
Network Fundamentals 4.3 https://forelink.top/index.php/2024/09/15/network-fundamentals-4-3/ https://forelink.top/index.php/2024/09/15/network-fundamentals-4-3/#respond Sat, 14 Sep 2024 16:55:14 +0000 https://forelink.top/?p=583 — 《计算机科学概论》 4.3

The World Wide Web

浏览器和服务器传输超文本的协议 HTTP

浏览器和服务器之间的通信通常使用超文本传输协议(HTTP)。用户在使用浏览器(客户端)访问网页时,通常通过输入一个URL来向服务器发起请求。URL通常包含以下部分:

  1. 传输协议(如http或https)
  2. 域名(如example.com)
  3. 目录路径
  4. 文件名(如index.html)

现代浏览器通常默认使用HTTPS(HTTP的加密版本)进行访问。 如果用户仅输入协议和域名,服务器通常会返回默认的主页文件(如index.html)。

HTML

HTML(超文本标记语言)是用于定义网页内容结构的标准标记语言。它允许网页包含文本、图像、链接、音频、视频等多种多媒体内容,同时可以嵌入超链接指向其他网页或资源。
当浏览器收到HTML文件后,会根据其中的标签(Tag)来解析并渲染页面内容,标签通常以尖括号包裹,例如<html>、<head>、<body>等。HTML文件中的每个元素可以包含属性,用于定义元素的特定行为或样式。

<html> <!-- 表明HTML文档的开头 -->
    <head>
        <title>home page</title>
    </head>
    <!-- 包含预备的信息 -->
    <body>
        <h1>My Web Page</h1>
        <p>Click
        <a href="protocol/path/to/filename.html">
            here
        </a>
        for another page.</p>
    </body>
    <!-- 浏览器展示的文档内容 -->
</html>
<!-- 文档结尾 -->

XML

HTML 和 XML 都是标记语言,但它们的用途不同。HTML(超文本标记语言)用于定义网页的结构和内容展示,包含文本、图像等多种元素。XML(可扩展标记语言)则用于存储和传输结构化数据,允许用户自定义标签。XML 以严格的语法要求著称,所有元素必须有开闭标签,且标签必须正确嵌套。 XML 适用于数据传输,例如在网络应用中,客户端和服务器之间可以通过 XML 格式的数据进行通信。XML的这种结构化数据,能帮助搜索引擎更好的搜索到有效的信息。

Client-Side & Server-Side Activities

当用户在浏览器中输入 URL 时,浏览器会向服务器发送请求,从服务器获取网页文件。客户端(用户的浏览器)和服务端(托管网页的服务器)之间的互动可以分为客户端操作和服务端操作。

  • 客户端操作:指在用户的浏览器中执行的操作,通常通过嵌入网页的 JavaScript 脚本来实现。JavaScript 可以动态改变页面内容、与服务器通信(通过 AJAX 技术),并处理用户的输入。过去 Flash 技术曾经用于展示动画和交互内容,但由于安全性和性能问题,Flash 已被废弃。


  • 服务端操作:指服务器在接收到客户端请求后进行的操作。早期的服务端技术包括 CGI(通用网关接口),用于执行服务器上的脚本程序。现代常用的服务端技术包括:

    • Servlet + JSP:Java 技术用于处理动态网页。
    • ASP.NET:微软提供的服务器端框架。
    • PHP:广泛用于 Web 开发的开源脚本语言。
    • Node.js:基于 JavaScript 的服务器端运行时,用于构建高效的网络应用程序。

控制客户端行为和服务端行为时要注意安全问题。

]]>
https://forelink.top/index.php/2024/09/15/network-fundamentals-4-3/feed/ 0
安装Clash-for-Linux科学上网 https://forelink.top/index.php/2024/09/15/%e5%ae%89%e8%a3%85clash-for-linux%e7%a7%91%e5%ad%a6%e4%b8%8a%e7%bd%91/ https://forelink.top/index.php/2024/09/15/%e5%ae%89%e8%a3%85clash-for-linux%e7%a7%91%e5%ad%a6%e4%b8%8a%e7%bd%91/#respond Sat, 14 Sep 2024 16:54:28 +0000 https://forelink.top/?p=581 简介:
主要介绍了Clash-for-Linux在debian系统上的的安装和配置方法

Github仓库链接

https://github.com/Elegycloud/clash-for-linux-backup

安装方法

在仓库README写的很详尽了。 先克隆仓库项目到本地

$ git clone https://github.com/Elegycloud/clash-for-linux-backup.git

编辑项目目录中的.env 文件,将CLASH_URL修改为机场的clash订阅地址,保存退出。

运行启动脚本,如果订阅地址能够正确访问,会提示加载环境变量和开启关闭系统代理的命令提示

./start.sh

正在检测订阅地址...
Clash订阅地址可访问!                                      [  OK  ]

正在下载Clash配置文件...
配置文件config.yaml下载成功!                              [  OK  ]

正在启动Clash服务...
服务启动成功!                                             [  OK  ]

Clash Dashboard 访问地址:http://<ip>:9090/ui
Secret:xxxxxxxxxxxxx

请执行以下命令加载环境变量: source /etc/profile.d/clash.sh

请执行以下命令开启系统代理: proxy_on

若要临时关闭系统代理,请执行: proxy_off

加载环境变量和,并开启系统代理

source /etc/profile.d/clash.sh
proxy_on

检查服务端口(需要 net-tools软件包)

$ netstat -tln | grep -E '9090|789.'
tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN     
tcp6       0      0 :::7890                 :::*                    LISTEN     
tcp6       0      0 :::7891                 :::*                    LISTEN     
tcp6       0      0 :::7892                 :::*                    LISTEN

检查环境变量

$ env | grep -E 'http_proxy|https_proxy'
http_proxy=http://127.0.0.1:7890
https_proxy=http://127.0.0.1:7890

如果返回了后两行信息说明配置成功。 接下来设置代理。

如果使用Debian / Ubuntu ,需要在gnome桌面 设置中打开网络设置-代理设置,并修改 HTTP/HTTPS /SOCKS 为手动代理,并将 端口号修改为软件默认使用的端口号。

截图 2024-09-14 17-39-04.png

修改节点和端口号

提供了 yacd控制面板 可视化的管理 clash,访问

localhost:9090/ui
或
127.0.0.1:9090/ui
Snipaste_2024-09-14_17-50-56.png

URL填入如图中的信息,Secret在启动Clash脚本的终端获取,可以打开yacd控制面板的登陆界面,能够查看当前clash状态,修改节点,规则,查看连接配置和日志。

有Issue提到了存在流量激增的问题。

关闭代理后,应该将设置中的代理信息改回为自动。

]]>
https://forelink.top/index.php/2024/09/15/%e5%ae%89%e8%a3%85clash-for-linux%e7%a7%91%e5%ad%a6%e4%b8%8a%e7%bd%91/feed/ 0
Network Fundamentals 4.2 https://forelink.top/index.php/2024/09/13/network-fundamentals-4-2/ https://forelink.top/index.php/2024/09/13/network-fundamentals-4-2/#respond Fri, 13 Sep 2024 15:44:18 +0000 https://forelink.top/?p=564 — 《计算机科学概论》 4.2

The Internet

Origin

因特网的起源可以追溯到20世纪60年代的一个研究项目,目的是开发出一种能将不同计算机相互连接的分布式网络系统,使其在某个节点故障时依然能够继续运行。

Internet Architecture

Internet Service Provider

因特网是由多个相互连接的网络组成,维护这些连接并提供接入服务的组织叫做 因特网服务提供商ISP。 ISP根据其服务范围,速度和容量分为不同层级

Tier-1 ISP 包括高速/大容量 的全球性网络互联,构成了是因特网的核心骨架。 Tier-2 ISP 与T1 ISP 相连,提供较为区域性的服务,通常覆盖较小的地理范围。

T1和T2 ISP 通常由通信服务公司运营,负责提供网络连接和数据交换服务。

Access ISP 通常由运营商提供,负责提供给终端用户互联网接入服务。家庭 企业 个人设备连接到更广泛的互联网网络。 终端 – AP – ISP AP和AP范围 通常称为热点。 Access ISP不仅提供物理连接,还可能提供诸如DNS解析,IP地址分配,网络安全管理等附加服务,确保终端设备能够访问全球互联网资源。

因特网系统是有层次的,有冗余的,其中的一个ISP终止服务不一定会导致整个互联网系统的瘫痪。

Internet Addressing

因特网需要一个全球唯一的寻址系统来定位和标识设备。 这些标识也被成为 IP地址 IPv4 有32位 IPv6 有128位

IP地址是由非营利组织ICANN分配。

ICANN负责管理顶级域名(TLD)和IP地址的全球分配。 ISP根据ICANN分配的地址块为设备分配IP地址。

域名的语法是层级的 域名的后缀(如 .com .top) 称为TLD(top-level domain) 域名后缀与主域名相连,主域名向左延伸的部分成为子域名。

subdomian.mainDomain.TLD

仅有域名无法找到对应的设备,需要通过名称服务器(name server) 进行解析。常用的名称服务器是 DNS服务器 (domain name system)通过DNS服务器解析并查找(lookup)后,将域名转化为对应的ip地址,再发起访问请求。

DNS具有分层的结构,使得它能够有效的扩展并处理大量的域名请求。DNS查询是一个分步的过程,按照层次逐级查找域名对应的ip地址。 比如,DNS会查找(Root Name Servers)根名称服务器,然后再根据TLD逐层的从服务器中查找并将域名翻译成ip地址。 (TLD Servers -> Authoritative Name Servers -> Recursive DNS Resolvers)

由于DNS服务器的存在,使得每个终端都无需额外配置和维护域名解析的功能,在访问外部网络时,只需要找到DNS服务器的位置就可以了,而DNS服务器的访问位置通常由 access ISP 提供,也可以自行配置。

全球有13组根服务器,保存着顶级域名服务器的位置,分布在多个地点以保证系统的冗余和稳定性。
顶级域名服务器处理相应域名的查询请求,并知道哪个权威名称服务器管理特定的主域名。
权威名称服务器存储着具体域名的IP地址记录,负责提供最终的查询结果。

Internet Applications

不同的网络应用会用到不同的网络协议。 新闻阅读程序使用 NNTP 协议来连接服务器。 文件传输使用 FTP 协议 远程访问/控制使用 Telnet或SSH 协议 用浏览器处理网页请求/数据 使用 HTTP 协议。

Electronic Mail

通常使用SMTP POP3 IMAP协议。

VoIP

VoIP通过互联网提供提供端对端的语音传输服务, 常用于手机等终端设备的语音通信。 VoIP是通过互联网进行语音传输,而4G依赖TCP/IP协议 (和4G基于 TCP/IP协议是不同的)

Internet Multimedia Streaming

Content Delivery Networks CDN内容分发网络: 通过在不同位置分布服务器,利用Anycast技术将用户请求路由到最近的服务器,从而高效地提供内容,通常比从中心化的服务器获取数据更快。

]]>
https://forelink.top/index.php/2024/09/13/network-fundamentals-4-2/feed/ 0
Network Fundamentals https://forelink.top/index.php/2024/09/13/network-fundamentals/ https://forelink.top/index.php/2024/09/13/network-fundamentals/#respond Thu, 12 Sep 2024 16:58:52 +0000 https://forelink.top/?p=559 — 《计算机科学概论》 4.1

Network Classifications

PAN/LAN/MAN/WAN

Personal Area Network 短距离通信,如头显/蓝牙耳机 Local Area Network 包含一系列设备的网络,如办公大楼的内网 Metropolitan Area Network 包含更大地理位置的网络,如社区网络 Wide Area Network 包含全球的网络

Open/Close/Proprietary

开放网络 使用公开标准,如互联网 封闭网络 访问受限,安全性高 专有网络 有授权,受单一供应商控制

Topology of Network

Bus

总线拓扑是一种较为简单的网络结构,所有设备通过单根共享的通信线连接在一起。每个设备都能够监听和发送数据。数据包在总线上广播,只有目标设备会接受并处理这些数据。
但存在容易出现碰撞(collision),性能有限,故障点集中等故障

Star

星形拓扑将所有设备连接到一个中央节点(交换机或集线器),可靠性比较高,中心节点故障是网络中唯一的单点故障。

AP

Access Point 无线广播+中央机

Protocols

每个网络都会有其运行模式根据的协议,作为设备间的网络通信规范。 早期的bus中使用 CSMA/CD 协议来规范总线通信中的信息收发,终端在发送数据之前会检测信道是否被占用,决定是否立即发送。但这并不使用于star,因为经过了一层AP后,设备之间可能会出现隐藏终端问题(Hidden Terminal Problem),导致终端不能得知该信道是否被占用。

不同的网络会使用不同的协议。

Combining Network

扩展当前的网络,有多种实现方式

Repeater

中继器是简单的将两个bus相连的设备,完全连接,将信息完全转发和接受。

Bridge

桥将两个bus相连,但只有需要访问其他网络的信息,才需要通过桥。

Switch

交换机能连接多个bus,并起到类似桥的作用,最小化网络流量。

不论是哪一种实现方式,目的都是相同的: 实现更大组网

Internet & Router

有时候需要扩展和组合多个网络,这需要网络的“类型”相同。 比如WiFi网路与Ethernet网络直接相连不能很好的兼容,就需要一个规范网络通信的网络: Internet

在连接多个网络时,需要硬件设备来转发数据,这种硬件设备就是路由器 Router,路由负责实现协议的转换,允许不同类型的网络连通,并且通过查找和维护转发表(Forwarding Table)来将数据发送到正确的下一跳。

Gateway

网关是相对于内网而言的,内网和外网的关口(端点),就被成为网关。 网关是一个比较开放的概念,一般情况下 AP+路由 可以合并视作一个网关

Methods of Process Communication

多个进程需要通过网络进行共同工作和协调,需要实现进程间通信。 以下是常见的模型/架构:

C/S model

Client/Server 架构将每个进程视作客户端,将处理过程视作服务端。通常用于网络应用中。 客户端向服务端发起请求,服务端处理请求并将处理结果返回给客户端。

P2P model

Peer-to-Peer 模型让每个进程都能直接参与通信/共享资源/处理请求参与协作,适用于 实时通信/网络游戏/文件下载 多个对等节点(peer)构成一个群(swarm),去中心化使得共享资源比C/S架构更为高效。

Distributed System

分布式系统是建立在网络之上的软件系统,有以下几种常见的分布式计算系统。

Cluster Computing

集群计算,多个功能相同的硬件,共同处理单一的目标。通过负载均衡完成高可靠性,这种高效便利和高可靠低成本的特性为很多互联网企业所采用。

Grid Computing

网格计算,将计算任务分为不同的节点。不同节点可能存在地理位置/计算任务的差异。不同的节点处理不同的任务和信息,常用于全球合作中。

Cloud Computing

云计算,由互联网公司的机房提供计算云上计算服务。使用者仅仅需要完成客户端的设计,而不用关心机房硬件的具体位置。不过也引发了公众对于个人隐私和数据安全的担忧。

]]>
https://forelink.top/index.php/2024/09/13/network-fundamentals/feed/ 0
Samba共享文件 https://forelink.top/index.php/2024/09/09/samba%e5%85%b1%e4%ba%ab%e6%96%87%e4%bb%b6/ https://forelink.top/index.php/2024/09/09/samba%e5%85%b1%e4%ba%ab%e6%96%87%e4%bb%b6/#respond Mon, 09 Sep 2024 15:17:43 +0000 https://forelink.top/?p=519 官方文档:

网络存储 – GL.iNet 文档 (gl-inet.cn)

打开Samba协议

Windows 系统需要打开 Samba 协议:打开控制面板 -> 程序和功能 -> 启用或关闭 Windows 功能,在弹出窗口中勾选 SMB1.0/CIFS 文件共享支持,子项中的三项全部勾选。Windows 10/Windows 10 已默认开启,无需操作这一步 image.png

启用Samba协议

在路由页面-网络存储-文件服务中启用Samba image.png

创建共享文件夹

点击 共享文件夹-添加

image.png

选择一个磁盘作为网络存储的位置,点击下一步

image.png

可以选填分享路径,并分配用户(在登录时需要验证)

image.png

如果没有用户需要添加用户

image.png

然后可以获取Windows和Linux的访问链接

image.png

Windows访问网络存储

快捷键“win+R”回车,调出运行命令,将分享链接复制到此,点击“确定”。这时会出现弹框“输入网络凭据”,输入上一步骤“共享文件夹添加用户”中的对应的用户名及密码,即可访问共享文件夹了。 image.png image.png

如果需要切换用户,访问 上一级目录 \\192.168.8.1 右键文件夹 – 映射网络驱动器 – 选择使用其他凭据连接 – 然后输入新的用户名和密码即可 image.png

如果出现以下报错信息,说明还有当前系统与Samba还有活跃的连接。这是SMB服务的问题,由于NETBIOS服务是面向连接的,为了简化用户再次访问该服务器时的登录流程,会保持和Samba服务器的活跃连接。

解决办法是删除上一次建立的连接

net use \\[地址]\[文件夹] /delete

或者删除所有网络连接

net use * /delete

然后可以正常修改凭据

Linux访问网络存储

Debian 打开GNOME文件管理器,选择网络即可看到对应的设备。截图 2024-09-09 23-00-29.png 也可以在下方连接服务器,这种方式可以更改登录的用户。 截图 2024-09-09 23-07-30.png 点击连接后,可以访问服务器的内容。

安卓访问网络存储

如果只是访问路由器上挂载的磁盘,可以在glinet APP上使用点击网络存储添加或者下载内容,对其中的文件进行一些简单的操作(重命名,复制,移动)

JPEG_20240909_231437_1286885398861789859.jpg

用通用的方式连接,可以在Google Play下载AndSMB,添加主机,用户名和密码,然后连接。JPEG_20240909_231322_954722168286697280.jpg

]]>
https://forelink.top/index.php/2024/09/09/samba%e5%85%b1%e4%ba%ab%e6%96%87%e4%bb%b6/feed/ 0
openwrt配置 https://forelink.top/index.php/2024/09/09/openwrt%e9%85%8d%e7%bd%ae/ Mon, 09 Sep 2024 11:36:46 +0000 https://forelink.top/?p=516 固件更新约等于重装,建议恢复出厂重新配置。

更新软件包

opkg update

主题更新(安装iStore风格)

wukongdaily/gl-inet-onescript: 该项目可以让MT2500/MT3000/MT6000路由器在不刷机情况下,一键变成iStoreOS风格。 (github.com)

先通过SSH连接到路由,第一次使用,输入下面的指令

wget -O gl-inet.sh https://cafe.cpolar.cn/wkdaily/gl-inet-onescript/raw/branch/master/gl-inet.sh && chmod +x gl-inet.sh && ./gl-inet.sh

如果想之后再次打开这个页面,在文件所在的路径输入

sh gl-inet.sh

然后会出现下面的页面

image-20240909191006148

输入1回车安装iStore风格(自动安装iStore)

OpenClash下载配置

网页链接:OpenClash GitHub

先安装依赖:

#iptables
opkg update
opkg install coreutils-nohup bash iptables dnsmasq-full curl ca-certificates ipset ip-full iptables-mod-tproxy iptables-mod-extra libcap libcap-bin ruby ruby-yaml kmod-tun kmod-inet-diag unzip luci-compat luci luci-base

#nftables
opkg update
opkg install coreutils-nohup bash dnsmasq-full curl ca-certificates ipset ip-full libcap libcap-bin ruby ruby-yaml kmod-tun kmod-inet-diag unzip kmod-nft-tproxy luci-compat luci luci-base

此时可能会有一个和DEV模式相关的依赖安装不上,可以忽视掉

image-20240909192605997

下载ipk包,并通过iStore上传安装。

image-20240909192926312

安装完成后重启路由器,安装完成。

修改订阅的位置:image-20240909193101914

使用过的固件版本:

v4.6.2
v4.6.4

]]>
WebSocket入门 https://forelink.top/index.php/2024/08/21/websocket%e5%85%a5%e9%97%a8/ Wed, 21 Aug 2024 13:20:50 +0000 https://forelink.top/?p=424 WebSocket

客户端【浏览器】API

websocket 对象创建:

let ws = new WebSocket(URL)
// URL格式(协议为ws)
//    协议://ip地址/访问路径

websocket对象相关事件:

Open事件:
事件处理程序 ws.onopen
描述:在建立连接时触发

Message事件:
ws.onmessage
在客户端接收到服务器发送的数据时触发

Close事件:
ws.onclose
连接关闭时触发

websocket对象提供的方法:

send()
通过websocket对象调用该方法发送数据给服务器

服务端 【Tomcat】 API

简介:

Tomcat 7.0.5 开始支持WebSocket,实现JW(java websocket)规

Endpoing 对象:

Endpoint 是一个java对象,代表WebSocket连接的一端。 在服务端可以看成 处理具体WebSocket 消息的接口

服务器端点[Endpoint] 定义:

编程式:

​ 继承 javax.websocket.Endpoint 并自行实现其方法

注解式:

​ 在类定义前添加@ServerEndpoint 注解,类会被自动识别为Endpoint类加载到服务当中

生命周期方法:

​ Endpoint实例,在WebSocket握手时创造,在连接过程中持续有效,在连接关闭时结束。

// 编程式
onOpen()
 开启新会话时调用,在客户端与服务端握手成功后调用
onClose()
 会话关闭时调用
onError()
 连接过程异常时调用
// 注解式
@OnOpen
@OnClose
@OnError

接受客户端数据:

编程式:

​ 添加 MessageHandler 消息处理器来接受消息

注解式:

​ 在定义Endpoint时,通过@OnMessage 注解指定接受消息的方法

发送客户端数据:

​ 发送消息由 RemoteEndpoint 完成,实例由 Session 维护

// 发送方式
session.getBasicRemote() //获取同步消息发送类
session.getAsyncRemote() //获取异步消息发送类
// 然后调用sendXxx()方法发送消息
sessin.getBasicRemote().sendText(msg);

​ 消息发送后,客户端收到对应的消息并进行处理。

]]>