k6686389 发表于 2020-4-23 19:37:52

求助在群晖上搭建《异星工场》服务器的方法

求助在群晖上搭建《异星工场》服务器的方法
最好能用Docker实现

bickar 发表于 2020-4-24 00:36:49

手头有4种方法 :
1 docker
2 docker+官方LINUX服务端
3 win
4 Linux

具体做法编辑中

bickar 发表于 2020-4-24 02:57:47

本帖最后由 bickar 于 2020-4-24 03:35 编辑

群晖DOCKERFACTORIO
官方HEADLESS服务端 + DOCKER管理器(推荐用这个)
1、这破玩意非常吃时间,只要开游戏天就快亮了。特别是自架服+机油,那就更没边了。
2、非常吃U,3.0G四核起步,J系列搞个1K 2K还行,工厂规模大了,入门U抗不住。

准备工作:
给docker加速,自行百度
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

(1)去工厂官网下服务端建议HEADLESS,没声音没图像纯服务端节省资源


(2)解压后扔群晖里
以docker/factorio为例
顺便建立config saves mods三个文件夹与bin data同级




(3)在DOCKER的注册表里下载“factorio-server-manager”


(4)在容器里编辑“factorio-server-manager”







(5)启动“factorio-server-manager”

(6)http://群晖IP:8080 登录管理页面
用户名 admin
密码   factorio


(7)Game Configuration等等
挑几个重要的说
Autosave interval
//自动存档时间,单位分种

Name
//服务器名称

Require user verification
//这个最恶心正版认证,连不上Factorio.com,服务器就起不来
// true 或 false

public
//互联网游戏,这必须有公网ip或网络穿透盒子等,还得有正版帐号就是官网帐号。
// true 或 false













(8)SERVER CONTROL选地图开始游戏




++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
服务端启动或连接常见问题:
1、看“卷” 左右两边是否正确
2、端口,本地端口默认自动需要手改,容器端口自动填写
3、Game Configuration 里 Require user verification尽量关闭(改成false),除非有互联网游戏需求。
      FACTORIO.COM连接超时,认证失败会导致服务器启动不了
4、坏档也会导致服务器启动不了
Opening zip /opt/factorio/saves/11111111.tmp.zip failed: Bad zip file

关闭重启群晖时,尽量要在管理页面server control 里 点击“Stop & Save Factorio Server” 否则容易坏档

例如:
正常存档11111111.ZIP
坏档         11111111.tmp.zip
万一坏档,就重新选择11111111.zip 或AUTOSAVE1、2、3、4、5.ZIP启动服务端
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
还一问题一直没解决,服务器直连没问题,但局域网大厅经常刷不出。

k6686389 发表于 2020-4-24 08:12:04

bickar 发表于 2020-4-24 02:57
群晖DOCKERFACTORIO
官方HEADLESS服务端 + DOCKER管理器(推荐用这个)
1、这破玩意非常吃时间,只要开游 ...

非常感谢大佬!待会就去实践!

k6686389 发表于 2020-4-24 09:30:28

本帖最后由 k6686389 于 2020-4-24 15:30 编辑

bickar 发表于 2020-4-24 02:57
群晖DOCKERFACTORIO
官方HEADLESS服务端 + DOCKER管理器(推荐用这个)
1、这破玩意非常吃时间,只要开游 ...
已经成功登录了服务器设置界面,进行了设置,点击start Factorio server提示运行成功,但是address那里一直显示是0.0.0.0



游戏内服务器直连也连不上。
______________________________________________游戏是正版游戏,官网拿了token也填了进去,启动服务之后,随意点个什么地方,酒壶显示server offline



我的电脑有公网IP,做了DDNS,我是用域名:端口号这种方式连接的。

bickar 发表于 2020-4-24 20:08:11

本帖最后由 bickar 于 2020-4-25 02:21 编辑

OFF LINE
Game Configuration 里 Require user verification关闭(改成false)试试

界面里有LOG可以看看

这几天只顾盖厂,IP.0.0.0.0还没找到问题所在----------------------------------------------------------------------
以上描述有误::更正一部分
1:ip 0.0.0.0,这个应该是可以登录WEB管理页的ip


