考勤机内网穿透绑定方案

🎯 方案核心逻辑

由于 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)

相关推荐
cpolar技术支持3 天前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
承渊政道6 天前
Open-LLM-VTuber本地部署教程:大模型、语音交互、Live2D与远程访问
大模型·内网穿透·数字人·cpolar·语音交互·open-llm-vtuber
贝锐7 天前
向日葵迎来重磅升级 异地组网与内网穿透在设备列表一键开启
内网穿透·远程控制·异地组网
承渊政道9 天前
Linux网络学习【从NAT与代理服务理解网络转发、探索内网穿透原理、再到认识DNS与ICMP、最后动手部署并测试内网穿透】
linux·网络·学习·内网穿透·dns·nat
如若12310 天前
Windows SSH + Headscale/Tailscale 组网及免密登录完整配置教程
运维·windows·ubuntu·ssh·内网穿透
cpolar技术支持12 天前
网关加 gzip,同时开启 chunked,下载回来的包解不开:把两层编码的解压顺序与长度核对做成只读页
python·http·网络编程·socket·内网穿透
承渊政道16 天前
新增一台服务器时还要重新装Nginx?Ansible只改hosts目标列表,同一份Playbook继续执行
运维·nginx·ansible·内网穿透·cpolar
cpolar技术支持19 天前
磁盘明明没满,服务却写不进去?做个 inode 与分区占用只读报表页,cpolar 给异地同事看
linux·内网穿透·cpolar·inode·运维排障
承渊政道23 天前
极空间部署Portainer实战:Docker Socket、9000端口、容器管理与固定地址访问
运维·docker·容器·内网穿透·cpolar·portainer
SoStraw23 天前
没有公网IP怎么远程SSH?设备只装 p2pssh-server,File2File 一键连回去
ssh·内网穿透·远程ssh·webrpc·无公网ip·file2file·p2pssh