常用优秀内网穿透工具(实测详细版)

文章目录

  • 1、前言
  • 2、安装Nginx
  • 3、配置Nginx
  • 4、启动Nginx服务
    • 4.1、配置登录页面
  • 5、内网穿透
    • 5.1、cpolar
      • 5.1.1、cpolar软件安装
      • 5.1.2、cpolar穿透
    • 5.2、Ngrok
      • 5.2.1、Ngrok安装
      • 5.2.2、随机域名
      • 5.2.3、固定域名
      • 5.2.4、前后端服务端口
    • 5.3、NatApp
    • 5.4、Frp
      • 5.4.1、下载Frp
      • 5.4.2、暴露内网服务
    • 5.5、神卓互联
      • 5.5.1、安装
      • 5.5.2、创建映射
      • 5.5.3、检测系统服务启动失败原因
    • 5.6、飞鸽
      • 5.6.1、开通隧道
      • 5.6.2、启动服务
      • 5.6.3、动态图演示
  • 6、各类内网穿透对比

1、前言

内网穿透(NAT穿透)是一种将本地网络服务暴露给互联网的一种技术。 这种技术可以很好地解决许多局域网内的资源共享。采用路由的方式将一台计算机变成一个“路由器”,将公共的网络地址转为内部网络地址,从而实现通过英特网可以访问局域网资源的目的。

内网穿透有许多应用场景,例如:

  • 远程办公: 有时候需要在家里远程办公,需要访问公司内部的服务器或者局域网中的资源。利用内网穿透技术可轻松实现远程办公。
  • 远程开发调试:开发Web应用时常常需要在移动设备中测试。通过内网穿透技术,可以将服务端开发环境暴露到公网上,方便在移动设备上进行调试,提高开发效率。
  • 家庭服务器管理: 在家中搭建了NAS存储、智能家居控制系统等设备。当我们离开家时,可以通过内网穿透,在互联网中安全访问家庭服务器,远程管理数据和设备。
  • 云服务器访问: 对于云服务器,有时候我们需要访问其中的数据库、文件或者其他服务。通过内网穿透,我们可以直接访问云服务器内部的资源,节省时间和成本。
  • 局域网游戏联机: 内网穿透可以让多台设备在同一个局域网中进行联机游戏。这样,即使设备之间不在同一个网络中,也可以通过内网穿透建立虚拟的局域网,实现联机游戏的功能。

总的来说,如果使用内网穿透,会给你一个公网ip映射到本地ip,这样别人就可以通过互联网访问你的服务了。如果不使用内网穿透,只能局域网内Ip(本地Ip)才能访问你的服务。

请添加图片描述

2、安装Nginx

首先前往Nginx官网(nginx.org)进行下载,也可以直接用我提供的链接下载1.23版本:http://nginx.org/download/nginx-1.23.1.zip

安装完之后解压,然后你会看到如下目录:

在这里插入图片描述

由于Nginx的功能很多,而我们今天只是搭建个服务器,所以只会用到其中的一部分。

3、配置Nginx

