内网穿透工具frp安装使用

2023-12-21

摘要: 之前使用的 nps 目前没有维护更新了,和在使用的过程中做内网穿透的的网速应该有限制,不论云服务器带宽是多少,下载速度都比较慢。这里切换到 frp 试试,对安装和使用简单记录,其和 nps 有很大的操作配置不同之处。

相关文章
  • 内网穿透工具frp安装使用
  • 内网穿透工具NPS安装使用
  • xftp5 连接 centos7.8

一、frp 官方概览


frp 是什么?
frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。

为什么选择 frp?
通过在具有公网 IP 的节点上部署 frp 服务端,您可以轻松地将内网服务穿透到公网,并享受以下专业特性:

  • 多种协议支持:客户端服务端通信支持 TCP、QUIC、KCP 和 Websocket 等多种协议。
  • TCP 连接流式复用:在单个连接上承载多个请求,减少连接建立时间,降低请求延迟。
  • 代理组间的负载均衡。
  • 端口复用:多个服务可以通过同一个服务端端口暴露。
  • P2P 通信:流量不必经过服务器中转,充分利用带宽资源。
  • 客户端插件:提供多个原生支持的客户端插件,如静态文件查看、HTTPS/HTTP 协议转换、HTTP、SOCKS5 代理等,以便满足各种需求。
  • 服务端插件系统:高度可扩展的服务端插件系统,便于根据自身需求进行功能扩展。
  • 用户友好的 UI 页面:提供服务端和客户端的用户界面,使配置和监控变得更加方便。
frp链接地址
在进行安装前可以自行细读官网教程,教程很详细:
frp下载地址: https://github.com/fatedier/frp/releases
frp 使用教程: https://gofrp.org/zh-cn/docs/overview/

二、工作电脑上网环境测试

测试环境共计 3 台电脑,如果电脑不足,可采用虚拟机,网络环境为内网。采用 windows11 系统作为 frp 服务器端,win7系统做客服端。将客服端的远程桌面(3389)端口代理到服务器端口的 6000端口。

注:测试环境为内网环境,将服务端和客服端防火墙直接设置为关闭。和测试文件配置最要为验证是否部署成功,同正式环境配置文件有差异!

1.1 服务端(Windows 11)

1、服务端配置文件如下,其 # 为注释说明

#frps服务监听的本机端口
#bindAddr = "127.0.0.1"
bindPort = 7000

#frps服务web界面配置
webServer.addr = "127.0.0.1"
webServer.port = 7500
webServer.user  = "cikkod"
webServer.password = "cikkod@123"

#鉴权配置
auth.method = "token"
auth.token = "cikkod"

#日志配置
#log.to = "console"
log.to = "./log"
log.level = "info"
log.maxDays = 7

注意:如果配置日志为文件形式,则运行后会将相关日志记录写入文件,不会在控制台显示打开成功的信息,会直接写入到配置的 log 文件中。

2、配置校验

frps verify -c ./frps.toml

如果正常,则是提示如下信息,如果异常则会提示对应信息

D:\software\frp\frp_0.53.0_windows_amd64>frps verify -c ./frps.toml
frps: the configuration file ./frps.toml syntax is ok

3、启动程序

如果配置文件检验没有问题,即可启动程序(后续会提到配置文件虽然检验正常,但是不一定能正常启动,经验应该只是针对格式检查),下面 2 中指令都可以正常启动。

启动成功后,需要注意事启动成功应该是 2 个端口。其中 7000 是 frp 的绑定端口,7500是 frp 的后台面板端口。可能会遇到只有 7000 端口成功,这个时候要检查配置文件是否正确。

方式一

frps.exe -c frps.toml
D:\software\frp\frp_0.53.0_windows_amd64>frps.exe -c frps.toml
2023/12/18 11:24:57 [I] [root.go:104] frps uses config file: frps.toml
2023/12/18 11:24:57 [I] [service.go:225] frps tcp listen on 127.0.0.1:7000
2023/12/18 11:24:57 [I] [root.go:113] frps started successfully
2023/12/18 11:24:57 [I] [service.go:338] dashboard listen on 127.0.0.1:7500

方式二

