单位的生产环境在内网里,禁止接入互联网。说时间同步成为一个问题,为解决这个问题,最后还是决定用最少的钱自制了一台NTP服务器。哈哈~~~总体价格在1700内,这个价格是我作死的堆最好的!!反正不是自己钱!严格控制的话,在900块以内吧!先上几张图片看看成果。
1U机架式机箱+200w电源 + 风扇共计:360元
树莓派4B8G加两张64G卡共计:1200元
GPS模块加天线:100元
microHdmi转vga hdmi + 继电器 40元
自己挖的IO挡板孔,将就着把!!哈哈
顺便给NTP启个nginx+php给那些老人家看
在加上一个傻瓜式的批处理,做的省事,用的也省事!
好了看完了,现在开始记录整个搭建过程,手工的不写了,有热熔胶就很牛逼了!!主要记录从系统烧录到搭建的过程。
一、烧录树莓派系统
到官网https://www.raspberrypi.com/software/下载:Raspberry Pi Imager,傻瓜式烧录,烧录前还可以配置一些信息,如ssh、wifi、主机名等,我选择的是64位lite版,感觉这个没什么好写了!!烧好插卡开机,登录路由器,查看PI的IP地址,准备用ssh登录!
二、安装GPS模块及配置服务
这里不重复写了,详细请看 树莓派做一个获取GPS时间的NTP服务器
三、安装nginx和php
nginx是提供装逼的页面,php是为了再客户端浏览器上可以查看到服务器的时间,顺便设了一下nginx的https,因为我单位的内网我都用了https,懒得chrome提示不安全,看到一个叉叉不舒服。内网跑https当然离不开证书,参考 用mkcert生成SSL,内网完美起跑https
1、安装nginx
sudo apt-get install nginx
先安装,等下再跟php一起配置
2、安装php
sudo apt-get install php7.4 php7.4-curl php7.4-fpm php7.4-xml php7.4-mbstring php7.4-mysql php7.4-gd
习惯了这一串扩展,也为日后做准备
3、配置nginx,开启php和https
sudo nano /etc/nginx/sites-available/default
在大圆圈位置添加:
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /var/www/server.pem;
ssl_certificate_key /var/www/key.pem;
添加index.php
默认文档
去掉下面四个小红点位置的“#”,保存退出即可。
跟着就把做好的装逼页面上传上去就行了,装逼页面我就不提供了,大家自行发挥!
四、网络设置
好了,需要互联网的安装配置已经完成,接下来就要关闭wifi,配置网卡eth0的固定ip,然后在捅网线在内网完成剩下的工作。
1、设置网卡固定IP地址
sudo nano /etc/dhcpcd.conf
在最下面添加:(根据自己实际修改)
interface eth0
static ip_address=121.248.54.54/24
static routers=121.248.54.55
static domain_name_servers=121.248.0.1 8.8.8.8
保存退出。
2、关闭wifi
sudo ifconfig wlan0 down
或
sudo ip link set wlan0 down
以上两个命令是关闭用的,系统重启后还是会自动连接,奶奶的,差点被通报考核!!单位网络管得严,并且我就是管网络的,知法犯法罪加一等!!
在烧录系统的时候,我们配置了wifi,系统已经记录了,好吧!!既然这样,那我们就直接修改wifi的配置文件吧!!
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
进去后,你乱改一下wifi的ssid或者密码就好了,只要不自动连接就行。
五、备份树莓派的TF卡
由于用于生产环境,备份肯定是要做的,现在要做的就是把树莓派的TF卡,完全备份到另一张TF卡上,然后把备份卡也放在机箱里,有问题,直接拔出插入即可。
把新卡插入读卡器,然后对准树莓派的usb口直接捅入,输入以下命令查看刚刚捅入的盘符,一般都是sda,注意看看容量
sudo fdisk -l
然后输入以下命令,开始copy了~哈哈!!
sudo dd bs=4M if=/dev/mmcblk0 of=/dev/sda
回车后你会发现,系统死机一样的卡在那里!!等我64G的卡,等待时间在15分钟以上,具体多久我也不清楚,我自己等睡着了!耐心的等
好了好了,到这里结束了,服务器也上线了!!哈哈~~~
六、最后的懒人批处理
@echo off
mode con cols=91 lines=24 &color 9f
title XXXXXXXNTP时间同步配置程序
cls
rem ************************获取管理员权限************************
:admin
openfiles >nul 2>nul ||(
echo CreateObject^("Shell.Application"^).ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"&"%temp%\getadmin.vbs" >nul 2>&1
goto:eof
)
del /f /q "%temp%\getadmin.vbs" >nul 2>nul
:main
call :cmdinfo
goto:eof
rem ************************程序主页************************
:banner
cls
echo ==========================================================================================
echo 你的banner文字
echo ==========================================================================================
goto:eof
rem ************************程序主页************************
:cmdinfo
call :banner
echo #程序说明:
echo 1、替换系统自带的互联网NTP服务器列表
echo 2、添加自建的NTP服务器地址(采用GPS/北斗卫星授时)
echo 3、自动设置同步间隔时间(每6小时同步一次)
echo 4、该程序适用于winxp、win7、win10及win11系统
echo.
echo #常见问题:
echo 1、如果在“日期和时间”里提示同步出错,请多试几次,属于正常现象。
echo 2、理论上支持winxp,但对于精简系统不一定支持。
echo.
echo ■使用过程中如遇问题,请联系XXX 电话:XXXXXXXXXX
echo ==========================================================================================
echo.
echo 【按任意键返回菜单】
pause >nul
goto:menu
goto:eof
rem ************************进度条************************
:loadbar
set a=^set /p=■^<nul^&ping/n 0 127.1^>nul^&
set/p= <nul&%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%
echo 100%%
goto:eof
rem ************************程序菜单************************
:menu
call :banner
echo #程序菜单:
echo 【1】一键设置并同步
echo 【2】立即同步系统时间
echo 【3】打开“日期和时间”
echo 【4】查看程序说明
echo 【0】退出程序
echo.
set /p choice=请输入菜单序号后,然后按回车:
if %choice%==1 goto onekey
if %choice%==2 goto synctime
if %choice%==3 goto datetime
if %choice%==4 goto cmdinfo
if %choice%==0 goto exit
if not %choice%=="" goto error
goto:eof
rem ************************一键设置************************
:onekey
SET ntpserver=10.175.11.7
call :banner
echo.
echo # 正在替换系统默认NTP服务器地址......
for /l %%i in (0,1,10) do (
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v %%i /f >nul 2>nul
)
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 0 /t REG_SZ /d %ntpserver% /f >nul 2>nul
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /ve /t REG_SZ /d 0 /f >nul 2>nul
call :loadbar
echo.
echo #正在设置NTP服务器地址和同步间隔时间......
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters /v NtpServer /t REG_SZ /d %ntpserver%,0x1 /f >nul 2>nul
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d 21600 /f >nul 2>nul
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollTimeRemaining /t REG_MULTI_SZ /d %ntpserver%,7ec0c67 /f >nul 2>nul
call :loadbar
echo.
echo #正在同步系统时间......
w32tm /resync >nul 2>nul
call :loadbar
echo.
echo.
echo # 恭喜您,一键设置并同步完毕!ヾ(@^▽^@)ノ
echo.
echo 【按任意键返回菜单】
pause >nul
goto menu
goto:eof
rem ************************同步时间************************
:synctime
call :banner
echo.
echo # 正在同步系统时间......
w32tm /resync >nul 2>nul
call :loadbar
echo.
echo #同步完成...ヾ(@^▽^@)ノ
echo.
echo 【按任意键返回菜单】
pause >nul
goto menu
goto:eof
rem ************************打开日期和时间************************
:datetime
start control timedate.cpl
goto menu
goto:eof
rem ************************错误输入************************
:error
echo.
echo 你选择的菜单序号无效,3秒后重试...
ping /n 3 127.1 >nul
goto menu
好了,下班打球!!!886