进入conf文件夹,打开nginx.conf文件进行编辑,里面的配置很多,我对其中一些重要的配置进行了说明(前面有“#”的表示并没有真正写入配置,若要加入,只需去掉“#”):

在这里插入图片描述

nginx配置-location

  • = 开头表示精确匹配
    如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。
  • ^~ 开头表示uri以某个常规字符串开头,不是正则匹配
  • ~ 开头表示区分大小写的正则匹配;
  • ~* 开头表示不区分大小写的正则匹配
  • / 通用匹配, 如果没有其它匹配,任何请求都会匹配到

顺序优先级:

(location =) > (location 完整路径) > (location ^~ 路径) > (location ,* 正则顺序) > (location 部分起始路径) > (/)

location = /api {#精确匹配return 402;}location /api {# 匹配任何以 /api 开头的地址,匹配符合以后,还要继续往下搜索# 只有后面的正则表达式没有匹配到时,这一条才会采用这一条return 403;
}location ^~ /proxy/ {# 匹配任何以 /proxy/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。proxy_pass http://127.0.0.1/;}请求http://localhost:80/api, 返回:402 Payment Required
请求http://localhost:80/api/a,返回:403 Forbidden
请求http://localhost:80/proxy/test.html 代理到 URL:http://127.0.0.1/test.html

4、启动Nginx服务

配置完Nginx后,返回Nginx根目录,找到nginx.exe,双击运行它,你会看到有个小黑框一闪而过,这说明Nginx已经成功启动!你可以打开浏览器,输入:虚拟主机名称:监听的端口(刚刚的配置),回车,就会看到如下网页,恭喜你,已经成功搭建了Nginx服务器!

在这里插入图片描述

4.1、配置登录页面

/html 目录下,复制下方代码,用记事本方式重新覆盖index.html内容,保存,最后再次打开浏览器,输入虚拟主机名称:监听的端口(刚刚的配置),回车,你就会看见如下页面:

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}html {height: 100%;}body {height: 100%;}.container {height: 100%;background-image: linear-gradient(to right, #fbc2eb, #a6c1ee);}.login-wrapper {background-color: #fff;width: 358px;height: 588px;border-radius: 15px;padding: 0 50px;position: relative;left: 50%;top: 50%;transform: translate(-50%, -50%);}.header {font-size: 38px;font-weight: bold;text-align: center;line-height: 200px;}.input-item {display: block;width: 100%;margin-bottom: 20px;border: 0;padding: 10px;border-bottom: 1px solid rgb(128, 125, 125);font-size: 15px;outline: none;}.input-item:placeholder {text-transform: uppercase;}.btn {text-align: center;padding: 10px;width: 100%;margin-top: 40px;background-image: linear-gradient(to right, #a6c1ee, #fbc2eb);color: #fff;}.msg {text-align: center;line-height: 88px;}a {text-decoration-line: none;color: #abc1ee;}</style>
</head>
<body><div class="container"><div class="login-wrapper"><div class="header">Login</div><div class="form-wrapper"><input type="text" name="username" placeholder="username" class="input-item"><input type="password" name="password" placeholder="password" class="input-item"><div class="btn">Login</div></div><div class="msg">Don't have account?<a href="#">Sign up</a></div></div></div>
</body>
</html>

除了html文件,你还可以在该\html文件夹里放任何文件,如:图片,视频,压缩包等等。

5、内网穿透

服务器搭建完了,网页也有了,但其实除了跟你在同一个局域网下的人,都无法访问你的网站。

这里就要用到内网穿透了,所谓内网穿透,也即是局域网能够直接通过公网的ip去访问,极大的方便用户的日常远程的一些操作的使用。

5.1、cpolar

cpolar官网

5.1.1、cpolar软件安装

首先,前往cpolar下载页面,根据自己操作系统,选择对应的软件安装包进行下载即可。

安装包下载完成之后,就需要进行账号注册,并进行登录,可以点击cpolar官网进行账号注册。

在这里插入图片描述

5.1.2、cpolar穿透

(1)启动 cpolar

安装cpolar之后,进入到安装根目录,双击执行cpolar.exe可执行文件。

(2)配置 Authtoken

在官网登录账号,拿到隧道 Authtoken,在cpolar.exe窗口下配置Authtoken到cpolar。

cpolar authtoken 你的隧道 Authtoken

在这里插入图片描述
在这里插入图片描述

(3)简单内网端口穿透体验

在cpolar.exe命令窗口下,输入下方命令,端口可以修改,只要映射到自己本地部署的端口都行。

cpolar http 80

在这里插入图片描述

通过以上操作,我们就可以通过cpolar所映射的地址:http://2b91d053.r10.vip.cpolar.cn,访问我们内网服务器中80端口启动的服务。

例如:我在80端口启动了一个nginx服务,我们是可以直接通过域名http://2b91d053.r10.vip.cpolar.cn进行访问本地电脑的nginx服务。

在这里插入图片描述

(4)cpolar状态监听面板
我们可以通过cpolar状态监听面板查看我们启动cpolar服务。在这里插入图片描述

5.2、Ngrok

  • Ngrok官网

  • ngrok参考配置文档

在这里插入图片描述

5.2.1、Ngrok安装

(1)点击【Get ngrok】,【Download】,根据自身需求选择对应平台软件下载。

在这里插入图片描述
在这里插入图片描述

(2)下载完,得到一个解压包,直接解压,得到【ngrok.exe】,双击后,会出现如下界面,说明已经启动了ngrok服务

在这里插入图片描述

5.2.2、随机域名

(1)**你需要登录一个ngrok的账号来获取属于你的Authtoken密钥,**如果没账户,自行注册。

在这里插入图片描述

(2)你可以使用你的github账号登录,在这里就不演示了。登录成功之后,有两个地方可以显示你的AuthToken秘钥,

  • ①在主页显示
  • ②在左侧菜单栏【Getting Started】,【Your Authtoken】查看。
  • 在这里插入图片描述
    在这里插入图片描述

(3)复制你的Authtoken,粘贴到ngrok命令窗口中,配置你的信息,注意要替换成自己的秘钥

ngrok config add-authtoken 2CZJkTcaAAXzRJx53AnD_6aVs8BBAaybUUpSMaaa

在这里插入图片描述

(4)执行成功后,命令行界面中会出现下面的信息。此时,代表配置成功。ngrok程序已经在你的用户目录下,创建一个.ngrok2文件夹,并在文件夹中创建一个配置文件ngrok.yml。

Authtoken saved to configuration file: C:\Users\用户\AppData\Local/ngrok/ngrok.yml

(5)映射端口

在ngrok命令行界面中,执行下面命令,即将本地端口8080映射到公网中,如果需要映射其他端口,只需将8080改成相对应的端口即可。

# 将本地8080端口映射到公网中
ngrok http http://localhost:8080# 将本地80端口映射到公网中
ngrok http http://localhost:80

别人通过访问 https://9031-124-227-194-80.ngrok-free.app/ ,从而访问本地80端口服务。

在这里插入图片描述

注意:该程序需一直保持运行,程序关闭,映射也将关闭。如果需要关闭映射,可以使用ctrl + c 或关闭该界面,进行程序终止。每次重新执行命令,映射公网的域名都会发生改变。

5.2.3、固定域名

为了解决每次运行Ngrok得到随机域名的情况,我们可以通过下方配置,获得固定域名!

(1)点击【Cloud Edge】, 【Domains】,【Create Domain】创建一个固定域名

在这里插入图片描述

(2)在映射端口,添加【–domain】属性

在这里插入图片描述

在ngrok命令行界面中,复制给定的Tunnel命令,将本地端口80映射到公网中,我们会发现,无论再怎么启动,都是相同的域名了!

ngrok http --domain=rested-accepted-akita.ngrok-free.app 80

在这里插入图片描述

5.2.4、前后端服务端口

(1)找到ngrok.yml文件,修改配置

version: "2"
authtoken: 2V6c4MgI9D7lcoUcEHGljIJ7BHH_3wNvTWuZNgSY55HMfrALG
tunnels:frontend:proto: httpaddr: 5173backend:proto: httpaddr: 8104

(2)通过隧道名称启动对应的隧道

# 启动frontend前端隧道
ngrok start frontend
# backend后端隧道
ngrok start backend
# 启动全部隧道,包括frontend和backend
ngrok start --all

5.3、NatApp

  1. 首先在本站注册账号 点击注册
  2. 登录后,点击左边 购买隧道,免费/付费均可
    blob.png
  3. 根据需要选择隧道协议,这里以web演示,购买隧道
    blob.png
  4. 本机建立web服务,如 nginx/apache/iis 等,默认80端口,确保 http://127.0.0.1 可以访问,如
    在这里插入图片描述

5.在 natapp.cn 根据您的本机下载对应的客户端,比如我的本机是win10,64位,则下载Windows 64位的客户端

在这里插入图片描述

6.下载之后,解压至任意目录,得到natapp.exe (linux下无需解压,直接 wget)
在这里插入图片描述

7.取得authtoken 在网站后台,我的隧道处,可以看到刚才购买的隧道

在这里插入图片描述

点击复制,即可得到 authtoken 这个authtoken便是您的隧道登录凭证,如这里得到的authtoken为9ab6b9040a624f40

8.运行natapp

natapp支持两种运行方式

a) config.ini方式 (推荐)
据操作系统下载不同的config.ini文件到刚才下载的natapp.exe同级目录 详见
将第7步得到的authtoken填进去 (其他地方都不填),然后保存
在这里插入图片描述

windows下,直接双击natapp.exe 即可.

在Linux/Mac 下 需要先给执行权限

chmod a+x natapp

然后再运行

./natapp

b) cmd -authtoken= 参数方式运行.
windows ,点击开始->运行->命令行提示符 后进入 natapp.exe的目录,运行

natapp -authtoken=9ab6b9040a624f40

linux ,同样给予可执行权限之后,运行

./natapp -authtoken=9ab6b9040a624f40

注意参数输入正确性,不要有多余的空格等!

9.运行成功,都可以得到如下界面:

在这里插入图片描述

  • Tunnel Status Online 代表链接成功
  • Version 当前客户端版本,如果有新版本,会有提示
  • Forwarding 当前穿透 网址 或者端口
  • Web Interface 是本地Web管理界面,可在隧道配置打开或关闭,仅用于web开发测试
  • Total Connections 总连接数
  • Avg Conn Time 0.00ms 这里不代表,不代表,不代表 延时,需要注意!

10.将natapp分配的网址(上图Forwarding ),鼠标选定然后复制下来(选定之后单击鼠标右键),在浏览器中访问,可以看到内网穿透成功了!

在这里插入图片描述

5.4、Frp

5.4.1、下载Frp

找到适合自己的版本,下载

在这里插入图片描述

以Windows的包为例,解压后可以获得这些内容

在这里插入图片描述

frps是服务端程序,frpc是客户端程序。ini文件就是对应的配置文件。

5.4.2、暴露内网服务

(1)配置 frps.ini,并启动服务端 frps

[common]
bind_port = 7000

(2)在需要暴露到外网的机器上(本地机器)部署 frpc,配置如下:

[common]
server_addr = x.x.x.x 
server_port = 7000[secret_ssh]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22

(3)在想要访问内网服务的机器上(外网机器)也部署 frpc,配置如下:

[common]
server_addr = x.x.x.x
server_port = 7000[secret_ssh_visitor]
type = stcp
# stcp 的访问者
role = visitor
# 要访问的 stcp 代理的名字
server_name = secret_ssh
sk = abcdefg
# 绑定本地端口用于访问 SSH 服务
bind_addr = 127.0.0.1
bind_port = 6000

(4)把frpc也都启动起来之后,通过 SSH 外网机器就可以访问内网机器了

ssh -oPort=6000 test@127.0.0.1

5.5、神卓互联

  • 巴比达内网穿透官网
  • 说明文档

5.5.1、安装

(1)下载客户端

巴比达内网穿透官网,在产品中心选择内网穿透私有云系列,如图所示:

在这里插入图片描述

(2)选择内网穿透版本

在内网穿透页面上点击【下载Windows客户端】按钮,进行下载中心页面 如图所示:

在这里插入图片描述

(3)登录巴比达客户端

双击【巴比达】软件,使用神卓账号进行登录、如未有账号请先注册账号

在这里插入图片描述

5.5.2、创建映射

方式一:官网创建映射

(1)点击【内网穿透】,【映射管理】,【创建映射】

在这里插入图片描述

(2)选择【网页类应用】,【开始创建】
在这里插入图片描述

(3)配置穿透信息
在这里插入图片描述

(4)创建好访问通道后,重启巴比达软件

在这里插入图片描述

(5)访问测试

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

方式二:巴比达创建

(1)创建映射

​ 1)点击创建映射