frps.exe -c ./frps.toml
D:\software\frp\frp_0.53.0_windows_amd64>frps.exe -c ./frps.toml
2023/12/18 11:32:46 [I] [root.go:104] frps uses config file: ./frps.toml
2023/12/18 11:32:46 [I] [service.go:225] frps tcp listen on 0.0.0.0:7000
2023/12/18 11:32:46 [I] [root.go:113] frps started successfully
2023/12/18 11:32:46 [I] [service.go:338] dashboard listen on 127.0.0.1:7500
2023/12/18 11:33:06 [I] [dashboard_api.go:106] Http request: [/api/serverinfo]
2023/12/18 11:33:06 [I] [dashboard_api.go:99] Http response [/api/serverinfo]: code [200]

启动后在浏览器中输入 127.0.0.1:7500 就可以打开后台面板

1.2 客服端(Windows7)

1、服务端配置文件如下,其 # 为注释说明

#token需要与服务端的token一致
auth.method = "token"
auth.token = "cikkod"

# 服务端的公网ip
serverAddr = "10.131.27.1"
serverPort = 7000

[[proxies]]
# 名称 需要唯一
name = "test-tcp"
# 类型tcp  
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
#访问服务端被转到本机当前配置的对应端口
#比如此处是57002,那外网访问服务端公网ip:57002则会被转发访问本配置127.0.0.1:22端口
remotePort = 6000

2、配置校验

frpc verify -c ./frpc.toml

3、启动程序

frpc.exe -c frpc.toml

frpc.exe -c ./frpc.toml

1.3 验证

在同事电脑上打开桌面远程(mtsc),输入访部署服务器的 IP 和 客服端远程代理端口 10.131.27.1:6000,就能成功的连接到安装客户端的电脑。输入计算中账号后进入成功进入系统。


三、正式云服务器环境部署

正式环境采用一台华为云 ESC 服务器(同时服务器为公司门户网站),客户端目前部署2台,一台 centos7 的 gitlab 代码仓库;一台window7 的 提供公司常用软件下载

注:正式环境为华为云公网环境,服务器主要用于公司门户网站搭建,采用 nginx 将多个门户网站和 frp 共用。云服务器需要在安全组的入项规则中添加各个代理客户端设置的远端服务器端口。测试文件配置最要为验证是否部署成功,同正式环境配置文件有差异!

3.1 服务端(华为云 centos7.9)

1、查看系统版本

[root@ecs-396a frp]# lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.9.2009 (Core)
Release:	7.9.2009
Codename:	Core
[root@ecs-396a frp]# 

如果没有安装插件,进行安装插件。具体根据系统而来,我这里是centos7

[root@ecs-396a frp]# lsb_release -a
-bash: lsb_release: command not found

不同系统其下载安装有差异,一般来说著名的 Linux 系统基本上分两大类:
RedHat 系列:Redhat、Centos、Fedora 等
Debian 系列:Debian、Ubuntu 等

yum install -y redhat-lsb
对比项 rpm yum dpkg apt
系列 RedHat系 RedHat系 Debian系 Debian系
区别 包安装工具 依赖管理工具 包安装工具 依赖管理工具
查询已安装 rpm -qa yum list installed dkpg -l apt list –installed
安装 rpm -i package.rpm 或 rpm –ivh http://www.xxx.net/package.rpm yum install -y dpkg -i package.deb apt-get install package
更新 rpm –U software.rpm yum update apt upgrade
移除软件包 rpm -e [module1][module2]… yum -remove dpkg -r package apt remove package
移除软件包及配置 dpkg -P apt purge package
下载的包存放位置 /var/cache/apt/archives
软件安装默认位置 rpm -ql /usr/share
可执行文件位置 /usr/bin /usr/bin
配置文件位置 /etc /etc
lib文件位置 /usr/lib /usr/lib
使用手册 /usr/share/doc
帮助文档 /usr/share/man
更新

2、服务端配置文件如下,其 # 为注释说明

可以利用 xFTP 的方式将 frp 文件拷贝,并进行配置文件修改。
[root@ecs-396a frp]# cat frps.toml
#frps服务监听的本机端口
#bindAddr = "127.0.0.1"
bindPort = 8001

#frps服务web界面配置
webServer.addr = "0.0.0.0"
webServer.port = 8101
webServer.user  = "cikkod"
webServer.password = "jdxy@123"

