首页
碎碎念
东邻西舍
本站信息
前来吐槽
统计
Search
1
openwrt系统上安装第三方插件
26,757 阅读
2
ubuntu下zerotier的基本使用教程
13,578 阅读
3
给小米R3G更换系统:从padavan刷成openwrt
12,848 阅读
4
openwrt使用第一步:设置上网拨号
10,741 阅读
5
openwrt无线中继功能:实现不插网线就能上网
9,517 阅读
学习点滴
Java
Web前端
Linux
踩坑实录
折腾搞机
关于建站
只言片语
登录
Search
标签搜索
Linux
建站
Java
踩坑实录
Ubuntu
MySQL
折腾搞机
HTML
CSS
MyBatis
Spring
SQL
Nginx
路由器
树莓派
OpenWrt
Maven
Git
Win10
只言片语
知识分子没文化
累计撰写
83
篇文章
累计收到
152
条评论
首页
栏目
学习点滴
Java
Web前端
Linux
踩坑实录
折腾搞机
关于建站
只言片语
页面
碎碎念
东邻西舍
本站信息
前来吐槽
统计
搜索到
20
篇与
的结果
2022-02-12
CS1.6 服务器安装插件及优化教程
目录: 一、安装插件破解服务器正版限制 1.1、安装 Metamod 1.2、安装 Rehlds 1.3、安装 reunion 二、通过安装插件增加游戏功能 ——待完成 安装 AMX Mod X 三、服务器管理 ——待完成 3.1、OP管理 3.2、正版添加人机 环境说明: 系统:Ubuntu20.04 此篇承接上篇:Ubuntu搭设CS1.6游戏服务器 - Roookie博客 | 记录 · 收纳 · 分享 (wlplove.com) 一、安装插件破解服务器正版限制 破解服务器的盗版限制会用到第三方插件,因此需要安装一系列框架。注意,以下的操作都是基于服务器程序文件。 1.1、安装 Metamod Metamod 是一个位于半条命引擎和半条命游戏模组之间的 plugin/DLL 管理器,允许动态加载/卸载类似模组的DLL插件,以向HL服务器或游戏模组添加功能。原 Metamod 项目在 2013 年更新了 V1.20 版本之后就断更了,目前已经过于陈旧,所以不再使用官方版本的 Metamod 框架。而是使用其他开源的非官方版本,比如 Metamod-P 与 Metamod-r。其中,Metamod-r 又算是基于 Metamod-P 改进而来,因此我们选择 Metamod-r。 安装文档:安装 · theAsmodai/metamod-r Wiki (github.com) Metamod-r V1.3.0 版本下载链接:https://github.com/theAsmodai/metamod-r/releases/download/1.3.0.86/metamod_1.3.0.86.zip 安装步骤很简单: 第一步:解压压缩包,将其中的 “addons” 文件夹上传到服务器端文件根目录的 “cstrike” 文件夹下面。 第二步:编辑 “cstrike” 文件夹下的 liblist.gam 文件,找到文件中的这一行: # Linux gamedll_linux "dlls/cs.so" # Windows gamedll "dlls\mp.dll" 修改为: # Linux gamedll_linux "addons/metamod/metamod_i386.so" # Windows gamedll "addons\metamod\metamod.dll" 这样就安装完了 Metamod-r,但是由于 Metamod-r 与原始 HLDS 不兼容。所以还得安装 ReHLDS。 1.2、安装 Rehlds ReHLDS 是原始 HLDS(Half-Life Dedicated Server,即半条命专用服务器) 逆向工程的结果,在开发中发现并修复了 HLDS 的许多缺陷和潜在错误。ReHLDS 项目提供了更比官方稳定的半条命专用服务器,并扩展了模组和插件的 API,并且也进行了一定程度的性能优化。 下载链接: 需要科学:https://github.com/dreamstalker/rehlds/releases/download/3.11.0.767/rehlds-bin-3.11.0.767.zip 免翻墙:https://gh.ddlc.top/https://github.com/dreamstalker/rehlds/releases/download/3.13.0.788/rehlds-bin-3.13.0.788.zip 安装文档:dreamstalker/rehlds: Reverse-engineered HLDS (github.com) 安装步骤也很简单,解压压缩包,用 bin/linux32 中的 “engine_i486.so” 文件替换掉根目录下的同名文件。此时尝试启动服务器程序,如果有这样的提示那就说明安装成功: [][] 1.3、安装 reunion Reunion 是 ReHLDS 的 dproto 项目的延续。它是一个用于 Metamod 框架的插件,其作用是允许不同协议(47 和 48 no-steam)的 CS1.6 游戏客户端加入服务器。 下载链接: 需要科学:https://raw.githubusercontent.com/x7s/reunion/master/reunion_0.1.92.zip 免翻墙:https://gh.h233.eu.org/https://github.com/dreamstalker/rehlds/releases/download/3.13.0.788/rehlds-bin-3.13.0.788.zip 解压压缩包,要用到的是 “reunion.cfg” 与 “bin” 文件夹下的文件。 第一步:在 “cstrike/addons” 文件夹下创建一个文件夹 “reunion”, Linux 端上传 bin/Linux 文件夹下的文件(是文件而不是 Linux 文件夹)到新建的这个文件夹, Windows 端同理,上传 bin/Windows 文件夹下的文件。 第二步:编辑位于 “addons/metamod” 下的 metamod 插件配置文件 plugins.ini(没有就创建一个),向其中添加如下配置: # Linux linux addons/reunion/reunion_mm_i386.so # Windows: win32 addons\reunion\reunion_mm.dll 第三步:复制 “reunion.cfg” 文件到服务器文件根目录。 安装完成后,重启服务器程序,在控制台输入 meta list 命令回车,可以查看当前运行的插件列表: >> meta list Currently loaded plugins: description stat pend file vers src load unlod [ 1] Reunion RUN - reunion_mm_i386. v0.1.0.9 ini Start Never 1 plugins, 1 running 结果显示 reunion 插件当前为运行状态,即说明安装成功。现在盗版 CS1.6 客户端就能加入服务器了。 二、通过安装插件增加游戏功能 ——待完成 Meatmod 插件列表:Metamod Plugins 安装 AMX Mod X AMX Mod X 是一个Metamod插件。AMX Mod X是半条命1的Metamod插件。它为游戏引擎及其模组提供了全面的脚本。脚本可以截获网络消息、日志事件、命令、客户端命令、设置 cvar、修改实体等。 下载链接:AMX Mod X - Half-Life Scripting for Pros! 安装文档:手动安装 AMX Mod X - AlliedModders Wiki (alliedmods.net) 第一步:解压压缩包,将 “amxmodx” 文件夹上传到 addons 文件夹下。 第二步:编辑位于 “addons/metamod” 下的插件配置文件 plugins.ini(前面应该已经创建了),向其中添加如下配置: linux addons/amxmodx/dlls/amxmodx_mm_i386.so 同样的,安装完成后,重启服务,在控制台输入 meta list 命令可查看 AMX Mod X 是否在运行。 alliedmodders/amxmodx: AMX Mod X - Half-Life 1 Scripting and Administration (github.com) AMX Mod X之系列说明(简介和安装) - 百度文库 (baidu.com) AMX Mod X之系列说明 - 百度文库 (baidu.com) AMXX命令大全 - 百度文库 (baidu.com) [课程]AMX Mod X之系列说明(简介和安装) - 豆丁网 (docin.com) AMX Mod X之系列说明_word文档在线阅读与下载_文档网 (wendangwang.com) 三、服务器管理 ——待完成 服务器相关配置文件:位于 cs1.6/cstrike 目录下,文件名为 server.cfg, 3.1、OP管理 3.2、正版添加人机 CS1.6服务器架设及终极优化教程 牛头人脚本网 (plooy.cn) linux系统架设cs1.6服务器图文教程(兼容47/48协议的non-steam) - HLDS 技术讨论区 - 点通论坛 - Powered by Discuz! (dt-club.net) CS1.6比较完美的server.cfg_uvex888_51CTO博客 设置你的显卡提高CS里的FPS 牛头人脚本网 (plooy.cn) 游戏常用参数 | 反恐精英CS1.6最全最多最广教程 (fps99.com) 参考资料: Debian10搭建CS1.6服务器-荒岛 (lala.im)(这篇博客可能需要科学上网才能看到) cs1.6服务器搭建 2021-11-30 - 王冰冰 - 博客园 (cnblogs.com)
2022年02月12日
4,877 阅读
1 评论
1 点赞
2022-01-25
Joe主题添加文章侧边栏目录
目录: 一、安装插件 二、插件使用 2.1、启用插件 2.2、CSS文件 2.3、JS文件 2.4、修改 post.php 文件 环境说明: Typecho:正式版 V1.1-17.10.30-release Joe:V7.3.6 一、安装插件 Github 仓库链接:plugins/MenuTree at master · typecho-fans/plugins · GitHub 下载链接:https://github.com/typecho-fans/plugins/releases/download/plugins-M_to_R/MenuTree.zip 二、插件使用 2.1、启用插件 将下载好的插件放在 usr/plugins/ 目录中,确保文件夹名为 MenuTree; 激活插件,设置内可勾选“嵌入模式”与“独立模式”: “嵌入模式”勾选时,编辑文章用按钮插入或手写 < !-- index-menu -->(插入按钮功能貌似是无效的,还有注意,别照抄这个标签,我在标签的 ! 前面加了一个空格,不然它就会被解析成目录了) 标签发布即可显示目录树; “独立模式”勾选时,修改模板文件如 post.php 中写入 <?php $this->treeMenu(); ?> 也可显示。 需要注意的是,在文章中渲染出来的目录默认是没有任何样式的,所以需要我们自定义样式。 为了使目录显示为侧边栏,并且样式与 Joe 本来的侧边栏风格保持一致,这里使用“独立模式”,并用相应的 CSS 与 JS 文件来定义其样式。 2.2、CSS文件 将以下 CSS 代码保存至文件中,文件名为 menutree.css,文件放到主题目录的 assets/css 文件夹下。 .menutree { position:sticky; top:60px; width:15%; margin:15px 15px 15px 0px; /* 溢出内容添加滚动条 */ overflow-y:auto; overflow-x:auto; background: var(--background); } /** 父元素<ul>与其中的子元素<li> **/ .index-menu-item { margin: 10px 0px; } .index-menu-list { margin: 5px 0px 5px 10px; } /** 所有<a>标签 **/ .index-menu-link{ color: var(--main); transition:all 0.2s ease-in-out 0s; padding:5px 0px; } .index-menu-link:hover { color: var(--theme); text-shadow: var(--text-shadow); font-weight:500; background-color:#efefef; } /* 锚点跳转定位 */ .menu-target-fix { display: block; position: relative; /* 偏移量 */ top:-100px; } /* 在宽度小于1000px的设备上隐藏短划线,以使目录的标题正常显示 */ @media screen and (max-width:1000px) { .joe_aside__item-title > .line { display:none; } } /* 在宽度小于800px的设备上隐藏目录侧边栏 */ @media screen and (max-width:800px) { .menutree{ display:none; } } 2.3、JS文件 将以下 JS 代码保存至文件中,文件名为 menutree.js,文件放到主题目录的 assets/js 文件夹下。 /* 获取渲染好的目录的高度 */ menuHeight = document.getElementsByClassName("index-menu")[0].offsetHeight; /* 获取容器高度 */ containHeight = document.getElementsByClassName("joe_aside__item-contain")[0].offsetHeight; /* 获取容器 title 的高度 */ titleHeight = document.getElementsByClassName("joe_aside__item-title")[0].offsetHeight; /* 获取整个目录侧边栏对象 */ aside = document.getElementsByClassName("menutree")[0]; // 定义一个函数来修改目录的显示长度,从而使侧边栏能自适应目录的高度,避免出现大片空白部分 function changeMenuHeight(){ /* 调整容器高度 */ aside.style.height = titleHeight + containHeight + "px"; } // 如果目录的高度小于500px,调用函数将目录修改为实际高度,反之则将侧边栏的高度固定为500px if(menuHeight < 500){ changeMenuHeight(); } else { aside.style.height = "500px"; } 2.4、修改 post.php 文件 建议修改之前先备份 post.php 文件,如果修改失败可以随时还原回来。 总共需要修改两个地方: 导入 CSS 文件 在文件前面的导入 CSS 文件: <!-- 导入目录的css文件 --> <link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/menutree.css'); ?>"> 添加目录代码 然后在 <div class="joe_container"> 与 div class="joe_main joe_post"> 之间添加如下代码: <!-- 文章目录代码 --> <section class="joe_aside__item menutree"> <div class="joe_aside__item-title"> <svg t="1642997936013" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2169" width="128" height="128"><path d="M838.3 895.9H197.9c-53.9 0-97.7-43.8-97.7-97.7V236.7c0-53.9 43.8-97.7 97.7-97.7h640.3c53.9 0 97.7 43.8 97.7 97.7v561.4c0.1 53.9-43.7 97.8-97.6 97.8zM197.9 203.8c-18.1 0-32.9 14.8-32.9 32.9v561.4c0 18.1 14.8 32.9 32.9 32.9h640.3c18.1 0 32.9-14.8 32.9-32.9V236.7c0-18.1-14.8-32.9-32.9-32.9H197.9z" fill="#666666" p-id="2170"></path><path d="M695.1 455.2H341.2c-17.9 0-32.4-14.5-32.4-32.4s14.5-32.4 32.4-32.4h353.9c17.9 0 32.4 14.5 32.4 32.4s-14.5 32.4-32.4 32.4zM695.1 578.2H341.2c-17.9 0-32.4-14.5-32.4-32.4s14.5-32.4 32.4-32.4h353.9c17.9 0 32.4 14.5 32.4 32.4s-14.5 32.4-32.4 32.4zM695.1 701.2H341.2c-17.9 0-32.4-14.5-32.4-32.4s14.5-32.4 32.4-32.4h353.9c17.9 0 32.4 14.5 32.4 32.4s-14.5 32.4-32.4 32.4zM379.1 281.1c-17.9 0-32.4-14.5-32.4-32.4V115.4c0-17.9 14.5-32.4 32.4-32.4s32.4 14.5 32.4 32.4v133.2c0 17.9-14.5 32.5-32.4 32.5zM657.1 281.1c-17.9 0-32.4-14.5-32.4-32.4V115.4c0-17.9 14.5-32.4 32.4-32.4s32.4 14.5 32.4 32.4v133.2c0 17.9-14.5 32.5-32.4 32.5z" fill="#666666" p-id="2171"></path></svg> <span class="text">目录</span> <span class="line"></span> </div> <div class="joe_aside__item-contain"> <?php $this->treeMenu(); ?> </div> </section> <!-- 导入的js文件,必须在这里导入,否则不生效 --> <script src="<?php $this->options->themeUrl('assets/js/menutree.js'); ?>"></script> 保存,刷新文章页面即可看到左边的侧边栏目录。 以上的样式代码经过一定时间的使用,可以完美契合 Joe 主题,并且加入了部分响应式布局的代码,在移动设备上目录会自动隐藏,不会影响内容阅读。当然,如果是非 Joe 主题,样式可能需要重新设计。
2022年01月25日
2,373 阅读
23 评论
14 点赞
2022-01-16
Ubuntu搭设CS1.6游戏服务器
目录: 前言 一、创建系统新用户 二、SteamCMD 2.1、安装 2.2、进入 SteamCMD 控制台 三、下载游戏服务器文件 3.1、设置下载位置 3.2、下载文件 四、启动服务器程序 4.1、启动 4.2、报错信息 4.2.1、报错信息之一 4.2.2、报错信息之二 4.2.3、报错信息之三 4.3、开放端口 五、连接服务器 环境说明: 服务器:阿里云轻量应用服务器 系统:Ubuntu 20.04 前言 CS,全称 Counter-Strike,起初是1999 年由民间团队为游戏《半条命(Half-Life)》的开发的游戏模组,由于后来深受玩家的喜爱,2000年由 Valve 购得版权发行成为独立游戏。后续出过《反恐精英:零点行动》《反恐精英:起源》和《反恐精英:全球攻势》等续作。CS 1.6 作为这个系列的一代经典以及童年回忆,其在整个游戏史上的地位怎样美言都不过分。 最近心血来潮,想搭建一个 CS1.6 服务器来玩一玩,查了不少资料,大概有了点头绪。 CS1.6 有一个专门的服务器程序,叫 HLDS(Half-Life Dedicated Server),即半条命专用服务器,是 Valve 官方(也就是俗称的“V 社”)提供的 CS1.6 服务器端程序。 在下载 CS1.6 的服务器程序时,需要用到 SteamCMD,即 Steam 控制台客户端,这是 Valve 官方开发的一个命令行版本的 Steam 客户端,它的主要用途就是安装和更新 Valve 开发的游戏的专用服务器程序文件。 一、创建系统新用户 安装 SteamCMD 之前需要先创建一个用户。 因为按照官方文档的建议,最好创建一个新用户来专门运行 SteamCMD,使用 root 用户运行 SteamCMD 时会有安全风险。当然理论上来说,如果当前用户是非 root 用户,那么可以不创建新用户,使用当前用户直接操作也是一样的。 相关参考资料:Linux 用户和用户组管理 | 菜鸟教程 (runoob.com) 注意:这一步的操作需要 root 权限。 创建一个名为 steam 的新用户: #-m:自动创建用户目录 #-s:指定用户的shell解释器,这里设为bash useradd -m -s /bin/bash steam 然后设置用户密码: passwd steam 到这一步之后,执行后面的 apt 命令时,可能会出现报错: steam is not in the sudoers file. This incident will be reported 或者: steam 不在 sudoers 文件中,此事将被报告 解决方法有两种(需要有 root 权限): 按照报错提示,将 steam 用户添加到 sudoers 文件中,编辑 sudoers 文件: sudo nano /etc/sudoers 仿照root用户的格式,在如下位置添加 steam 这一行内容(请忽略 steam 前的“+”,这只是为了方便说明这一行内容是新添加的): # User privilege specification root ALL=(ALL:ALL) ALL + steam ALL=(ALL:ALL) ALL ctrl + o 保存,ctrl + x 退出。 将 steam 用户添加到 sudo 用户组(在 root 用户下操作): adduser steam sudo 最后切换到新建的 steam 用户: su steam 二、SteamCMD SteamCMD 的官方文档:Main Page:zh-cn - Valve Developer Community (valvesoftware.com) 下面的这部分参考自官方文档,如果这个过程中有疑问的话也可以读一读官方文档。另外,值得一提的是,官方文档中的大部分资料都提供了中文版本,这点给个大大的好评。 2.1、安装 安装方法:Steam 控制台客户端 - Valve Developer Community (valvesoftware.com) 在官方文档中提供了两种方式来安装 SteamCMD,一种是安装来自软件仓库的软件包,另一种是手动下载压缩包再解压安装。 为了方便,直接采用第一种,用 apt 命令安装 SteamCMD: sudo apt update && sudo apt install software-properties-common sudo add-apt-repository multiverse sudo dpkg --add-architecture i386 # 安装相关依赖 sudo apt install lib32gcc1 libsdl2-2.0-0:i386 # 安装 SteanCMD sudo apt install steamcmd 安装过程中会出现如下界面,按 Tab 键选择到 OK 再按回车确认 选择“I AGREE”,回车确认,等候等待安装完成。 2.2、进入 SteamCMD 控制台 输入以下命令进入 SteamCMD 控制台: steamcmd 如果是手动安装的 SteamCMD,那么还需要在当前目录下生成一个软链接: ln -s /usr/games/steamcmd steamcmd 否则使用 steamcmd 命令时会提示找不到命令。如果直接使用 apt 命令安装的话则不用生成软连接。 第一次进入时,会更新文件,等待更新完成即可进入 SteamCMD 控制台: 更新完成后会在当前目录下生成一个隐藏的 .steam 文件夹,使用 ls -al 命令查看。 进入到 SteamCMD 控制台之后,如果出现警告信息: Warning: failed to init SDL thread priority manager: SDL not found 这是由于缺少依赖,输入 quit 退出 SteamCMD 控制台,再执行以下命令安装依赖: sudo apt install libsdl2-2.0-0:i386 当正常进入 SteamCMD 控制台后,没有报错信息,就可以开始下载游戏文件了。 三、下载游戏服务器文件 3.1、设置下载位置 下载之前,先设置文件的下载位置: # 用绝对路径: force_install_dir /home/steam/cs1.6 3.2、下载文件 下载游戏服务器文件需要登录,我们可以选择匿名登录: login anonymous 这里就有一个问题,我先匿名登录了之后再设置下载目录,然后就出现了报错,提示要在登录之前设置下载位置: 而在官方文档的这个位置:Steam 控制台客户端 - 下载一个应用,这段描述意思是可以先登录再设置下载目录的,所以我也不清楚这是什么情况,按实际情况来就好吧。 以上准备完成之后就可以下载 CS1.6 游戏服务器文件了: app_set_config 90 mod cstrike app_update 90 validate 需要注意的是,由于 BUG,中途可能下载中断,再次运行 app_update 90 validate 命令会继续下载。多试几次等待出现 “Success” 字样: 服务端文件下载完成之后,输入 quit 退出 SteamCMD 控制台。 我在下载完之后,找下载好的文件时踩了不少坑。下了好几遍之后,最后我发现规律如下: 如果不设置下载目录,则默认会下载到当前目录的 .steam 隐藏文件夹下,具体路径为:.steam/steamapps/common/Half-Life 。 如果将下载目录设置为了绝对路径,那么按照绝对路径就能找到; 如果用了相对路径,则是在隐藏的 .steam 路径下 ,具体路径为 ./steam/steamcmd/; 所以,为了比较容易找到之后下载下来的游戏服务器文件,我的建议是在下载之前将路径设置成绝对路径。 四、启动服务器程序 4.1、启动 启动之前,将目录定位到服务器程序文件的根目录下,先给启动程序赋予执行权限: sudo chmod a+x hlds_run hlds_linux hltv 启动命令为: # 启动 cs1.6 服务器,服务器端口为 27015,地图为“de_dust2”,最大容纳人数为 16 ./hlds_run -game cstrike +port 27015 +map de_dust2 +maxplayers 16 启动命令的格式为: ./hlds_run -game <game> +maxplayers X +map <map> +port <port> 这段启动命令看似复杂,其实并不,简单分析一下你就明白了: ./hlds_run 是根目录下的服务器启动程序,后面一大段是启动参数,几个基本的启动参数含义如下: 参数 含义 -game 游戏名称 +port 游戏服务器启动端口 +map 设置地图 +maxplayers 地图最大容纳人数(2~32) 更多的启动参数可以参考这份官方文档:Command Line Options - Valve Developer Community (valvesoftware.com) 4.2、报错信息 这里我碰到了问题,服务虽然启动起来了,但是有报错信息。不过经过后来的尝试,游戏客户端能连接到服务器,应该是不影响服务基本运行。 但是为了保险起见,我觉得还是有必要消除这些报错信息,尝试着用我的渣渣英语水平分析了一下控制台输出中的报错信息,提取出来一部分可能有用的信息,再加上一些网上其他大佬的资料,差不多就能部分解决这些报错了。 4.2.1、报错信息之一 [S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed. 这个看提示像是 SteamAPI_Init() 与 SteamAPI_IsSteamRunning() 这两个方法执行失败,找了些资料之后还是无法下手解决,就念在它不影响运行的份上放过它吧。 4.2.2、报错信息之二 dlopen failed trying to load: /home/steam/.steam/sdk32/steamclient.so with error: /home/steam/.steam/sdk32/steamclient.so: cannot open shared object file: No such file or directory 结合这篇博客 Debian10搭建CS1.6服务器-Rain's Blog (im.ci) 的内容,基本可以确定是这个博主所说的游戏服务器文件缺失的问题,缺失的文件是 .steam/sdk32/steamclient.so,我们可以手动把 .steam/steamcmd/linux32 目录下的 .steamclient.so 文件复制过来一份: # 整个操作还是在 .steam 目录下: mkdir /home/steam/.steam/sdk32 cp /home/steam/.steam/steamcmd/linux32/steamclient.so /home/steam/.steam/sdk32 4.2.3、报错信息之三 couldn't exec listip.cfg couldn't exec banned.cfg 原因在点通论坛的这篇帖子linux系统架设cs1.6服务器图文教程(兼容47/48协议的non-steam)第二部分中提到了,是因为服务器文件根目录的 cstrike 文件夹下缺少了 listip.cfg 和 banned.cfg 这两个文件,listip.cfg 是存放踢出的玩家 IP,banned.cfg 存放的是被管理员封禁的玩家 IP。 所以消除警告信息的办法就是创建这两个文件(空文件即可): # 进入 cstrike 文件夹下 cd ~/cs1.6/cstrike/ # 创建文件并且给775权限 touch listip.cfg banned.cfg && chmod 775 listip.cfg banned.cfg 以上步骤做完之后,ctrl + c 取消刚才的运行,再重新启动一次服务,这样就没有报错信息了。 4.3、开放端口 这是很重要的一步,但也很容易被忽略,不管搭建出怎样牛逼的服务,端口不开放那都是白搭。 开放端口具体步骤就不再赘述了,各个服务器厂商的操作都是大同小异的,无非就是在服务器控制台找“防火墙”之类的字眼,进去之后添加端口即可。 按照官方文档:Half-Life Dedicated Server - Valve Developer Community (valvesoftware.com),完整的游戏服务总共需要四个端口: 端口号 网络类型 用途说明 27015 UDP 游戏传输、pings 27015 TCP RCON协议(RCON - 百度百科) 27020 UDP HLTV 传输(HLTV - 百度百科) 26900 UDP VAC 服务 如果仅仅维持基本的游戏服务及远程管理,只需要添加如下两个端口即可: 到这里,没什么问题的话,服务器就已经运行起来,可以被我们的游戏连接了。 五、连接服务器 现在正版 CS1.6 客户端就可以连接这个服务器了。在首页用~调出控制台,输入命令 connect ip地址/域名,回车即可连接。 或者也可以在游戏中搜索 IP 地址或域名: 可以看到,已经搜索出来了刚建的服务器: 双击可以直接加入。 这是已连接到的样子: 至此,我们用官方工具成功搭建出了一个 CS1.6 的游戏服务器。目前这个服务器还只能允许正版 CS1.6 玩家游玩,下一篇,我们将会通过安装插件来破解这个限制,并且对这个游戏服务器做一些优化。 下一篇链接:CS1.6 服务器安装插件及优化教程 - Roookie博客 | 记录 · 收纳 · 分享 (wlplove.com) 参考资料: Debian10搭建CS1.6服务器-荒岛 (lala.im)(这篇博客可能需要科学上网才能看到) cs1.6服务器搭建 2021-11-30 - 王冰冰 - 博客园 (cnblogs.com) linux系统架设cs1.6服务器图文教程(兼容47/48协议的non-steam) - HLDS 技术讨论区 - 点通论坛(dt-club.net)
2022年01月16日
4,911 阅读
13 评论
0 点赞
2021-12-26
网站统计后台的垃圾广告及屏蔽措施
目录: 一、后台垃圾广告是什么 二、预防措施 1. 排除访客 IP 2. 加密统计代码 一、后台垃圾广告是什么 我的博客接入了百度统计与 CNZZ 平台来进行访客统计,大部分时候在网站统计平台上查看访客数据时,会碰到这样的记录: 其实百度统计上还比较少,主要集中在 CNZZ 上,这些记录通常是用各种各样的灰色词来作为关键词在搜索引擎上进行搜索而产生。后来才知道,这是使用垃圾广告群发软件故意发广告的。 关于其原理,我用部分转载的内容来进行说明(原文链接附在文末): 我们知道现有大多的统计,都是让我们在自己网站上放一段统计代码,然后对网站流量进行统计,例如百度统计,在安装百度统计工具到网站的时候,我们会要求网站必须嵌入一段类似下面的JS代码: var _hmt = _hmt || []; (function() { var hm = document.(“script”); hm.src = “https://hm.baidu.com/hm.js?89764654ds8w2082cffb3b7e1f2d1238f”; var s = document.getElementsByTagName(“script”)[0]; s.parentNode.insertBefore(hm, s); })(); 这段统计代码中,每一个网站都会有一个32位字符串就是每个站点特有的统计ID。 89764654ds8w2082cffb3b7e1f2d1238f 群发软件会先拿到你网站的ID,这个很简单,通过原代码就可以查到这个统计ID,群发软件会使用采集软件大量采集这些统计ID; 拿到ID后,将你的域名与ID对应放到群发软件里,设置好关键词和推广网址就可以群发垃圾广告了。 二、预防措施 1. 排除访客 IP 我刚开始一直都是使用这种方式。 CNZZ 直接在左侧菜单找到“排除访客 IP”: 百度统计找到“管理” -> “统计规则设置” -> “过滤规则设置” -> “排除 IP 地址”: 这是最简单粗暴的办法,直接将刷垃圾广告的 IP 地址加入排除访客 IP 的名单中,从访客列表中直接隐藏,从而眼不见心不烦。但是,刷广告的一般都是使用多个 IP 地址,屏蔽了一个 IP 地址之后他们还能使用其它的 IP 地址继续作案,所以这种方式治标不治本。 因此更推荐使用的是下面这种方式。 2. 加密统计代码 这是从源头来预防后台垃圾广告的方法,就是将站点统计代码进行一次 JS 混淆,从而达到隐藏站点统计 ID 的目的。 比如,从 CNZZ 或者百度统计上获取到统计代码之后,使用 JS 加密工具: 以后使用混淆过的统计代码,可有效预防统计后台的垃圾广告。 需要注意的是,在刚开始使用了加密了的统计代码之后,可能依然会有部分刷广告的记录(至少我的情况是这样),将这些 IP 加入排除访客 IP 名单里,之后就会是一个干干净净的统计后台了。 部分内容参考自: 如何屏蔽网站统计后台的垃圾广告 - 学做网站论坛
2021年12月26日
1,821 阅读
0 评论
0 点赞
2021-12-11
常用的一些Nginx配置
目录: 1、监听端口 2、日志功能 2.1、访问日志 2.2、错误日志 3、配置域名 4、静态资源 5、重定向 5.1、网站根目录重定向 5.2、特定目录重定向 6、反向代理 7、负载均衡 8、SSL配置 1、监听端口 server { # 用于HTTP协议 listen 80; # 用于HTTPS协议 listen 443 ssl; # 用于HTTP2 listen 443 ssl http2; # 使用IPv6监听80端口 listen [::]:80; # 仅使用IPv6 listen [::]:80 ipv6only=on; } 2、日志功能 Nginx的日志分为两种:access_log (访问日志)和 error_log(错误日志)。 对于日志的格式,Nginx提供了一种名为 combine 的格式,如果没有明确指定日志格式则默认使用该格式。 如果不使用 combine 格式的话,可以使用 log_format 指令来自定义,其具体用法参考Nginx日志配置详解或者官方文档:HttpLog模块-Nginx中文文档。 2.1、访问日志 访问日志主要记录客户端的请求,客户端向Nginx服务器发起的每一次请求都记录在这里。客户端IP,浏览器信息,referer,请求处理时间,请求URL等都可以在访问日志中得到。 server { # 访问日志文件的写入位置,相对或绝对路径 access_log /path/to/file.log; # 选择访问日志功能的开启(on)或关闭(off) access_log on; } 2.2、错误日志 错误日志记录服务器和请求处理过程中的错误信息。 server{ # 错误日志的写入位置 error_log logs/error.log error; # 错误日志的级别,分为 debug, info, notice, warn, error, crit, alert,emerg,其取值范围是按紧急程度从低到高排列 # 只有日志的错误级别等于或高于level指定的值才会写入错误日志中。默认值是error error_log file [level]; } 3、配置域名 server { # 监听domain.com server_name domain.com; # 监听多个域名 server_name domain.com www.domain.com; # 监听所有域名 server_name *.domain.com; # 监听所有顶级域名 server_name domain.*; # 监听未指定的主机名(比如侦听IP地址本身) server_name ""; } 4、静态资源 server { listen 80; server_name domain.com; location / { # 设置网站的根目录 root /path/to/website; } } 5、重定向 5.1、网站根目录重定向 server { listen 80; server_name www.domain.com; # 将 www.domain.com 进行301重定向,跳转至 http://domain.com$request_uri return 301 http://domain.com$request_uri; } 5.2、特定目录重定向 server { listen 80; server_name www.domain.com; # 将链接 http://www.domain.com/redirect-url 进行301重定向,跳转到http://otherdomain.com location /redirect-url { return 301 http://otherdomain.com; } } 如将 domain.com 永久重定向到 www.domain.com: server { listen 80; server_name domain.com; return 301 http://www.$host$request_uri; } 6、反向代理 反向代理 - 维基百科,自由的百科全书 (wikipedia.org) Reverse proxy - Wikipedia server { listen 80; server_name domain.com; # 对特定主机的3000端口进行反向代理 location / { proxy_pass http://0.0.0.0:3000; } } 7、负载均衡 负载均衡 - 维基百科,自由的百科全书 (wikipedia.org) Load balancing (computing) - Wikipedia upstream node_js { server 0.0.0.0:3000; server 0.0.0.0:4000; server 123.131.121.122; } server { listen 80; server_name domain.com; location / { proxy_pass http://node_js; } } 8、SSL配置 server { listen 443 ssl; server_name domain.com; ssl on; # 证书文件,格式不一定都是pem,还可能是其他格式 ssl_certificate /path/to/cert.pem; # 秘钥文件,格式不一定都是pem,还可能是其他格式 ssl_certificate_key /path/to/privatekey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_timeout 1h; ssl_session_cache shared:SSL:50m; add_header Strict-Transport-Security max-age=15768000; } # 将HTTP永久重定向到HTTPS server { listen 80; server_name domain.com; return 301 https://$host$request_uri; } 部分内容转载修改自: Nginx Cheatsheet (hashnode.dev) Nginx日志配置详解_biubiuli的博客-CSDN博客_nginx 日志配置
2021年12月11日
1,449 阅读
0 评论
0 点赞
1
2
...
4