​ 2)自定义 应用名称、选择 9.0 、添加内网地址、选择应用端口

​ 3)点击保存

​ 4)点击返回按钮 回到 客户端管理页面

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(2)映射规则创建完成

​ 1)自动获得一个 公网固定访问地址 (如不主动删除一直有效)

​ 2)点击检测,创建的映射是否正常

​ 3)检测结果均为绿色说明 内网应用、公网地址、系统服务 均为正常

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.5.3、检测系统服务启动失败原因

(1)状态显示绿色的 “RUNNING”,表示后台服务运行正常。

(2)状态显示红色的 “系统服务未安装” 或者空白,表示安装客户端的时候为成功安装系统服务组件,如出现此情况可

​ 以尝试卸载重新安装客户端。

(3)状态显示红色的 “系统服务启动失败“,表示当前操作系统无法启动服务或者启动时被第三方软件给屏蔽或拦截,

​ 此类情况需要用户排查主机情况。

(4)使用内网穿透时需要使用网络通信,先将可能会进行拦截网络通信的第三方软件,放开通行,或可将其先行卸载,

​ 等测试连接成功后再重新安装。

​ (解决方法):先将第三方软件,连同当前神卓互联客户端一起卸载,然后重启主机,再重新安装神卓互联客户端即可。

在这里插入图片描述

