Foreword
最近刚好碰到腾讯云阿里云各种云一起打折,于是入了一个腾讯云,1核,2g内存,1m带宽,120块16个月。(没赶上降配延迟时间的bug)
服务器可选地址,一共就只有北京,上海,广州,成都,并不能选择国外节点,所以vps什么的就别想了。
而且最近香港或者其他海外地区的ip疯狂被封,无论你是阿里云还是什么的,都不好使。
这里记录一下用腾讯云挂卡,搭建ASF的过程。
腾讯云
申请到腾讯云以后,就可以收到一条站内信,站内信中有初始密码(第一次弄找了半天密码)
可以通过网页直接登陆,也可以使用putty来登陆。
ArchiSteamFarm
挂卡界三王之一,没啥说的,一般来说ASF出问题比较小,而且也稳定。
官网:
https://github.com/JustArchi/ArchiSteamFarm
记得以前还有云挂卡服务,基本后端就是ASF,前端弄了个网页,然后还有点不规矩,被人抓到小尾巴。
所以出于安全考虑自己搭建更好一点。
注意
ASF从2.0到3.0改变了很多东西,刚开始我是看2.0的教程,然后用的3.0的客户端,怎么都不成功,后来才发现已经不支持以前的老操作了。
如果要使用ASF2.x的版本,那么在centos上要用mono来运行,如果使用的是3.0版本,只要安装了dotnet以后,在centos上就能直接运行了。
安装.NET
- 安装签名
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
- 添加产品源。(这一步必须紧跟上一步,独立执行会出现没权限的情况)
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
- 安装 .NET Core SDK。
sudo yum update sudo yum install libunwind libicu sudo yum install dotnet-sdk-2.0.0
- 将 dotnet 添加到 PATH
export PATH=$PATH:$HOME/dotnet
- 检测是否安装成功,不成功重来一遍就行了。
dotnet --version
安装ASF
1.下载文件包,这里必须用ASF-generic的版本,其他版本我测试都无法正常运行.有可能下载特别慢,那我建议就用winscp连到云服务器上,把本地下好的传过去就行了.
wget https://github.com/JustArchi/ArchiSteamFarm/releases/download/3.1.1.1/ASF-generic.zip
2.解压
unzip ASF-generic.zip -d asf
3.修改权限
chmod +x ArchiSteamFarm.sh
4.修改config,更好的做法是通过解压后的文件,从中打开ConfigGenerator.html,然后通过网页配置,配置好了以后再通过下载到config中就可以了.如果不用网页配置,也能自己手改,如下:
这一步可做可不做。
"IPCPrefixes": [
"http://127.0.0.1:1242/"
]
为了防止被封1242端口,这里可以修改成其他端口1242-65535就行
"SteamOwnerID": 0
steam的主id,这里可写可不写,如果有小号给大号挂卡,那就写,不然就不用了。
https://steamid.io/
从这里可以直接赋值steam个人资料的链接得到64位ID
5.添加一个新bot文件,命名随意,不是中文就行,格式是json
{
"SteamLogin": "你的账号",
"SteamPassword": "你的密码",
"Enabled": true,
"UseLoginKeys": true,
"FarmingOrder": 9,//随机挂卡
"FarmOffline": true //离线挂卡
}
正常到这里应该就结束了,但是由于国内封了steamcommunity的ip,导致获取不到steam的徽章库,从而不能正常挂卡.
常见问题
Cannot open assembly 'ArchiSteamFarm.exe': File does not contain a valid CIL
这个基本说明这个程序不支持mono打开,其实是用mono开了3.0的程序
Segmentation fault
执行./ArchiSteamFarm.exe时出现的,原因同上.
Request failing: https://steamcommunity.com/dev/apikey?l=english
could not get the badge information,we will try again later
出现这种情况,其实就是所在的网络有问题,导致获取不到steam的相关信息.
ASCF
ASCF:AnotherSteamCommunityFix,同样是用于修复steam社区的小工具,也蛮好用的.
官网:
https://github.com/zyfworks/AnotherSteamCommunityFix
安装
1.下载并解压缩
wget https://github.com/zyfworks/AnotherSteamCommunityFix/releases/download/1.2.2/ascf_v1.2.2_Linux_x64.zip
2.赋予程序可执行权限,在终端中输入命令:
chmod +x ./ascf
3.以后台的方式运行程序
nohup sudo ./ascf &
做完这个以后可以使用打开steam社区试试看,是否成功
运行
运行,其实这个脚本会检测环境,然后安装一些东西
./ArchiSteamFarm.sh
screen
需要注意的是如果运行以后,直接退出终端会导致相关进程全都被清除,所以这里要用screen来运行ASF,或者也可以类似修复社区的方式,使用nohup来让ASF在后台运行,不过这里还是说一下screen的问题。
screen相当于是建立多个终端同时运行,并且不会因某个终端退出而退出。
新建一个终端,命名为asf,会看到一个进入screen的提示
screen -s asf
然后运行,即可
./ArchiSteamFarm.sh
但是这里别直接退出,而是Ctrl-a 然后按一下d 绝对不能Ctrl-a Ctrl-d!!!虽然screen的快捷键是可以的,但是putty里Ctrl-d的意思是关闭终端退出,这样一操作putty程序就直接关闭了。
这样就会回到使用putty连接进来的终端画面,而ASF运行的终端还在后台。
查看当前screen终端
screen -ls
恢复某一个终端,就能回到其输出的界面了.
screen -r 程序id
screen比nohup好的地方就是可以回到程序运行的界面里,而不是只能把输出输出到某个文件,无法实时查看。
需要注意的是screen所有快捷键都是Ctrl-a开始加某个按键结束,这很可能和当前win系统里其他程序冲突,从而导致在putty里按并不起作用。
puTTY
putty中 Ctrl-s 是锁定当前终端界面,不小心误按了,还以为是程序崩了呢。
Ctrl-q 是恢复输入
Ctrl-d 是退出当前终端登陆,而为了使用Screen的Ctrl-a-d,有时候需要禁用Ctrl-d(有可能会误触)
禁用Ctrl-d
set -o ignoreeof
要在puTTY中正常使用screen,需要如下设置
puTTY -> terminal -> features
tick "disable switching to alternate terminal screen"
Summary
基本到这里就能正使用ASF了,正常运行以后会有提示告诉你预计需要多少天挂完多少卡的.
如果非常多,就需要自己建一个开机启动项,然后每次自动后台运行.
Quote
https://steamcn.com/t339641-1-1
https://www.jianshu.com/p/3fd90384fc24
https://www.jianshu.com/p/13beaf40fa0a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
https://steamcn.com/t339527-1-1
https://steamcn.com/t339641-1-1
http://man.linuxde.net/screen
https://chaifeng.com/blog/2007/06/putty_200611.html