ArchiSteamFarm(ASF)是steam大佬们常用的挂卡软件,这个软件相当厉害,可以自动挂steam开游戏掉落卡牌。
ASF的github项目地址:https://github.com/JustArchi/ArchiSteamFarm
ASF介绍:
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的时候,感觉这个东西真心强大,于是有空就开电脑挂卡。可是由于没有可以稳定24小时挂机的电脑,挂卡的效率并不高,200多张卡牌愣是挂了一个月。今天看github的时候,发现ASF支持linux,于是在云服务器上试验了下,还是比较顺利的,完美运行。
运行截图:
最后来一张自己的steam截图(大佬轻喷)
好了闲话不多说,直接开始主题吧。本次服务器为阿里云国内版,系统为centos7。
准备工具:xshell,winscp。附上xshell5永久不过期版:链接:https://pan.baidu.com/s/1P0JUQUjMrXM-5D4wNBhJiQ 密码:zjs5
一、环境搭建
虽然ASF支持linux,但实际上是个C#程序,需要微软的 .Net Core 2.0环境。(微软官方安装文档:https://www.microsoft.com/net/learn/get-started/linux/centos)
1.添加Microsoft产品feed
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
2.添加yum安装源
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';
这两步运行完不会有任何提示,如果第三步找不到dotnet请检查上面的命令有没有复制全。
3.安装 .Net Core 2.0
yum -y update yum -y install libunwind libicu yum -y install dotnet-sdk-2.0.0
安装完成截图
这时候试一下 dotnet –vision 命令,如有回显版本即为安装完成。
dotnet --version 2.0.0
二、下载安装ASCF(非国内服务器可跳过这一步)
ASCF项目链接:https://steamcn.com/t339641-1-1
由于国内steam社区被墙,打开会导致118等错误,而ASF需要通过steam社区读取你的卡牌状况,如果社区无法打开会导致ASF运行异常。幸亏某大神写出了steamcommunity 302工具,可以本地端口转发,解决steam社区被墙的问题,目前这个工具已经有linux版本 AnotherSteamCommunityFix,简称ASCF(作者命名还真是随意 – -!)
ASCF已经打包好了,可以直接下载运行,下载地址:https://github.com/zyfworks/AnotherSteamCommunityFix/releases centos可根据你的系统位数选择 linux_x86或者linux_64下载。
yum -y install wget && wget https://github.com/zyfworks/AnotherSteamCommunityFix/releases/download/1.2.2/ascf_v1.2.2_Linux_x64.zip
如果下载不了可以直接电脑上下载在用winscp传到你的服务器上。
运行ASCF:
unzip ascf_v1.2.2_Linux_x64.zip chmod +x ascf ./ascf
程序运行成功图:
如果出现如下错误,是因为端口冲突,本程序需要使用80和443端口,请退出nginx等web程序。
三、下载安装ASF
1.下载ASF
cd ~ wget https://github.com/JustArchi/ArchiSteamFarm/releases/download/3.1.1.8/ASF-linux-x64.zip
如果无法下载请用电脑下载到本地然后使用winscp传到你的服务器的/root文件夹,下载地址:https://github.com/JustArchi/ArchiSteamFarm/releases 同样centos请选择linux_x64版本。
2.解压ASF
mkdir asf mv ASF-linux-x64.zip asf/ASF-linux-x64.zip yum -y install zip cd asf unzip ASF-linux-x64.zip
解压完成:
四、配置ASF
配置文件生成地址:https://justarchinet.github.io/ASF-WebConfigGenerator/
如图,简单挂卡只需要填入配置文件名称,steam账号和登录密码。最后别忘了把enable勾上。
完了把配置文件下载到本地电脑然后上传到asf的config文件夹即可。如果有多个号可以填写多个配置文件都放到asf文件夹中,支持同时挂多个账号。
(关于高级部分如自动合卡暂时不讨论,有兴趣可以看官方WIKI:https://github.com/JustArchi/ArchiSteamFarm/wiki)
五、运行ASF
为了能够让asf在后台运行,需要使用tmux
安装tmux(centos6无法使用yum安装):
yum -y install tmux
创建一个新的tmux窗口:
tmux new -s asf
先运行ascf
./ascf
然后按下ctrl+b,松开后按下%,切分一个窗口:
接着运行ASF:
cd asf chmod +x ArchiSteamFarm ./ArchiSteamFarm
如果需要在两个窗口之间切换,按下ctrl+b 松开后按方向键即可。退出请按下ctrl+b松开后按下d(不会打断后台运行)。如需要重新进入,使用命令 tmux a -t asf即可。
六、后记
用了一段时间的云挂卡,最直观的感觉就是,这个ASF真心强大。大家如果有需要可以自己搭建看看,这个教程只在阿里云和腾讯云上的centos7上试过,其他系统暂时没有试。如果搭建不成功请仔细看看教程。只要你跟着教程不漏看不瞎来一定是能成功的,祝大家都能用云挂卡挂到自己满意的卡,steam等级嗖嗖嗖往上升级。
配置文件生成器的网页链接不能用了…梯子也上不去
https://justarchinet.github.io/ASF-WebConfigGenerator/ 官方wiki里有
2.解压ASF
第三步 应该安装这个吧
yum install -y unzip zip
zip就行了 会自动安装unzip
请问一下怎么改成中文啊?
求问,我在安装了宝塔面包的centos上运行asf,似乎不能正常连接,运行会这样:
2020-07-27 17:26:56|ArchiSteamFarm-13519|INFO|ASF|InitASF() ArchiSteamFarm V4.2.3.6 (linux-x64/e77840ff-7f00-483f-bfc2-deff2dc47f46 | Linux 3.10.0-1062.18.1.el7.x86_64 #1 SMP Tue Mar 17 23:49:17 UTC 2020)
2020-07-27 17:26:56|ArchiSteamFarm-13519|INFO|ASF|InitGlobalDatabaseAndServices() It looks like it’s your first launch of the program, welcome!
2020-07-27 17:27:06|ArchiSteamFarm-13519|WARN|ASF|InitGlobalDatabaseAndServices() Please review our privacy policy section on the wiki if you’re concerned about what ASF is in fact doing!
2020-07-27 17:27:11|ArchiSteamFarm-13519|INFO|ASF|InitPlugins() Initializing Plugins…
2020-07-27 17:27:11|ArchiSteamFarm-13519|INFO|ASF|InitPlugins() Loading SteamTokenDumperPlugin V4.2.3.6…
2020-07-27 17:27:11|ArchiSteamFarm-13519|INFO|ASF|InitPlugins() SteamTokenDumperPlugin has been loaded successfully!
2020-07-27 17:27:11|ArchiSteamFarm-13519|INFO|ASF|UpdateAndRestart() ASF will automatically check for new versions every 1 day.
2020-07-27 17:27:11|ArchiSteamFarm-13519|INFO|ASF|Update() Checking for new version…
2020-07-27 17:27:15|ArchiSteamFarm-13519|WARN|ASF|UrlGetToJsonObject() Request failed after 5 attempts!
2020-07-27 17:27:15|ArchiSteamFarm-13519|DEBUG|ASF|UrlGetToJsonObject() Request failing: https://api.github.com/repos/JustArchiNET/ArchiSteamFarm/releases/latest
2020-07-27 17:27:15|ArchiSteamFarm-13519|WARN|ASF|Update() Could not check latest version!
2020-07-27 17:27:15|ArchiSteamFarm-13519|INFO|ASF|OnASFInit() SteamTokenDumperPlugin is currently disabled. If you’d like to help SteamDB in data submission, check out our wiki for SteamTokenDumperPlugin.
2020-07-27 17:27:15|ArchiSteamFarm-13519|WARN|ASF|StartInteractiveConsole() Interactive console is not available due to missing SteamOwnerID config property.
2020-07-27 17:27:15|ArchiSteamFarm-13519|INFO|ASF|RegisterBots() Initializing SteamDirectory…
2020-07-27 17:27:15|ArchiSteamFarm-13519|WARN|ASF|RegisterBots() System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
—> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
at System.Net.Security.SslStream.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
— End of stack trace from previous location where exception was thrown —
at System.Net.Security.SslStream.ThrowIfExceptional()
at System.Net.Security.SslStream.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.Security.SslStream.EndProcessAuthentication(IAsyncResult result)
at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult)
at System.Net.Security.SslStream.c.b__65_1(IAsyncResult iar)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
— End of stack trace from previous location where exception was thrown —
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
— End of inner exception stack trace —
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at SteamKit2.WebAPI.AsyncInterface.CallAsync(HttpMethod method, String func, Int32 version, Dictionary`2 args)
at SteamKit2.SteamDirectory.LoadCoreAsync(SteamConfiguration configuration, Nullable`1 maxNumServers, CancellationToken cancellationToken)
at ArchiSteamFarm.ASF.RegisterBots()
2020-07-27 17:27:15|ArchiSteamFarm-13519|WARN|ASF|RegisterBots() Could not initialize SteamDirectory: connecting with Steam Network might take much longer than usual!
2020-07-27 17:27:21|ArchiSteamFarm-13519|INFO|test|Start() Starting…
2020-07-27 17:27:21|ArchiSteamFarm-13519|INFO|test|Connect() Connecting…
2020-07-27 17:27:21|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Disconnected from Steam!
2020-07-27 17:27:21|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Reconnecting…
2020-07-27 17:27:31|ArchiSteamFarm-13519|INFO|test|Connect() Connecting…
2020-07-27 17:27:31|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Disconnected from Steam!
2020-07-27 17:27:31|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Reconnecting…
2020-07-27 17:27:41|ArchiSteamFarm-13519|INFO|test|Connect() Connecting…
2020-07-27 17:27:41|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Disconnected from Steam!
2020-07-27 17:27:41|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Reconnecting…
2020-07-27 17:27:51|ArchiSteamFarm-13519|INFO|test|Connect() Connecting…
2020-07-27 17:27:51|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Disconnected from Steam!
2020-07-27 17:27:51|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Reconnecting…
2020-07-27 17:28:01|ArchiSteamFarm-13519|INFO|test|Connect() Connecting…
2020-07-27 17:28:01|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Disconnected from Steam!
2020-07-27 17:28:01|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Reconnecting…
2020-07-27 17:28:11|ArchiSteamFarm-13519|INFO|test|Connect() Connecting…
2020-07-27 17:28:11|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Disconnected from Steam!
2020-07-27 17:28:11|ArchiSteamFarm-13519|INFO|test|OnDisconnected() Reconnecting…
你这么大一串文字真把我吓坏了
rm -f /etc/init.d/bt && rm -rf /www/server/panel
报错求助
pi@raspbian:~/桌面/Files/AnotherSteamCommunityFix$ sudo ./ascf
~ 欢迎使用AnotherSteamCommunityFix v1.2.2 ~
Author: Makazeu [ Steam: Makazeu | Weibo: @Makazeu ]
main.go:46: 正在获取IP地址,请稍候~
lookup.go:26: 使用OpenDNS_2-fs解析域名成功,耗时: 85.291509ms
main.go:53: 域名解析成功: 223.119.219.243
程序已启动,请不要关闭该窗口!
对于Mac和Linux用户,使用nohup命令运行程序可使其在后台运行。
└─ 在终端中进入程序所在目录后执行 “nohup sudo ./ascf &”即可。
程序发生错误,已退出!
httpredirect.go:20: listen tcp4 :80: bind: address already in use