5.6、飞鸽

飞鸽内网穿透注册

5.6.1、开通隧道

注册好后,我们点击“开通隧道”选项,选择“免费节点”,有实力的也可以选贵的。

在这里插入图片描述

然后填写信息,其中前置域名可以自定,本地ip端口一定要设置成:你的内网ip:刚配置的端口号。
在这里插入图片描述

最后点击确认开通,就OK了,这样你就得到了免费域名+免费公网ip。

5.6.2、启动服务

点击此链接,根据电脑系统下载客户端。下载完后解压,一共有两个文件:傻瓜式运行点击我.vbsnpc.exe

点击傻瓜式运行点击我.vbs,打开后会看见一个弹窗,让你填写指令。我们切回飞鸽官网,点击“隧道管理”,如下图:根据电脑系统选择指令,点击复制,然后切回刚才的弹窗,将指令输入进去,点击确定。
在这里插入图片描述
在这里插入图片描述

看到 “欢迎使用飞鸽内网穿透,您已成功连接到服务器!!” 字样,则说明这样内网穿透就成功了!

在这里插入图片描述

通过隧道管理中的“访问地址”直接访问,打开浏览器,输入刚才开通的隧道的访问地址,回车,成功访问nginx指定的页面!

在这里插入图片描述

5.6.3、动态图演示