#鉴权配置
auth.method = "token"
auth.token = "cikkod"

#日志配置
#log.to = "console"
log.to = "./log"
log.level = "info"
log.maxDays = 7

#端口白名单
allowPorts = [
  { start = 8000, end = 8500 },
  { single = 8765 }
]

#二级域名后缀
subDomainHost = "cikkod.com"

3、配置校验

./frps verify -c  ./frps.toml

如果正常,则是提示如下信息,如果异常则会提示对应信息

[root@ecs-396a frp]# ./frps verify -c  ./frps.toml
frps: the configuration file ./frps.toml syntax is ok

本次遇到权限问题,问题明细和解决办法如下:

[root@ecs-396a frp]# ./frps verify -c  ./frps.toml 
-bash: ./frps: Permission denied

查看当前用户

[root@ecs-396a frp]# who
root     pts/2        2023-12-15 17:48 (118.116.12.165)

查看文件权限

[root@ecs-396a local]# ls -l frp
total 17636
-rw-r--r-- 1 root root 18042880 Dec 18 17:48 frps
-rwxrwxrwx 1 root root      356 Dec 18 17:51 frps.toml
-rwxrwxrwx 1 root root    11358 Dec 18 17:47 LICENSE

发现 frps 文件不可执行,分别将 frps 和 frps.toml文件权限设置为 777后,校验成功。

4、启动程序

因为配置了log 所以不会在控制台打印日志

[root@ecs-396a frp]# ./frps -c ./frps.toml

如果启动异常,则会提示相关的信息,本次遇到的问题如下:

[root@ecs-396a frp]# ./frps -c ./frps.toml
listen tcp 116.63.139.233:8101: bind: cannot assign requested address
因为我在设置 webServer.addr = "xxx.xxx.xxx.xxx" 时,直接设置为了公网的IP地址,正确的设置为 webServer.addr = "0.0.0.0" 。

启动后在浏览器中输入 IP:PORT 就可以打开后台面板,后台面板端口不需要在安全组中添加。

3.2 客服端

通过开篇 frp 的概览,我们知道支持很多种方式,包含:TCP & UDP ,HTTP & HTTPS,STCP & SUDP,XTCP,TCPMUX,不同方式其配置文件有所差异。

3.2.1 TCP & UDP

个人目主要部署了 TCP & UDP 方式,刚好为一个centos7 系统,一个为 windows7 系统,成功启用后在 frp 的后台面板会显示信息

3.2.1.1 客户端(centos7.9)

2、服务端配置文件如下,其 # 为注释说明

可以利用 xFTP 的方式将 frp 文件拷贝,并进行配置文件修改。

[root@localhost frp]# cat frpc.toml
#token需要与服务端的token一致
auth.method = "token"
auth.token = "cikkod"

# 服务端的公网ip和frp绑定端口,填写自己的服务IP地址和端口
serverAddr = "xxx.xxx.xxx.xxx"
serverPort = 8001

#代理配置
[[proxies]]
# 名称 需要唯一
name = "gitlab"
# 类型tcp, udp, http, https, tcpmux, stcp, sudp, xtcp。
type = "tcp"
#本地IP和端口
localIP = "127.0.0.1"
localPort = 80
#访问服务端被转到本机当前配置的对应端口
#比如此处是57002,那外网访问服务端公网ip:57002则会被转发访问本配置127.0.0.1:22端口
remotePort = 8166
#自定义域名列表[]string
#customDomains = [""]
#子域名
#subdomain = "gitlab"
[root@localhost frp]# 

2、配置校验

./frpc verify -c  ./frpc.toml

3、启动程序

[root@localhost frp]# ./frpc -c ./frpc.toml
2023/12/19 10:19:43 [I] [root.go:141] start frpc service for config file [./frpc.toml]
2023/12/19 10:19:43 [I] [service.go:288] try to connect to server...
2023/12/19 10:19:43 [I] [service.go:279] [5685ed2bec39a57d] login to server success, get run id [5685ed2bec39a57d]
2023/12/19 10:19:43 [I] [proxy_manager.go:173] [5685ed2bec39a57d] proxy added: [gitlab]
2023/12/19 10:19:43 [I] [control.go:169] [5685ed2bec39a57d] [gitlab] start proxy success