2:还是 GAME CONFIGURATION里,或直接编辑server-settings.json
TOKEN我没填写,服务端启动时,回自动下载


3:若设置正确,启动服务端,先正版验证。然后会列出公网IP
正版验证Downloading https://auth.factorio.com/api-login?api_version=4
验证成功Got token from auth server for username(******)认证账号时会连接FACTORIO.COM,超时就会OFF LINE。


4:可以在局域网大厅里看到服务器名称、版本(右边base 0.18.19)、模组、标签等



5:互联网也正常,PING值咋这么大???
估计跟UU加速器有关,欧洲绕一圈又回到国内


客户端服务端,版本相同才能搜索到。。
FWQ 0.18.19 ,客户端自动更新0.18.21,这地方多走弯路了。。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
服务端更新:下个最新的HEADLESS,先停止服务器,全部覆盖到群晖原文件夹,再启动。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

先试局域网大厅或服务器直连,测试通,再试DDNS
另外看看路由里的端口转发 UDP34197 对外端口也得是这
不然互联网大厅里搜不到

还有方法是设置MDZ主机 (这个风险稍大)

bickar 发表于 2020-4-25 03:33:16

如果还是OFFLINE,看日志

Downloading https://auth.factorio.com/api-login?api_version=4
*****
****
***
Goodbye


说明容器上不了网,也就验证补不了。
++++++++++++++++++++++++++++++
删掉容器重来,其余不变,网络里
“使用与DOCKER HOST相同的网络” 勾上

k6686389 发表于 2020-4-27 09:36:43

bickar 发表于 2020-4-25 03:33
如果还是OFFLINE,看日志

Downloading https://auth.factorio.com/api-login?api_version=4


1.网络如果勾选与docker host相同网络,是不是就无法设置容器端口了?该容器默认为80端口,与DSM、photostation貌似都有冲突。



2.Require user verification在我这里无法变更,不知道为什么,选择为false,update settings后,去别的页面返回来,它还是true,但是其他的选项可以正常的update settings



3.无法启动的日志如下:
10.059 Goodbye

9.997 Info ServerMultiplayerManager.cpp:776: updateTick(4294967295) changing state from(Ready) to(Closed)

9.997 Info ServerMultiplayerManager.cpp:138: Quitting multiplayer connection.

9.993 Error Main.cpp:840: require_user_verification must be enabled for public games.

9.990 Info AuthServerConnector.cpp:171: Got token from auth server for username(***********).

1.237 Info HttpSharedState.cpp:54: Downloading https://auth.factorio.com/api-login?api_version=2

1.236 Error PlayerAccessList.cpp:187: Failed to load access list: Value must be a list or dictionary in property tree at ROOT

1.235 Factorio initialised

1.231 Info PlayerData.cpp:75: Cloud player-data.json unavailable

1.231 Info PlayerData.cpp:68: Local player-data.json available, timestamp 1587950673

1.154 Prototype list checksum: 2767119397

0.778 Checksum of base: 4156627525

0.778 Checksum for core: 2035938594

0.551 Loading mod base 0.17.79 (data-updates.lua)

0.126 Loading mod base 0.17.79 (data.lua)

0.019 Loading mod core 0.0.0 (data.lua)

0.014 Running in headless mode

0.014 Environment: DISPLAY=<unset> WAYLAND_DISPLAY=<unset> DESKTOP_SESSION=<unset> XDG_SESSION_DESKTOP=<unset> XDG_CURRENT_DESKTOP=<unset> __GL_FSAA_MODE=<unset> __GL_LOG_MAX_ANISO=<unset> __GL_SYNC_TO_VBLANK=<unset> __GL_SORT_FBCONFIGS=<unset> __GL_YIELD=<unset>

0.014 System info:

0.000 Binaries path: /opt/factorio/bin

0.000 Write data path: /opt/factorio

0.000 Read data path: /opt/factorio/data

0.000 Program arguments: "/opt/factorio/bin/x64/factorio" "--bind" "0.0.0.0" "--port" "34197" "--server-settings" "/opt/factorio/config/server-settings.json" "--rcon-port" "43081" "--rcon-password" <private> "--server-adminlist" "/opt/factorio/config/server-adminlist.json" "--start-server" "/opt/factorio/saves/20200414.zip"