在这里插入图片描述

6、各类内网穿透对比

名称免费带宽免费隧道限制流量访问地址
神卓互联1M1条不限制流量访问地址不强制改变
cpolar1M1条不限制流量访问地址不定时强制更换
Ngrok1M2条不限制流量访问地址不强制改变
花生壳1M2条1G/月访问地址不强制改变
快解析1M2条1G/月访问地址默认域名有效期3天
NATAPP1M2条不限制流量访问地址不定时强制更换
飞 鸽0.5M1条不限制流量访问地址不定时强制更换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】--- 栈和队列

前言 前面学习了数据结构的顺序表、单链表、双向循环链表这些结构&#xff1b;现在就来学习栈和队列&#xff0c;这里可以简单的说栈和队列是具有特殊化的线性表 一、栈 1.1、栈的概念和结构 栈是一种遵循先入后出逻辑的线性数据结构。 栈是一种特殊的线性表&#xff0c;它只允…

vivado FFT IP Core

文章目录 前言FFT IP 接口介绍接口简介tdata 格式说明 其他细节关于计算精度及缩放系数计算溢出架构选择数据顺序实时/非实时模式数据输入输出时序关于配置信息的应用时间节点 FFT IP 例化介绍控制代码实现 & 测试参考文献 前言 由于计算资源受限&#xff0c;准备将上位机 …

