在有 VPN 的局域网环境直接通过 IP 联机 Assetto Corsa (神力科莎)
这是一篇简短的记录型文章,适用场景是:希望在一个由 VPN 建立的局域网的情况下通过 LAN 联机 Assetto Corsa (神力科莎)。
最近由于贴上贴纸之后跑圈太快了(https://twitter.com/n0vad3v/status/1451831371664543746),导致某个同事要来挑战我,于是第一反应就是,来嘛,搞一把!
在通过 Nova-China-Overlay-Network(一个走 Wireguard 的大内网)让同事连入家里内网之后,同事的电脑已经可以 ping 通我家里的网段了(同事住所网段:192.168.1.0/24,我家里网段:192.168.2.0/24),他的 Wireguard 配置类似如下:
[Interface]
Address = 10.0.0.200/24
ListenPort = 51820
PrivateKey = INoxxxxxxxxxxxxxxxxxxxxxxxxxBWw=
[Peer]
PublicKey = w+g1uxxxxxxxxxxxxxxxxxxxxxxxxxuSYyo=
Endpoint = nova-china-network.xxxxxx.network:51820
AllowedIPs = 10.0.0.1/32, 192.168.2.0/24
PersistentKeepalive = 15
但是在正常启动 Assetto Corsa 之后发现 LAN 中根本没法看到我这边架设起来的服务器,于是盲猜——Assetto Corsa 可能是只扫描的网卡段,没法正确识别可路由段导致的,比如在这个场景下它只扫描了 192.168.1.0/24,而不知道 192.168.2.0/24 的可达性。
这种问题之前在联机 ARMA3 时也有遇到,但是 ARMA3 给出了解决方案——Direct Connect,直接输入对方 IP 进行访问,作为自己扫描器不足的一个 workaround,但是 Assetto Corsa 并不这么认为,并且不给一个简单的 Direct Connect 的方式,这就很愚蠢了…
解决方式
- 确认 VPN 已经联通(可以 ping 服务器 IP)
- 找到 AssettoCorsa.exe 并创建一个快捷方式,比如丢在桌面,然后在 Target(目标)后面加入
/spawn
,类似这样:"C:\Program Files (x86)\Steam\steamapps\common\assettocorsa\AssettoCorsa.exe" /spawn
- 在自己用户的「Documents(文档)」目录下找到
race.ini
文件,一般来说路径是这样的:C:\Users\Nova\Documents\Assetto Corsa\cfg\race.ini
,并且注意文件内部的[REMOTE]
的部分,改为以下:
[REMOTE]
SERVER_IP=192.168.2.44
SERVER_PORT=9600
SERVER_NAME=NKW Server
SERVER_HTTP_PORT=8081
REQUESTED_CAR=bmw_z4_gt3
NAME=Nova
TEAM=
PASSWORD=somepassword
GUID=999999999999999
ACTIVE=1
[AUTOSPAWN]
ACTIVE=1
其中,SERVER_IP
是服务器 IP,SERVER_PORT
默认是 9600,PASSWORD
需要和 NAME
需要手动设置一下,REQUESTED_CAR
这个车辆代码可以在游戏目录下 content\cars
目录下找到(文件夹名字就是车的名字)。
- 然后点桌面快捷方式直接启动即可,这个时候会直接进入游戏并连接上服务器(不会有任何菜单等)
提示:每次关闭游戏后 [AUTOSPAWN]
和 [REMOTE]
下的 ACTIVE 会变成 ACTIVE=0
,每次启动前需要手动修改为 1.
开冲!