如果启动异常,则会提示相关的信息,本次遇到的问题如下:

[root@localhost frp]# ./frpc -c ./frpc.toml
2023/12/19 10:13:42 [I] [root.go:141] start frpc service for config file [./frpc.toml]
2023/12/19 10:13:42 [I] [service.go:288] try to connect to server...
2023/12/19 10:13:52 [W] [service.go:291] connect to server error: dial tcp 116.63.139.233:8001: i/o timeout
2023/12/19 10:13:52 [I] [service.go:288] try to connect to server...
2023/12/19 10:13:52 [W] [service.go:291] connect to server error: dial tcp 116.63.139.233:8001: operation was canceled
2023/12/19 10:13:52 [I] [root.go:159] frpc service for config file [./frpc.toml] stopped
login to the server failed: dial tcp 116.63.139.233:8001: i/o timeout. With loginFailExit enabled, no additional retries will be attempted
[root@localhost frp]# 

超时原因是因为在云服务的安全配置没有放开绑定端口,云服务器的安全组的入方向规则中添加好frp 的 bindPort端口。(注意:非面板端口 webServer.port,面板端口不用打开也可以访问)

3.2.1.2 客户端(windows7)

其配置

1、服务端配置文件如下,其 # 为注释说明

#token需要与服务端的token一致
auth.method = "token"
auth.token = "cikkod"

# 服务端的公网ip,填写自己的服务IP地址和端口
serverAddr = "xxx.xxx.xxx.xxx"
serverPort = 8001

[[proxies]]
name = "download"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 8100

2、配置校验

frpc verify -c ./frpc.toml

3、启动程序

frpc.exe -c frpc.toml

frpc.exe -c ./frpc.toml

四、nginx配置域名

绑定域名主要有2步:

  1. 在域名平台绑定域名
  2. 在nginx中配置

1、域名绑定

2、nginx配置

#frp
server {
        listen 80;
        server_name ***t.cikkod.com;
        location / {
                proxy_pass http://127.0.0.1:8101;
                proxy_set_header Host $host:80;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_hide_header X-Powered-By;
        }
}

server {
        listen 80;
        server_name ***d.cikkod.com;
        location / {
                proxy_pass http://127.0.0.1:8100;
                proxy_set_header Host $host:80;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_hide_header X-Powered-By;
        }
}

server {
        listen 80;
        server_name ***b.cikkod.com;
        location / {
                proxy_pass http://127.0.0.1:8166;
                proxy_set_header Host $host:80;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_hide_header X-Powered-By;
        }
}

配置后重启 nginx 就可以通过域名访问

lnmp restart

五、设置后台运行

我们通过 Xshell 连接云服务器,如果我们关闭 Xshell 时,同时会关闭服务器,这里按照 centos7 系统 和 windows7 系统记录如何设置为后台服务,其 frps 和 frpc 设置同理。

5.1 centos7系统

在目录 /etc/systemd/system 下新建文件名为 frps.service 的文件,vi 可以编辑或新建文件 ,如果文件名称错误时,可以通过以下命令修改(将 frpc.sevice 修改为 frpc.service)。

[root@localhost system]# mv frpc.sevice frpc.service
[root@localhost system]# 

说明: ExecStart = frps.exe所在的目录/frps -c frps.ini所在的目录/frps.ini

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml

[Install]
WantedBy=multi-user.target

创建成功后启动服务和设置为自启动

[root@ecs-396a system]# systemctl start frps
[root@ecs-396a system]# systemctl enable frps
Created symlink from /etc/systemd/system/multi-user.target.wants/frps.service to /etc/systemd/system/frps.service.
[root@ecs-396a system]# 

文件新建好后用以下命令控制:

#设置开机启动
systemctl enable frps
#启动
systemctl start frps
#停止
systemctl stop frps
#状态
systemctl status frps 

5.2 windows7系统

winsw 和 nssm 都可将 exe 转成服务,尴尬的时候目前都没有更新了,本次采用 winsw 使用为旧版本,新版本v3.0.0-alpha.11 和 2.12 都遇到报错情况。

这里也不具体说明怎么使用WinSW,感兴趣可以查看这篇文章: Windows Server 2012 通过winSW注册服务后,服务被系统强制中断的服务属性设置问题