【漏洞复现】泛微E-Cology WorkflowServiceXml SQL注入漏洞

0x01 产品简介 泛微e-cology是一款由泛微网络科技开发的协同管理平台&#xff0c;支持人力资源、财务、行政等多功能管理和移动办公。 0x02 漏洞概述 泛微OAE-Cology 接口/services/WorkflowServiceXml 存在SQL注入漏洞&#xff0c;可获取数据库权限&#xff0c;导致数据泄露…

Qt日志库QsLog使用教程

前言 最近项目中需要用到日志库。上一次项目中用到了log4qt库&#xff0c;这个库有个麻烦的点是要配置config文件&#xff0c;所以这次切换到了QsLog。用了后这个库的感受是&#xff0c;比较轻量级&#xff0c;嘎嘎好用&#xff0c;推荐一波。 下载QsLog库 https://github.c…

【踩坑日记】【教程】嵌入式 Linux 通过 nfs 下载出现 T T T T [Retry count exceeded: starting again]

文章目录 1 本篇文章解决的问题2 问题解决原理3 问题环境4 开启 ubuntu-20.04 的 nfs24.1 确认 nfs2 是否已经开启4.2 开启 nfs2 5 卸载 iptables5.1 卸载 iptables5.2 禁用 ufw5.3 尝试重新下载 6 原理分析6.1 nfs2 开启部分6.2 卸载 iptables 部分 7 后记7.1 拓扑结构一7.2 拓…

【博士每天一篇文献-算法】连续学习算法之HNet:Continual learning with hypernetworks

阅读时间&#xff1a;2023-12-26 1 介绍 年份&#xff1a;2019 作者&#xff1a;Johannes von Oswald&#xff0c;Google Research&#xff1b;Christian Henning&#xff0c;EthonAI AG&#xff1b;Benjamin F. Grewe&#xff0c;苏黎世联邦理工学院神经信息学研究所 期刊&a…

【Vue3 ts】echars图表展示统计的月份数据

图片展示 此处内容为展示24年各个月份产品的创建数量。在后端统计24年各个月份产品数量后&#xff0c;以数组的格式发送给前端&#xff0c;前端负责展示。 后端 entity层&#xff1a; Data Schema(description "月份统计")public class MonthCount {private Stri…

处理uniapp刷新后,点击返回按钮跳转到登录页的问题

在使用uniapp的原生返回的按钮时&#xff0c;如果没有刷新会正常返回到对应的页面&#xff0c;如果刷新后会在当前页反复横跳&#xff0c;或者跳转到登录页。那个时候我第一个想法时&#xff1a;使用浏览器的history.back()方法。因为浏览器刷新后还是可以通过右上角的返回按钮…

01认识Java(介绍安装调试)

单元概述 本章主要介绍Java语言的发展历史&#xff0c;了解Java的运行原理及Java编程语言的特点&#xff0c;通过搭建Eclipse集成开发环境来运行Java应用程序。 1.1 Java简介 1.1.1 什么是Java 计算机语言是人与计算机之间的通讯语言&#xff0c;分为机器语言、汇编语言、高…

短视频是如何一步步“蚕食”我们大脑的?

点击上方△腾阳 关注 转载请联系授权 你好&#xff0c;我是腾阳。 今天我们将深入探讨短视频是如何「蚕食」我们的大脑。 首先问下自己&#xff0c;你有多久没有看完一篇长文了&#xff1f; 你是否曾在清晨阳光中&#xff0c;被手机屏幕上短视频图标吸引&#xff0c;而忘记…

