0.现状
- 公司的一套系统内部有多个节点的内网,要把数据上传至客户的办公网环境中的服务器。
- 客户办公网为我们提供了一台类似路由的设备,办公网无法让内网地址的数据包透传至服务器。
- 现场条件所限,只有有限数量的技术服务人员可以维持,研发在异地需要进行调试和部署工作。
1.1第一版处理
- 内网的一台工控机,安装了4G网卡
- 异地用户通过工控机与内网和更远端的路由外的办公网地址的服务器连接。
1.2问题
1.远程经常断线。断线后需要远程人员协助才能继续。
1.3分析
让服务人员打印工控机的路由表。route print
发现工控机有两个缺省路由。
2.1第二版处理
让技术服务在管理员模式下,运行如下指令:
route add 10.0.0.0 mask 255.0.0.0 192.168.76.1
route change 0.0.0.0 mask 0.0.0.0 192.168.76.1 metric 254
其中,76.1是内网路由地址,内网通过这个设备和办公网连接。
76.1路由器编制网络地址映射:
把内网的服务端口暴露在办公网。
1.2问题
- 实际运行后,改完路由表,远程立即断线。
- 技术服务重启4G网卡,恢复远程访问。
3.1第三版处理
3.1.1 编制如下.bat
#file: step1_update_route_table.bat
#10.0.0.0是客户办公网地址。
#76.1是通往办公网的路由。
route add 10.0.0.0 mask 255.0.0.0 192.168.76.1
#将办公网的default Metric人为调高,避免外网的数据包走这条通道
route change 0.0.0.0 mask 0.0.0.0 192.168.76.1 metric 254
#file: step2_reset_4g_nic.bat
#WLAN是4G网卡的名字
set "wifi_card=WLAN"
@echo off
timeout /t 2 > nul
echo 正在禁用无线网卡...
netsh interface set interface "%wifi_card%" admin=disable
timeout /t 5 > nul
echo 正在启用无线网卡...
netsh interface set interface "%wifi_card%" admin=enable
echo 无线网卡已成功重启。
#file: active_remote_4g_client_access_channel.bat
echo "\r\n\r\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>(v1.1.20231026)" >> C:\4G_SCRIPT\log.log
echo %time% >> C:\4G_SCRIPT\log.log
echo "enable 4g....current directory:" >> C:\4G_SCRIPT\log.log
echo %cd% >> C:\4G_SCRIPT\log.log
call E:\kde\4G_SCRIPT\step1_update_route_table.bat >> C:\4G_SCRIPT\log.log
call E:\kde\4G_SCRIPT\step2_reset_4g_nic.bat >> C:\4G_SCRIPT\log.log
echo "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<(done)\r\n" >> C:\4G_SCRIPT\log.log
3.1.2 添加计划任务
1.开机启动。
2.开机延时2分钟。
3.执行者SYSTEM
4.最高执行权限。
3.1.3 其他
1.如果开机脚本不执行
检查组策略:把脚本执行权限分配给SYSTEM
附录A 开机脚本执行权限的小知识:
>>local service 可以执行 .bat吗?
是的,Local Service 账户可以执行 .bat 文件。不过需要注意的是,Local Service 账户权限有限,如果 .bat 文件需要操作系统敏感的资源或需要管理员权限,则需要使用更高权限的账户来执行。
>>SYSTEM能执行.bat文件吗?
是的,SYSTEM 账户拥有最高权限,因此可以执行 .bat 文件,并且对操作系统资源具有完全访问权限。请注意,在使用 SYSTEM 账户执行 .bat 文件时要非常小心,确保文件来自可信的源,并且了解 .bat 文件中的命令和操作的含义,以免造成潜在的安全风险或系统损坏。
>>Local Service能改路由表,重启网卡吗?
Local Service 账户在 Windows 操作系统中具有有限的权限,不能直接改变路由表或重启网卡。这些操作通常需要更高的权限,比如管理员权限(Administrator)或系统权限(SYSTEM)。
如果你需要修改路由表或重启网卡,你可以使用管理员账户登录或以管理员权限运行相应的命令。通过管理员账户,你可以使用命令行工具如
route
或netsh
来修改路由表,或者使用netsh
或设备管理器来重启网卡。记住,在进行任何系统修改时,要谨慎操作,确保了解相关命令和操作的含义,并备份重要的系统设置。>>SYSTEM用户可以改路由表,重启网卡吗?
是的,SYSTEM 用户在 Windows 操作系统中具有最高权限,因此可以修改路由表和重启网卡。通过 SYSTEM 用户进行这些操作时,需要使用命令行工具如
route
或netsh
来修改路由表,或者使用netsh
或设备管理器来重启网卡。请注意,在使用 SYSTEM 用户执行这些操作时,要格外小心,确保只进行必要的更改并备份重要的系统设置。不正确的路由表修改或网卡重启可能导致网络连接中断或其他潜在的问题。建议在执行这些操作之前,确保对相关命令和操作有充分的了解,以及对系统做好备份。
附录B 路由表的自维护小知识
>>reset无线网卡后,原有的缺省路由表中的metric会重新计数,为什么?
当你重置无线网卡后,操作系统会重新初始化网络连接,包括重新获取 IP 地址、DNS 设置等。在这个过程中,缺省路由表也会被重置。
缺省路由表中的 metric 用于确定数据包在网络中传输时的优先级。较低的 metric 值意味着该路由具有更高的优先级。当你重置无线网卡后,系统会重新计算和分配 metric 值,以反映新的网络连接条件和配置。
原有的 metric 值不会被保留,因为重置无线网卡可能会导致网络连接重新建立,网络性能和设备状况也可能发生变化。因此,为了确保网络连接的稳定性和性能,系统会重新计算和分配 metric 值。
值得注意的是,具体的 metric 计算方式可能因操作系统版本和网络配置而异。网络路由和 metric 值的变化可以根据不同的网络连接和环境自动调整,以提供最佳的网络传输体验。