WinSW配置文件

<configuration>
	<!-- 该服务的唯一标识 -->
    <id>frpc</id>
    <!-- 该服务的名称 -->
    <name>cikkod_frpc</name>
    <!-- 该服务的描述 -->
    <description>frpc客户端 这个服务用 frpc 实现内网穿透</description>
    <!-- 要运行的程序路径 -->
    <executable>D:\frp\frp_0.53.0_windows_amd64\frpc.exe</executable>
    <!-- 携带的参数 -->
    <arguments>-c frpc.toml</arguments>
    <!-- 第一次启动失败 60秒重启 -->
    <onfailure action="restart" delay="60 sec"/> 
    <!-- 第二次启动失败 120秒后重启 -->
    <onfailure action="restart" delay="120 sec"/>
    <!-- 日志模式 -->
    <logmode>append</logmode>
    <!-- 指定日志文件目录(相对于executable配置的路径) -->
    <logpath>logs</logpath>
</configuration>

运行成功后,可以在服务里面进行查看到服务。也可以参考链接章节的 计划任务方式(未测试,之前用于设置定时关机)


六、参考链接

配置 Nginx 和 frps 共存 80/443 端口及泛域名支持教程
frp 官方文档
yum与apt的区别
云服务器搭建frp服务(超详细)
Frp后台自动启动的几个方法
frp内网穿透windows配置开机启动
Windows Server 2012 通过winSW注册服务后,服务被系统强制中断的服务属性设置问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内网穿透工具frp安装使用 的相关文章

  • 工程结构振弦采集仪的新技术与新方法研究

    工程结构振弦采集仪的新技术与新方法研究 工程结构振弦采集仪的新技术与新方法研究旨在提高采集仪在工程结构振动监测中的性能和可靠性 以下是一些可能的研究方向 1 传感器技术改进 研究新型传感器技术 如光纤传感器 MEMS传感器等 以提高振弦采集

