考勤机内网穿透绑定方案
🎯 方案核心逻辑
由于 EHR 系统只能主动连接 IP + 端口,而分点的考勤机没有固定公网 IP,所以需要:
云服务器(frps):作为“跳板”,拥有固定公网 IP,负责监听和转发请求。
分点电脑(frpc):作为“桥梁”,主动连接云服务器,打通网络隧道。
最终效果:EHR 系统访问 云服务器公网IP:指定端口,请求会通过隧道被转发到分点考勤机的端口上。
省事、省钱:不用拉专网,也不用组建内网。阿里云99一年优惠给开发者测试的云服务器直接解决目前公司几个分厂统一同步数据到EHR系统的难题。
📝 详细实现步骤
第一步:配置云服务器(服务端 frps)
在租用的云服务器上,需要下载 frp 并配置服务端。
1.下载并解压 frp(以 Linux 为例):
wgethttps://github.com/fatedier/frp/releases/download/v0.68.0/frp_0.68.0_linux_amd64.tar.gztar-zxvffrp_0.68.0_linux_amd64.tar.gzcdfrp_0.68.0_linux_amd642.编辑配置文件 frps.toml:
bindPort=7000auth.token="ck89808755"# 认证密码,务必修改# 可选:启用管理面板,方便查看状态webServer.addr="0.0.0.0"webServer.port=7500webServer.user="admin"webServer.password="wangyi0735"直接运行会一直卡在命令行前端,关闭服务就直接挂了,建议后台运行。
要让云服务器上的 frps 服务端在关闭终端后依然保持运行,主要有两种方法:
方法一:使用 systemd(推荐,最稳定)
这是 FRP 官方推荐的方式,可以将 frps 安装为系统服务,实现后台运行、开机自启、统一管理。
第一步:创建 systemd 服务文件
sudovim/etc/systemd/system/frps.service第二步:写入以下内容(注意替换路径)
[Unit]Description=frp serverAfter=network.target syslog.targetWants=network.target[Service]Type=simple# 关键:把这里的路径改成你实际的 frps 安装路径ExecStart=/path/to/frps-c/path/to/frps.tomlRestart=alwaysRestartSec=5[Install]WantedBy=multi-user.target第三步:启动并设置开机自启
# 重新加载 systemd 配置sudosystemctl daemon-reload# 启动 frps 服务sudosystemctl start frps# 查看运行状态(确认是 active (running))sudosystemctl status frps# 设置开机自动启动sudosystemctlenablefrps方法二:使用 nohup(快速简单)
如果你不想配置 systemd,可以用 nohup 让程序在后台运行
# 进入 frp 目录后执行nohup./frps-c./frps.toml>/dev/null2>&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:
[common]server_addr=云服务公网IP地址 server_port=7000token=ck89808755[fendian-wuling1]type=tcp local_ip=192.168.0.80 local_port=8000remote_port=6002[fendian-wuling2]type=tcp local_ip=192.168.0.253 local_port=8000remote_port=60033.启动客户端:
在文件夹地址栏输入 cmd 回车打开命令提示符,运行:
frpc.exe-cfrpc.toml这种方式分厂电脑一关机员工不会启动,一开始弄个脚本每次开机让他们手动点一下运行服务。
但有几个分厂的电脑是公用的,每次用的人都不同,干脆想办法设置成开机自动跑服务。
按下 Win + R,输入 shell:startup,回车。
在打开的文件夹里,右键 -> 新建 -> 快捷方式。
浏览找到你的 frpc.bat 文件,点击“完成”。这样子电脑每次开机服务自动跑起来了。
4.在frp后台能看见连接成功的客户端和节点
第三步:在产业园 EHR 系统中绑定
现在网络隧道已经建立,你可以在 EHR 系统中按以下信息添加考勤机:
IP 地址:(云服务器的公网 IP)
端口:6000(配置文件中设置的 remotePort)
