欢迎光临
我们一直在努力

【知识拓展】通过服务器中转建立内网穿透,实现本地数据、网站的实时传输。

问题描述

地图切片数据太大传输至服务器时间耗时较久,本地使用ArcGIS-server 发布的地图服务无法被互联网访问,如何通过中转服务器实现互联网访问本地地图服务。
1、内网穿透软件FRP安装
FRP(Fast Reverse Proxy)是一个专注于内网穿透的高性能的反向代理应用,使用Go语言编写。它允许你将内网(例如家庭网络或公司内部)的服务暴露到公网上,使得公网用户可以访问内网服务。FRP支持多种协议,包括TCP、UDP、HTTP、HTTPS,甚至支持点对点穿透。

1、主要特性:
①跨平台:由于使用Go语言编写,FRP可以在多种平台上运行,包括Windows、Linux、macOS等。
②配置灵活:通过简单的配置文件,可以轻松设置各种类型的代理。
③安全性:支持Token认证,确保连接的安全性。还可以通过TLS加密传输。

2、多种代理类型:
④TCP:将内网的TCP服务暴露到公网。
⑤UDP:支持UDP协议的转发。
⑥HTTP:将内网的HTTP服务暴露到公网,并支持域名绑定和URL路由。
⑦HTTPS:类似HTTP,但支持HTTPS协议。
⑧P2P穿透:在某些情况下可以建立点对点连接,提高传输效率。
⑨Web面板:FRP提供了一个可选的Web控制台,用于查看和管理代理状态。

3、基本架构:
FRP通常由两部分组成:
①服务端(frps):运行在具有公网IP的服务器上,接收来自客户端的连接,然后将公网请求转发到内网。
②客户端(frpc):运行在内网机器上,与服务器建立连接,并将本地服务暴露给服务器。

4、软件地址:
https://github.com/fatedier/frp/releases/tag/v0.64.0

5、示例:
本地window系统发布的地图服务,通过Linux系统的服务器中转,使得公网可以访问本地window的地图服务。

下载如图下所示两个文件:
在这里插入图片描述
新建两个文件夹以frpc和frps命名,将压缩包里的frpc相关的文件名放进一个文件夹,frps相关文件放进另一个文件夹。(.toml为配置文件)
在这里插入图片描述
在这里插入图片描述
6、配置frpc.toml 和 frps.toml文件
frpc.toml
在这里插入图片描述
1、serverPort为服务器端口,可以改为7001等其它未占用端口,该端口是 frpc 客户端主动连接 frps 服务端 的端口。它负责建立和管理控制通道,不直接传输用户数据。
2、localPort是本地内网中真正提供服务的应用程序所监听的端口,(例如可以改为ArcGIS Server所监听的端口6080),frpc 的最终目标就是将数据转发到这个端口。
3、remotePort对应的是服务器端口,是公网用户实际访问的端口,当 frps 通过 7000端口收到代理配置后,就会在remotePort端口上“监听”。公网用户连接 serverAddr:remotePort(图中表示为127.0.0.1:6000),frps 就会将数据通过已建立的通道转发给对应的 frpc。
简单来说:7000是管理通道,6000 是公网入口,22 是内网终点。
4、一个外网用户访问您的 ArcGIS 服务的完整链路是:
用户 → 访问 serverPort:remotePort → frps (通过7000端口建立的通道) → 转发给 frpc → frpc 访问内网 localIP: localPort→ 服务响应并原路返回。

frps.toml
在这里插入图片描述
frps.toml中的bindPort的端口号要和frpc.toml中的serverPort的端口号一致。

2、配置服务端(Linux系统)
1、将frps文件通过FinalShell拖入Linux服务器中,并cd 至该目录下。
在这里插入图片描述
2、启动frps

./frps -c ./frps.toml

成功如图所示:
在这里插入图片描述
3、客户端连接服务器
本地为windows,不能直接用frp_0.64.0_linux_amd64下的frpc执行文件,需要从下载的frp_0.64.0_windows_amd64中把frpc.exe放到刚刚建的frpc文件夹中。如图所示:
在这里插入图片描述
在此文件夹中打开Windows PowerShell:
在这里插入图片描述
执行命令运行:

frpc.exe c frpc.toml

这样通过访问服务器ip+映射端口,就可以访问到本地的服务。

4、内容拓展——使frps在Linux服务器一直运行,不会随窗口关闭而停止
方法:使用Systemd
1、创建 Systemd 服务文件
在Linux服务器命令行执行

sudo nano /etc/systemd/system/frps.service #自定义服务名称

2、添加以下内容(注意分行,按照如下格式)

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

[Service]
Type=simple
User=ubuntu
Group=ubuntu
WorkingDirectory=/data/frps #根据自己路径设置
ExecStart=/data/frps/frps -c /data/frps/frps.toml #根据自己路径设置
Restart=on-failure
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=frps

# 限制资源使用(可选)
LimitNOFILE=1048576
LimitNPROC=512

# 安全设置
NoNewPrivileges=true
PrivateTmp=true

[Install]
WantedBy=multi-user.target

(Ctrl + O # 保存文件
Enter # 确认文件名(保持为 frps.service)
Ctrl + X # 退出编辑器)

3、启用并启动服务
①重新加载 systemd 配置

sudo systemctl daemon-reload

②设置开机自启

sudo systemctl enable frps

③禁用开机自启

sudo systemctl disable frps

④立即启动服务

sudo systemctl start frps

⑤查看服务状态

sudo systemctl status frps

⑥查看实时日志

sudo journalctl -u frps -f

⑦ 查看是否启用

sudo systemctl is-enabled frps

⑧停止服务

sudo systemctl stop frps

⑨重启服务

sudo systemctl restart frps

⑩查看完整日志

sudo journalctl -u frps –no-pager -n 50

5、内容拓展——使frpc在本地windows服务器一直运行,不会随窗口关闭而停止
1、下载NSSM
地址:https://nssm.cc/download
下载最新版本,解压后选择 32 位或 64 位的 nssm.exe
解压缩下载的文件到一个方便访问的目录中,比如D:\\nssm-2.24

2、使用nssm
进入到和你电脑相对应的win32和win64的文件夹下,在路径上输入cmd然后回车。
在这里插入图片描述
运行 nssm install得到如图:
在这里插入图片描述
Path:点击 Browse,导航到你的 frpc.exe 所在目录(例如 D:\\内网穿透\\frpc),并选择 frpc.exe。
Startup directory:通常会自动填充为与 Path 相同的目录。请确保它指向 D:\\内网穿透\\frpc,因为这是 frpc.toml 配置文件所在的位置。
Arguments:填写 -c frpc.toml。
Service name:可以填写为 FrpcService,自定义名称

3、启动与管理服务
①启动服务

net start FrpcService

②停止服务

net stop FrpcService

③ 设置服务为开机自动启动(默认已是自动)

sc config FrpcService start=auto

④查看服务状态

sc query FrpcService

⑤实时查看服务输出的日志(类似Linux的 tail -f)

nssm tail FrpcService

⑥修改服务配置

nssm edit FrpcService

⑦卸载服务
首先停止服务

net stop FrpcService

然后卸载

nssm remove FrpcService

使用图形界面管理:
按 Win + R,输入 services.msc 并回车,打开“服务”管理器。
在列表中找到你刚创建的 FrpcService。
可以在此处右键进行 启动、停止、重启,或双击查看属性、更改启动类型。

赞(0)
未经允许不得转载:171主机测评 » 【知识拓展】通过服务器中转建立内网穿透,实现本地数据、网站的实时传输。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址