随机推荐

  • 设计与算法:迷宫问题

    描述 定义一个二维数组 int maze 5 5 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 它表示一个迷宫 其中的1表示墙壁 0表示可以走的路 只能横着走或竖着走 不能斜着走 要求编
  • Unity学习笔记

    一 旋转欧拉角 四元数 Vector3 rotate new Vector3 0 30 0 Quaternion quaternion Quaternion identity quaternion Quaternion Euler rota
  • 百年东芝“瞄准”汽车「芯」机遇

    在汽车 新四化 大变革的驱动下 汽车半导体市场进入需求暴涨的新周期 智能电动汽车所需要的半导体种类和数量正在急剧增加 东芝电子分立器件应用技术部经理成栋表示 东芝电子正在加大汽车半导体市场的布局 从而满足汽车电动化 智能化发展所带来的全新市
  • Java入门:java中单引号和双引号区别

    区别1 java中的 单引号 表示字符 java中的 双引号 是字符串 区别2 单引号 引的数据一般是char类型的 双引号 引的数据 是String类型的 区别3 java中 单引号 里面只能放一个字母或数字或符号 java中的 双引号
  • CloudPulse:一款针对AWS云环境的SSL证书搜索与分析引擎

    关于CloudPulse CloudPulse是一款针对AWS云环境的SSL证书搜索与分析引擎 广大研究人员可以使用该工具简化并增强针对SSL证书数据的检索和分析过程 在网络侦查阶段 我们往往需要收集与目标相关的信息 并为目标创建一个专用文
  • 【华为机试真题 Python】简单的自动曝光、平均像素值

    题目描述 一个图像有n个像素点 存储在一个长度为n的数组img里 每个像素点的取值范围 0 255 的正整数 请你给图像每个像素点值加上一个整数k 可以是负数 得到新图newImg 使得新图newImg的所有像素平均值最接近中位值128 请
  • 一文揭秘人才成长规律,看到就是赚到

    社会不教 精英不讲 看到就是赚到 为啥你比别人挣得少 职场当中 决定你能拿多少钱 并不在于你的学历 也并不在于你的背景 而在于你处于什么位置 你能做什么 你做了什么 你为谁做什么 能做什么 代表的是能力 你做了什么 代表的是方向和业绩 你为
  • 【项目管理】redmine

    Redmine是用Ruby开发的基于web的项目管理软件 是用ROR框架开发的一套跨平台项目管理系统 据说是源于Basecamp的ror版而来 支持多种数据库 有不少自己独特的功能 例如提供wiki 新闻台等 还可以集成其他版本管理系统和B
  • LeetCode:162. 寻找峰值、1901. 寻找峰值 II(二分 C++)

    目录 162 寻找峰值 题目描述 实现代码与解析 二分 原理思路 1901 寻找峰值 II 题目描述 实现代码与解析 二分 原理思路 162 寻找峰值 题目描述 峰值元素是指其值严格大于左右相邻值的元素 给你一个整数数组 nums 找到峰值
  • 计算机组成原理综合1

    1 完整的 计算机系统 应包括 D A 运算器 存储器和控制器 B 外部设备和主机 C 主机和实用程序 D 配套的硬件设备和软件系统 2 计算机系统中的存储器系统是指 D A RAM存储器 B ROM存储器 C 主存储器 D 主存储器和外存
  • 【go语言】error错误机制及自定义错误返回类型

    简介 Go 语言通过内置的 error 接口来处理错误 该接口定义如下 type error interface Error string 这意味着任何实现了 Error 方法的类型都可以作为错误类型 在 Go 中 通常使用 errors
  • 产品经理和项目经理怎么区分?看完你也会

    产品经理的英文名叫Product Manager 项目经理的英文名叫Project Manager 两个都简称为PM 在工作中 这两种角色的工作内容常常有相同的地方 一些小公司甚至是产品经理和项目经理由同一个人承担 那今天我就给大家讲讲他们
  • 在线客服系统中的全渠道服务:多渠道整合与无缝沟通体验

    很多采购人员在了解在线客服系统的时候都会遇到一个名词 全渠道 很多人第一次接触可能并不理解它是什么意思 也不知道自己的企业是否需要这个 全渠道 今天这篇文章就为大家解答一二 一 全渠道是什么 全渠道 Omni Channel 就是企业为了满
  • LeetCode经典150题.274.H指数

    题目 274 H 指数 给你一个整数数组 citations 其中 citations i 表示研究者的第 i 篇论文被引用的次数 计算并返回该研究者的 h 指数 根据维基百科上 h 指数的定义 h 代表 高引用次数 一名科研人员的 h 指
  • ubuntu git: ‘lfs‘ is not a git command. See ‘git --help‘.

    sudo apt get install git lfs
  • EXCEL VLOOKUP函数

    参考资料 Excel 史上最全的VLOOKUP应用教程 VLOOKUP函数最全面最详细的讲解大全 涵盖17个重要和常见用法 目录 零 前提条件 一 单条件查找 1 1 顺向查找 1 2 逆向查找 二 多条件查找 2 1 顺向查找
  • 让你的查询更快——11个数据库优化技术

    数据库往往成为软件性能的瓶颈 好的数据对于高性能系统至关重要 以下是 11 种有效的数据库优化技术 1 索引 索引 索引是提供快速查找机制的数据结构 可显著提高查询性能 通过创建排序的数据结构来工作 该结构允许数据库引擎快速定位满足 WHE
  • 电子学会C/C++编程等级考试2022年06月(六级)真题解析

    C C 等级考试 1 8级 全部真题 点这里 第1题 小白鼠再排队2 N只小白鼠 1 lt N lt 100 每只鼠头上戴着一顶有颜色的帽子 现在称出每只白鼠的重量 要求按照白鼠重量从小到大的顺序输出它们头上帽子的颜色 帽子的颜色用 red
  • 内网穿透工具frp安装使用

    摘要 之前使用的 nps 目前没有维护更新了 和在使用的过程中做内网穿透的的网速应该有限制 不论云服务器带宽是多少 下载速度都比较慢 这里切换到 frp 试试 对安装和使用简单记录 其和 nps 有很大的操作配置不同之处 相关文章 内网穿透
  • 内网穿透工具frp安装使用

    摘要 之前使用的 nps 目前没有维护更新了 和在使用的过程中做内网穿透的的网速应该有限制 不论云服务器带宽是多少 下载速度都比较慢 这里切换到 frp 试试 对安装和使用简单记录 其和 nps 有很大的操作配置不同之处 相关文章 内网穿透