在Ubuntu 16.04环境下使用ASF(v3)实现云挂卡

挂卡是什么,我再次就不赘述了。Steam玩家估计都有所了解,还不清楚的可以谷歌一下。今天在此分享一下如何在在Ubuntu 16.04环境下使用ArchiSteamFarm(v3)实现云挂卡,24小时无人值守。

环境

  • 主机:腾讯云香港云主机1核1G
  • 系统:Ubuntu 16.04
  • 软件版本:ArchiSteamFarm V3.2.0.5

教程

使用root权限

1
sudo su

安装.NET Core

注册微软key和订阅源

1
2
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb --no-check-certificate
sudo dpkg -i packages-microsoft-prod.deb

安装.NET SDK

1
2
3
sudo apt install apt-transport-https
sudo apt update
sudo apt install dotnet-sdk-2.1

安装ASF

下载最新稳定版ASF

建议选用Pre-release版本,Pre-release版本可能存在稳定性问题。

1
wget https://github.com/JustArchi/ArchiSteamFarm/releases/download/3.3.0.0/ASF-linux-x64.zip --no-check-certificate

/home中创建asf文件夹

1
mkdir /home/asf && cd /home/asf

解压软件到该目录

1
unzip /root/ASF-linux-x64.zip

创建bot配置文件

这里只写最简单的配置,更多高级设置可以到ASF web config上生成配置文件。

文件名字自取,这里我取名test.json,所以这个bot的名称就叫test。

1
vi /home/asf/config/test.json

输入以下内容并保存,注意替换为自己的steam用户名和密码。

1
2
3
4
5
{
"SteamLogin": "yourusername",
"SteamPassword": "yourpassword",
"Enabled": true
}

由于asf就是模拟一个steam平台进行游戏,你的好友将会看到你正在游戏的状态。想要让steam显示离线状态,可以将配置文件换成以下内容。

1
2
3
4
5
6
{
"SteamLogin": "yourusername",
"SteamPassword": "yourpassword",
"Enabled": true,
"OnlineStatus": 0
}

运行

赋予执行权限

1
chmod +x ArchiSteamFarm

开始运行

1
./ArchiSteamFarm

如果正常运行,现在已经开始自动挂卡了。

保持后台运行

方法一:Screen

安装screen

1
apt install screen

创建一个名为asf的窗口,并在其中执行程序。

1
2
3
screen -S asf
cd /home/asf
./ArchiSteamFarm

Ctrl+A+D搁置窗口,程序已经在后台运行了,可以放心退出终端了。

其他命令:

  • 恢复screen窗口命令:screen -r asf
  • 退出screen窗口:在窗口中,先按Ctrl+A,再按K,最后输入y确认。

方法二:Systemd(推荐)

安装systemd

1
apt install systemd

创建service文件

1
vi /etc/systemd/system/asf.service

输入以下内容并保存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=Archi Steam Farm
After=network.target

[Service]
Type=simple
User=root
EnvironmentFile=/etc/environment
Environment=""
ExecStart=/home/asf/ArchiSteamFarm
Restart=always
RestartSec=15s

[Install]
WantedBy=multi-user.target

现在可以运行了。

1
2
3
service asf start  # 开始运行挂卡
service asf stop # 停止运行
service asf status # 查看服务状态

更多功能

steam两部验证

要知道,如果绑定了steam手机令牌的话,登录需要输入密钥,显然不可能在挂卡平台每次都手动输入密钥,这也太蠢了。那么我们就需要将令牌导入到ASF中,以实现自动登录。

各个平台操作不同,详情请见官方WIKI。我没有其他设备,这里就只说明以下安卓设备的方法。

手机root

首先,你需要有系统的root权限,这个不多说,每个设备都有所不同。

提取令牌文件

安装一个能够访问系统根目录的文件管理器,如ES文件浏览器

将文件/data/data/com.valvesoftware.android.steam.community/files/Steamguard-XXX复制出来,XXX是你的SteamID。重命名为BotName.maFile并放置到/home/asf/config目录下,程序会自动检测并读取。如我的bot名字为test,则重命名为test.maFile

提取设备ID

将文件/data/data/com.valvesoftware.android.steam.community/shared_prefs/steam.uuid.xml打开,找到如android:XXXXXXXXXXXXXXXX字样,这就是你的设备ID,注意保存。

输入设备ID

导入好令牌文件以后,首次启动,将会看到如下字样。

1
2
[*] INFO: ImportAuthenticator() <1> Converting .maFile into ASF format...
<1> Please enter your Device ID (including "android:"):

这时输入你的设备ID,连android:字样一起输入,回车。看到如下字样,表示你已经完成,以后启动就不再需要输入了,会自动登录。

1
[*] INFO: ImportAuthenticator() <1> Successfully finished importing mobile authenticator!

注意事项

注意:为了你的steam账号安全,切勿暴露你的令牌文件和设备ID。拥有这些内容,将能任意变更你的账户。

启用IPC

启用IPC将会提供API和图形化GUI,可以远程进行控制。

编辑ASF配置文件

1
vi /home/asf/config/ASF.json

查找并修改相关内容如下

1
2
3
4
5
6
"IPC": true,
"IPCPassword": null,
"IPCPrefixes": [
"http://127.0.0.1:1242/"
],
"SteamOwnerID": "你的64位id",

IPCPassword后改为你想要设置的密码,注意加双引号。IPCPrefixes设置为127.0.0.1,则只能本地访问;设置为*则可以从任意地址访问;可以设置多个监听地址,用逗号隔开。

用Telegram远程控制ASF挂卡

提供给有需求的人,要求主机上python版本至少为3.6。

向Telegram申请bot token

在Telegram里,搜索@BotFather机器人并启用。

发送以下命令:

  1. 创建机器人:/newbot
  2. 设定bot名称:ASF(任取,可重复,这里只是个例子)
  3. 设定bot用户名:test_asf_bot(任取,不可重复,这里只是个例子)

@BotFather会发给你一串token,形如123456789:XXXXXX-XXXXXXXXXX,注意保留。

申请Chat ID

在Telegram里,搜索@FalconGate_Bot机器人并启用。

发送命令:/get_my_id

@FalconGate_Bot会发给你一串数字,即是你的Chat ID。

安装telegram_bot_asf

请确保python版本正确

1
2
3
git clone https://github.com/deluxghost/telegram-asf.git
cd telegram-asf
sudo pip3 install -r requirements.txt

编辑bot.py,修改如下内容。

1
2
3
4
token = '123456789:XXXXXX-XXXXXXXXXX' # 之前获取的bot token
admin = '123456789' # 之前获取的Chat ID
ipc_address = 'http://127.0.0.1:1242/' #填写ASF的IPC监听地址
ipc_password = '' # 填写ASF的IPCPassword,留空表示没有密码

后台启动bot

1
2
screen -S bot
python3 bot.py

在Telegram中使用这个bot

搜索刚刚你设定的bot用户名,并启用,你已经可以发送命令远程控制ASF了。这个机器人只有你能使用。

常见命令

帮助命令:help

开始命令:start

暂停命令:pause

继续命令:resume

查看状态命令:status

查看版本命令:version

激活steam密钥命令:redeem <key>

更多命令,请参官方WIKI

后话

现在你已经成功搭建了云挂卡平台,尽情挂卡吧。

您的支持将是对我最好的鼓励!