0.000 Operating system: Linux

0.000 2020-04-27 01:33:24; Factorio 0.17.79 (build 47865, linux64, headless)

感觉是token下载失败还是啥的,官网拿token的时候,我这边不挂梯子网页端根本拿不到。

bickar 发表于 2020-4-28 00:33:26

本帖最后由 bickar 于 2020-4-28 00:38 编辑

一;网络如果勾选与docker host相同网络,80 443 并没冲突。我是DOCKER小白,不明白其中道理但能用。

二;Require user verification,改不了TRUE ,我这也是这,多点几次UPDATA SETTINGS 。
       可能浏览器有兼容问题,其他选项没这个问题。是否成功,看server-settings.json内容。
       实在不行手改server-settings.json

三;
10.059 Goodbye
9.993 Error Main.cpp:840: require_user_verification must be enabled for public games. 这个跟问题二有关。只要解决问题二,这个也就解决了

四,只要裸连能打开FACTORIO.COM 官方网站,就能取到TOKEN
+++++++++++++++++++++++++++++++++++++++++++++++++
还有个小问题
我是J1900
进入游戏后,FPS60/UPS60
但总感觉画面不流畅,还没查出是CPU还是DOCKER问题。

k6686389 发表于 2020-4-28 09:51:59

本帖最后由 k6686389 于 2020-4-29 13:51 编辑

bickar 发表于 2020-4-28 00:33
一;网络如果勾选与docker host相同网络,80 443 并没冲突。我是DOCKER小白,不明白其中道理但能用。

二; ...
目前局域网内输入服务器内网IP+端口号已经可以连入游戏了,互联网大厅内也能显示出服务器了
Require user verification必须为true,不然死活启动不了服务,不过前面即使改为true也是连不上,就当灵异事件吧~~

现在互联网大厅内已经能看到我的服务器,但是连不上,看了下游戏版本和服务器版本都对应,不知道是哪里的原因,家里是有公网IP的,端口也在路由器上做过映射了。











附日志:
14.617 Info ServerMultiplayerManager.cpp:705: Matching server connection resumed

14.610 Info MatchingServer.cpp:114: Matching server game `7317651` has been created.

5.250 Info ServerRouter.cpp:497: Own address is IP ADDR:({220.165.136.230:34197}) (confirmed by pingpong1)

5.233 Info ServerRouter.cpp:497: Own address is IP ADDR:({220.165.136.230:34197}) (confirmed by pingpong3)

5.215 Info ServerRouter.cpp:497: Own address is IP ADDR:({220.165.136.230:34197}) (confirmed by pingpong2)

4.979 Info Main.cpp:938: Maximum segment size = 100; minimum segment size = 25; maximum-segment-size peer count = 10; minimum-segment-size peer count = 20

4.979 Info RemoteCommandProcessor.cpp:131: Starting RCON interface at IP ADDR:({0.0.0.0:43081})

4.978 Info UDPSocket.cpp:39: Opening socket for broadcast

4.977 Info ServerRouter.cpp:618: Asking pingpong servers (pingpong1.factorio.com:34197, pingpong2.factorio.com:34197, pingpong3.factorio.com:34197, pingpong4.factorio.com:34197) for own address

4.087 Info ServerMultiplayerManager.cpp:776: updateTick(2082225) changing state from(CreatingGame) to(InGame)

4.087 Info AuthServerConnector.cpp:109: Obtained serverPadlock for serverHash (u7DD5NWDAHLLIra00u7Ff1mOXycP8tCq) from the auth server.

3.808 Info HttpSharedState.cpp:54: Downloading https://auth.factorio.com/generate-server-padlock-2

3.808 Hosting game at IP ADDR:({0.0.0.0:34197})

3.807 Info UDPSocket.cpp:27: Opening socket at (IP ADDR:({0.0.0.0:34197}))

3.803 Checksum for script /opt/factorio/temp/currently-playing/control.lua: 3265260072

3.709 Loading script.dat: 328 bytes.

3.055 Info Scenario.cpp:187: Map version 0.17.79-0

3.046 Loading level.dat: 12762511 bytes.

2.820 Loading map /opt/factorio/saves/20200414.zip: 5180192 bytes.

