考勤机内网穿透绑定方案

🎯 方案核心逻辑

由于 EHR 系统只能主动连接 IP + 端口,而分点的考勤机没有固定公网 IP,所以需要:

云服务器(frps):作为"跳板",拥有固定公网 IP,负责监听和转发请求。

分点电脑(frpc):作为"桥梁",主动连接云服务器,打通网络隧道。

最终效果:EHR 系统访问 云服务器公网IP:指定端口,请求会通过隧道被转发到分点考勤机的端口上。

省事、省钱:不用拉专网,也不用组建内网。阿里云99一年优惠给开发者测试的云服务器直接解决目前公司几个分厂统一同步数据到EHR系统的难题。

📝 详细实现步骤

第一步:配置云服务器(服务端 frps)

在租用的云服务器上,需要下载 frp 并配置服务端。

1.下载并解压 frp(以 Linux 为例):

bash 复制代码
wget https://github.com/fatedier/frp/releases/download/v0.68.0/frp_0.68.0_linux_amd64.tar.gz
tar -zxvf frp_0.68.0_linux_amd64.tar.gz
cd frp_0.68.0_linux_amd64

2.编辑配置文件 frps.toml:

bash 复制代码
bindPort = 7000

auth.token = "ck89808755"  # 认证密码,务必修改
 
# 可选:启用管理面板,方便查看状态
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "wangyi0735"

直接运行会一直卡在命令行前端,关闭服务就直接挂了,建议后台运行。

要让云服务器上的 frps 服务端在关闭终端后依然保持运行,主要有两种方法:

方法一:使用 systemd(推荐,最稳定)

这是 FRP 官方推荐的方式,可以将 frps 安装为系统服务,实现后台运行、开机自启、统一管理。

第一步:创建 systemd 服务文件

bash 复制代码
sudo vim /etc/systemd/system/frps.service

第二步:写入以下内容(注意替换路径)

bash 复制代码
[Unit]
Description=frp server
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
# 关键:把这里的路径改成你实际的 frps 安装路径
ExecStart=/path/to/frps -c /path/to/frps.toml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

第三步:启动并设置开机自启

bash 复制代码
# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 启动 frps 服务
sudo systemctl start frps

# 查看运行状态(确认是 active (running))
sudo systemctl status frps

# 设置开机自动启动
sudo systemctl enable frps

方法二:使用 nohup(快速简单)

如果你不想配置 systemd,可以用 nohup 让程序在后台运行

bash 复制代码
# 进入 frp 目录后执行
nohup ./frps -c ./frps.toml > /dev/null 2>&1 &

第二步:配置分点电脑(客户端 frpc)

在分点放置的 Windows 电脑上下载 Windows 版本的 frp,并进行配置。

1.下载并解压 Windows 版 frp(注意系统架构,通常是 windows_amd64)。

需要注意:从 FRP 0.58.0 版本开始,官方使用的 Go 1.21+ 编译环境已经不再支持 Windows 7。你在用的 0.68.0 版本太新了,在 Win7 上运行时缺少必要的系统 API。win7系统可以下载0.49.0 或更早版本。

2.在 frp 文件夹中创建配置文件 frpc.toml:

bash 复制代码
[common]

server_addr = 云服务公网IP地址

server_port = 7000

token = ck89808755



[fendian-wuling1]

type = tcp

local_ip = 192.168.0.80

local_port = 8000
remote_port = 6002


[fendian-wuling2]

type = tcp

local_ip = 192.168.0.253
local_port = 8000
remote_port = 6003

3.启动客户端:

在文件夹地址栏输入 cmd 回车打开命令提示符,运行:

bash 复制代码
frpc.exe -c frpc.toml

这种方式分厂电脑一关机员工不会启动,一开始弄个脚本每次开机让他们手动点一下运行服务。

但有几个分厂的电脑是公用的,每次用的人都不同,干脆想办法设置成开机自动跑服务。

按下 Win + R,输入 shell:startup,回车。

在打开的文件夹里,右键 -> 新建 -> 快捷方式。

浏览找到你的 frpc.bat 文件,点击"完成"。这样子电脑每次开机服务自动跑起来了。

4.在frp后台能看见连接成功的客户端和节点

第三步:在产业园 EHR 系统中绑定

现在网络隧道已经建立,你可以在 EHR 系统中按以下信息添加考勤机:

IP 地址:(云服务器的公网 IP)

端口:6000(配置文件中设置的 remotePort)

相关推荐
承渊政道1 天前
极空间部署Portainer实战:Docker Socket、9000端口、容器管理与固定地址访问
运维·docker·容器·内网穿透·cpolar·portainer
SoStraw1 天前
没有公网IP怎么远程SSH?设备只装 p2pssh-server,File2File 一键连回去
ssh·内网穿透·远程ssh·webrpc·无公网ip·file2file·p2pssh
cpolar技术支持3 天前
把配置发出去怕带出密钥?先把含凭据配置转成脱敏只读快照,用 cpolar 给同事核对差异
运维·python·内网穿透·cpolar·配置脱敏
cpolar技术支持3 天前
端口被谁占了、这台机上开了哪些监听?本机起一个端口占用只读清单,cpolar 给异地同事远程看谁在监听
运维·python·内网穿透·cpolar·端口占用
todoitbo4 天前
本来只想给内网开个口子,Natapp 却多给了一道防护
前端·javascript·vue.js·内网穿透·网络防护·natapp
ZeroNews内网穿透6 天前
内网穿透公网暴露防护:边缘网关 IP 黑白名单运维实践
运维·网络协议·tcp/ip·内网穿透·api安全·企业网络安全·运维实践
云泽8087 天前
ESXi+飞牛NAS实战:N5105小主机一机多用还能远程管理
esxi·虚拟化·内网穿透·小主机·飞牛nas·n5105
cpolar技术支持8 天前
第三方平台回调总说收不到?把本机 Webhook 收单页跑通,用 cpolar 固定二级子域名给对面看实时请求
node.js·内网穿透·webhook·cpolar·回调对接
承渊政道8 天前
CentOS 7单机部署Elasticsearch 7.17.29:从启动报错、CRUD验证到固定公网地址的完整过程
linux·elasticsearch·centos·内网穿透·cpolar·单机部署
ZeroNews内网穿透11 天前
数据存在本地:基于边缘隧道与 E2E TLS 的受控文件共享架构实践
远程工作·内网穿透·oa系统