ArrayList.subList的踩坑

需求描述&#xff1a;跳过list中的第一个元素&#xff0c;获取list中的其他元素 原始代码如下&#xff1a; List<FddxxEnterpriseVerify> companyList fddxxEnterpriseVerifyMapper.selectList(companyQueryWrapper);log.info("获取多个法大大公司数据量为&#…

【Vue】快速入门:构建你的第一个Vue 3应用

文章目录 一、Vue简介二、环境搭建1. 安装Node.js和npm2. 安装Vue CLI 三、创建Vue项目四、项目结构介绍五、组件基础创建一个组件使用组件 六、模板语法插值指令v-bindv-ifv-for 七、事件处理八、状态管理安装Vuex创建Store使用Store 九、路由基础安装Vue Router配置路由使用路…

科普文:详解23种设计模式

概叙 设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结&#xff0c;其中最出名的当属 Gang of Four&#xff08;GoF&#xff09;的分类了&#xff0c;他们将设计模式分类为 23 种经典的模式&#xff0c;根据用途我们又可以分为三大类&#xff0c;分别为创建型模式…

《Python数据科学之四:建模与机器学习基础》

《Python数据科学之四&#xff1a;建模与机器学习基础》 在数据科学项目中&#xff0c;经过数据清洗、探索性数据分析&#xff08;EDA&#xff09;和数据可视化之后&#xff0c;下一个重要步骤是建立数据模型并应用机器学习技术。本文将深入探讨如何使用 Python 进行建模和机器…

Java异常抛出与处理方法

在Java编程中&#xff0c;异常处理是一个非常重要的部分。通过正确的异常处理&#xff0c;我们可以提高程序的健壮性和可靠性&#xff0c;避免程序在运行过程中出现意外的崩溃。本文将详细讲述Java异常的抛出与处理方法&#xff0c;并通过示例代码进行说明。 一、Java异常的分…

11 网络编程、反射

文章目录 网络编程1、网络的相关概念2、InetAddress 类3、Socket4、TCP 网络通信编程5、UDP 网络通信编程 反射1、反射机制2、Class 类3、类加载4、通过反射获取类的结构信息5、通过反射创建对象6、通过反射访问类中的成员 网络编程 1、网络的相关概念 网络通信 网络 ip 地…

安全防御:智能选路

目录 一、智能选路 1.1 就近选路 1.2 策略路由 1.3 虚拟系统---VRF 二、全局选路策略 1&#xff0c;基于链路带宽进行负载分担 2&#xff0c;基于链路质量进行负载分担 3&#xff0c;基于链路权重的负载分担 4&#xff0c;根据链路优先级的主备备份 DNS透明代理 一、…

Codeforces Round 895 (Div. 3)(A~G)

A. Two Vessels Problem - A - Codeforces 要我们找到最少操作多少次&#xff0c;a和b内的水一样多&#xff0c;从a拿出i克放到b中&#xff0c;之间的差距减少2i&#xff0c;数据范围不大&#xff0c;循环解决即可。 #include<iostream> #include<algorithm> #in…

推荐算法——MRR

定义&#xff1a; MRR计算的是第一个正确答案的排名的倒数&#xff0c;并对所有查询取平均值。它衡量了模型在排序结果中快速找到正确答案的能力。 其中&#xff1a; Q 是查询的总数。ranki​ 是第 i 个查询中第一个正确答案的排名&#xff08;位置&#xff09;。如果第一个正…

Django定时任务框架django-apscheduler的使用

1.安装库 pip install django-apscheduler 2.添加 install_app django_apscheduler 3.在app下添加一个task.py文件&#xff0c;用来实现具体的定时任务 task.pydef my_scheduled_job():print("这个任务每3秒执行一次", time.time()) 4.在app下创建一个manag…