2.800 Info ServerMultiplayerManager.cpp:776: updateTick(4294967295) changing state from(PreparedToHostGame) to(CreatingGame)

2.800 Info ServerMultiplayerManager.cpp:776: updateTick(4294967295) changing state from(Ready) to(PreparedToHostGame)

2.800 Info ServerSynchronizer.cpp:30: nextHeartbeatSequenceNumber(0) initialized Synchronizer nextTickClosureTick(0).

2.798 Info AuthServerConnector.cpp:171: Got token from auth server for username(************).

1.316 Info HttpSharedState.cpp:54: Downloading https://auth.factorio.com/api-login?api_version=2

1.316 Error PlayerAccessList.cpp:187: Failed to load access list: Value must be a list or dictionary in property tree at ROOT

1.315 Factorio initialised

1.310 Info PlayerData.cpp:75: Cloud player-data.json unavailable

1.310 Info PlayerData.cpp:68: Local player-data.json available, timestamp 1588037858

1.229 Prototype list checksum: 2767119397

0.827 Checksum of base: 4156627525

0.827 Checksum for core: 2035938594

0.583 Loading mod base 0.17.79 (data-updates.lua)

0.135 Loading mod base 0.17.79 (data.lua)

0.019 Loading mod core 0.0.0 (data.lua)

0.014 Running in headless mode

0.014 Environment: DISPLAY=<unset> WAYLAND_DISPLAY=<unset> DESKTOP_SESSION=<unset> XDG_SESSION_DESKTOP=<unset> XDG_CURRENT_DESKTOP=<unset> __GL_FSAA_MODE=<unset> __GL_LOG_MAX_ANISO=<unset> __GL_SYNC_TO_VBLANK=<unset> __GL_SORT_FBCONFIGS=<unset> __GL_YIELD=<unset>

0.014 System info:

0.000 Binaries path: /opt/factorio/bin

0.000 Write data path: /opt/factorio

0.000 Read data path: /opt/factorio/data

0.000 Program arguments: "/opt/factorio/bin/x64/factorio" "--bind" "0.0.0.0" "--port" "34197" "--server-settings" "/opt/factorio/config/server-settings.json" "--rcon-port" "43081" "--rcon-password" <private> "--server-adminlist" "/opt/factorio/config/server-adminlist.json" "--start-server" "/opt/factorio/saves/20200414.zip"

0.000 Operating system: Linux

0.000 2020-04-28 01:38:10; Factorio 0.17.79 (build 47865, linux64, headless)


bickar 发表于 2020-4-30 00:38:35

本帖最后由 bickar 于 2020-4-30 00:44 编辑

工厂34197 UDP协议,路由里别映射成TCP了
我更苦逼,还不如你
裸连,经常报错,想刷出游戏列表需要很大耐心,
半夜成功率较高。


用UU加速器,搜游戏很快,进游戏网络延迟卡成一逼
感觉非要到国外转一圈,再回来

后来
我跟机油玩,都是微信告诉他们公网ip,然后服务器直连
+++++++++++++++++++++++++++++++++++++++++

最佳方案恐怕就得域名+云空间。

k6686389 发表于 2020-4-30 08:13:04

bickar 发表于 2020-4-30 00:38
工厂34197 UDP协议,路由里别映射成TCP了
我更苦逼,还不如你
裸连,经常报错,想刷出游戏列表需要很大耐心 ...

我路由映射是UDP没差,但是域名、直接游戏大厅连接,IP连接都连不上,我都给整懵逼了

k6686389 发表于 2020-5-2 08:42:48

bickar 发表于 2020-4-30 00:38
工厂34197 UDP协议,路由里别映射成TCP了
我更苦逼,还不如你
裸连,经常报错,想刷出游戏列表需要很大耐心 ...

已经搞定了~~
已经能顺利从互联网大厅进入游戏了。
容器网络那里,配置为使用与Docker Host相同的网络
然后在路由器中把34190~34200的端口都映射,就可以连上了,速度还不错~

q276574299 发表于 2020-5-2 16:26:43

牛皮啊!!!
页: [1]
查看完整版本: 求助在群晖上搭建《异星工场》服务器的方法