我很久没挂卡了,这两天看见曾哥在捣鼓 ASF 我也重新跑了下这玩意,发现总挂卡时间好像有点长,台式机常开费电,干脆丢服务器上吧。
使用 Windows 服务器
这个是最简单的办法,直接远程到服务器,像操作自己的 Windows 电脑一样操作服务器就好,你甚至可以直接拷贝自己机器上的 ASF 和配置文件到服务器上直接运行——只需输入两步验证码。
使用 Linux 服务器
我本来以为在 Linux 环境跑需要安装 .NET Core SDK,后来发现有直接可以使用的 release,省了安装 dotnet 的步骤。
我使用的 SSH 工具是 Xshell,传输工具是 Xftp,其他工具用法类似。
下载 ASF
2019 年 9 月 26 日的最新稳定版本是 4.0.4.2,直接使用 wget
下载:
wget -S https://github.com/JustArchiNET/ArchiSteamFarm/releases/download/4.0.4.2/ASF-linux-x64.zip
mkdir asf
sudo apt install unzip
unzip -d ./asf ASF-linux-x64.zip
rm ASF-linux-x64.zip
其他版本修改 4.0.4.2 数字即可。
修改配置文件
如果你在自己的机器上运行过 ASF 那么可以省略这一步。
这里我使用最小配置,有更多需求时可以参考 wiki 修改配置。
前往 ASF web config,我们至少有两个文件需要生成。首先是程序配置,点击 ASF,选择对应的 ASF 版本,填写必须字段并选取需要的特性,下载即可。以下是我的配置参考:
{
"s_SteamOwnerID": "xxxxx",
"IPC": true,
"Headless": false,
"IPCPassword": "password"
}
s_SteamOwnerID
是 64 位 SteamID,可以在 SteamDB 查询自己的 ID。IPC
可提供网页后台,方便使用,关于 IPC 的更多信息可以查看其 wiki。IPCPassword
是网页登录密码。Headless
影响命令行是否接受输入,建议直接设置为false
。
然后是 bot 配置文件,输入 steam 账户密码和 bot 名即可,json 文件大致如下:
{
"SteamLogin": "bolitao",
"SteamPassword": "passwd",
"Enabled": true
}
将配置文件传至服务器
这两个 json 文件准备好后用 Xftp 丢到 asf 目录下的 config
文件夹下就好叻。
配置 IPC
如果需要 IPC 请放行防火墙和安全组的 1242
端口。
在 config
文件夹下创建 IPC.config
文件:
vim IPC.config
官方模板:
{
"Kestrel": {
"Endpoints": {
"example-http4": {
"Url": "http://127.0.0.1:1242"
},
"example-http6": {
"Url": "http://[::1]:1242"
},
"example-https4": {
"Url": "https://127.0.0.1:1242",
"Certificate": {
"Path": "/path/to/certificate.pfx",
"Password": "passwordToPfxFileAbove"
}
},
"example-https6": {
"Url": "https://[::1]:1242",
"Certificate": {
"Path": "/path/to/certificate.pfx",
"Password": "passwordToPfxFileAbove"
}
}
},
"PathBase": "/"
}
}
我偷点懒,直接配成允许本地访问,然后再用 Nginx 代理出去:
{
"Kestrel": {
"Endpoints": {
"HTTP": {
"Url": "http://127.0.0.1:1242"
}
}
}
}
如果没有域名/不设置代理,可以把
Url
部分改为http://*:1242
,使用ip:1242
进行访问
注:这样直接粗暴的方法可能会有潜在安全风险,请至少设置 IPCPassword
。
Nginx
在 Nginx 配置目录添加一个 asf.conf
配置,然后在 nginx.conf
中 include
ASF 的配置。
一个最简单的配置文件内容如下:
server {
server_name asf.bolitao.xyz;
client_max_body_size 128M;
location / {
proxy_pass http://127.0.0.1:1242;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
之后使用 certbot 自动配置 SSL:
sudo certbot --nginx
运行 ASF
安装一些必要依赖:
sudo apt install libcurl3 libicu60 libkrb5-3 liblttng-ust0 libssl1.0.0 zlib1g # Ubuntu 16.04
可执行权限:
cd asf; chmod +x ArchiSteamFarm
运行 ASF:
./ArchiSteamFarm
后台运行
上述方法在关闭 SSH 窗口后程序也会自动结束,使程序常驻运行方法很多,这里使用 screen:
sudo apt install screen
screen -S asf
~/apps/asf/ArchiSteamFarm
# 其他 screen 命令
screen -ls # 列出运行中的 screen,会给出 pid,可以使用 kill -9 pid 结束进程
screen -r abc # 返回到名为 abc 的 screen
这样子我们的 ASF 云挂卡就跑起来了:
而且不论身处何地只要有网,我们都可以登录 ip:port
或域名来查看 ASF 的运行状态、进行 ASF 相关的操作: