介绍
闲来无事,想把steam上的卡都给挂出来,想着刚好手里有闲置的腾讯云服务器,不过由于是Linux系统的,所以经过一番百度决定使用ArchiSteamFarm来作为部署在服务器上的挂卡工具
为了吸引大家的关注,先说这个挂卡工具的优点吧:
1.此工具挂卡不需要开着steam客户端,牛逼的作者相当于用C#实现了一个内置的steam客户端;
2.由于第一个优点,这款挂卡特别适合魔法主机或者有多台电脑的人挂卡【比如公司的电脑等。。】,程序开着就不用管了,挂着卡的steam账号可以正常玩游戏,当你玩游戏时这个工具会自动断开,你不玩以后该工具自动继续挂卡;
3.挂卡速度快,比idle master要快,至于为什么,请移步“https://github.com/JustArchi/ArchiSteamFarm/wiki/FAQ
”的第一个问题,英文好自己看,我就不翻译了,英文好的非计算机专业的可能也不一定懂。。反正涉及操作系统和steam本身客户端的一些问题。。
4.全平台,Windows/linux/osx,linux和osx要用mono运行;
5.有一些舒心的小功能,比如离线挂卡,不显示你挂卡的游戏信息等;
6.此工具可以同时挂多个steam账号,只需设置多个配置文件即可(根据steam的限制,一台机器可以同时挂100个左右)。也可以同时挂多个游戏,这个目前
是算法自己控制的,不能手动设置,即此工具会优先串行挂游戏时间超过2小时的游戏,挂完以后,同时挂游戏时间小于两小时的游戏让其游戏时间超过2小时。
7.此工具实现了一个模拟steam手机令牌的东西【对于挂卡来说我没看出来有什么用。。
虽然网上关于在服务器上部署ASF的教程还蛮多的,但大部分都是Windows界面化的部署,而有关于Centos环境的部署少而且比较杂乱,所以整理此篇随笔当做备忘用。
教程
开始之前默认已经拥有腾讯云的Centos 7.2云服务器
1.首先用ssh工具连接上远程主机,进入命令行
2.可能需要的准备工作
yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libgdi* libexif glibc-devel urw-fonts java unzip gcc gcc-c++ automake autoconf libtool make bzip2 wget cmake zip
yum update
yum -y install yum-utils
3. 安装mono,先添加yum源
rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
如果提示找不到yum-config-manager ,这个是因为系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils安装。
然后
yum -y install mono-complete
经过漫长的等待之后
测试mono
mono -V
4.下载配置ASF
下载
wget https://github.com/JustArchi/ArchiSteamFarm/releases/download/2.3.1.6/ASF.zip
unzip ASF.zip -d ASF
不过由于我卡在了这里,所以选择了一重更简单粗暴的方法
直接从github上下载了ASF.zip解压完成之后,直接用FTP工具把ASF文件夹上传到了服务器的root文件夹下
配置
- 介绍
下载之后,大家文件夹的config下面会是如下的结构。其中ASF.json是全局配置文件,example.json是较完整的配置方案,而minimal.json则是最精简版的账户配置方案
ASF配置分为两个主要部分:全局配置以及单个bot配置。bot是运作在ASF进程当中的单个Steam账号。ASF的运作至少需要启动一个bot,而bot数量没有上限,可使用任意数量的Steam账号(bot)。
-
文件结构
带有必要标签意味着该文件对启动ASF至关重要,带有生成标签意味该文件默认状态下不存在,由ASF根据需求生成。
如果要将ASF移至另一处地方,或是另一台电脑。只要将上述整个文件结构当中的内容移过去即可,不需要其他操作。
ASF.exe(必要):核心可执行(二进制)文件,用来启动程序。
log.txt(生成):ASF进程的日志文件。日志文件只在ASF运行时使用,并会自动在每次启动时清除之前内容。该文件的目的是记录潜在的bug和崩溃信息,以让ASF开发者查找并修复问题。日志当中不包含任何敏感信息,只用来debug和信息传输。
config(必要):包含ASF进程以及所有bot配置的文件夹。
ASF.json(必要):ASF全局配置文件。该配置用来制定ASF进程的行为,全局作用于整个程序。你可以(也应该)根据自身需求修改全局配置。该内容将在下文详述。
ASF.db(生成):ASF全局数据库文件。其作为ASF全局持久性存储文件,用来储存一些关键信息。请用户不要编辑该文件。
现在我们来看bot配置文件,每个bot拥有单独的配置和关联文件。
Bot.json(必要):bot配置文件。该文件用来制定该bot的行为,包含所有用于正常运作的信息。当中的属性只会影响该bot,用户可让诸多bot以不同的方式运作。(这与作用于全局进程和所有bot的ASF全局设置相对应)
Bot.db(生成):bot数据库文件。该文件用来储存bot的关键数据。请用户不要编辑该文件。
Bot.bin(生成):bot特殊文件。当中包含Steam安全哈希信息,安全哈希用作Steam令牌机制的授权。请用户不要编辑该文件。
- 首先是全局配置文件,里面都是字面意思。我认为对大家有用的就是Blacklist了,黑名单功能,不想挂卡的游戏就把对应的appid添加到Blacklist里。别的可以不用动。想了解具体什么作用的,可以去看教程
{
"AutoRestart": true,
"AutoUpdates": true,
"Blacklist": [
267420,
303700,
335590
],
"ConnectionTimeout": 60,
"CurrentCulture": null,
"Debug": false,
"FarmingDelay": 15,
"GiftsLimiterDelay": 1,
"Headless": false,
"IdleFarmingPeriod": 3,
"InventoryLimiterDelay": 3,
"LoginLimiterDelay": 10,
"MaxFarmingTime": 10,
"MaxTradeHoldDuration": 15,
"OptimizationMode": 0,
"Statistics": true,
"SteamOwnerID": 0,
"SteamProtocol": 6,
"UpdateChannel": 1,
"WCFBinding": 0,
"WCFHost": "127.0.0.1",
"WCFPort": 1242
}
- 然后新建json文件,只是基础挂卡的话直接给minimal.json里的内容复制过来就行了,至于命名可以依次命名为bot1.json,bot2.json 也可以直接以steam账号来命名
{
"Enabled": true, //启动软件
"SteamLogin": "你的id",
"SteamPassword": "你的密码",
"FarmOffline": true //启动离线挂卡
}
- 账号设置部分属性
Enabled(启用) - bool:默认值为false。该属性定义是否bot是否启动。将其启动并不意味着bot开始运作,而是让ASF“留意”到这是一个有效且配置完毕的bot,可以被Start()或是Stop()。该属性能够让你轻松启用与禁用bot,而不用去移除配置文件。默认设置下所有bot都被禁用,如果你想要让其生效,需要将其更改为true。
SteamLogin(Steam用户名) - string:默认值为null。该属性为你用来登陆Steam的用户名。如果你想要每次启动ASF输入用户名,可以保持其默认值null。这在你不想让配置文件留有敏感信息时可能有所帮助。
SteamPassword(Steam密码) - string:默认值为null。该属性为你登陆Steam的账户密码。如果你想要每次启动ASF输入密码,可以保持其默认值null。这在你不想让配置文件留有敏感信息时可能有所帮助。
FarmOffline(离线挂卡) - bool:默认值为false。离线挂卡对主账号来说极为有用。要知道挂卡会让你的Steam状态显示“当前正在游戏”,这可能会误导你的朋友,让他们以为你真的在玩这款游戏。离线挂卡就能解决这个问题,在你用ASF挂卡时,账号不会显示正在玩某款游戏。这功能归功于ASF本身不需要登陆Steam社区的特性,其实该账号的确在玩这款游戏,只不过是处在“半离线”的模式下。离线挂卡依然会增加被挂游戏的游戏时长,并会在个人资料的“最新动态”中显示出来。另外,为bot启用离线挂卡特性会让其不响应指令(直接),这一点在启用副帐号时较为重要。查看:HandleOfflineMessages
以上配置方面细节设定,和属性详解,想具体了解的可以去查看配置 - 细节设定、属性详解
5.开始挂卡
- 安装完mono,可别急着运行,因为当前直接运行的话,一旦断掉ssh会话,程序就停止啦!使用screen命令,没安装的先yum -y install screen安装下开启screen新窗口,并命名为asf
screen -S asf
- 让mono支持ssl
mozroots --import --sync
- 运行
mono ASF/ASF.exe
看到
大功告成!这时候你就可以安心的退出ssh连接
- 退出挂卡
screen -ls #显示所有的screen窗口名字和进程号
kill [进程号] //结束进程
screen -S PID -X quit //PID 进程号
//screen常用命令
screen -r PID //恢复进程