轻松搭建自己的 FiveM 服务器,与好友联机

这篇文章是 2018 年写的,至今已经过去好几年了,以下内容已经完全跟不上最新版 FiveM,因此建议直接阅读我在论坛上的最新开服教程:https://fivembbs.net/d/51-fivem-windows-202203

好久没写博文了,今天来更新一下。

FiveM 相信大家可能已经有所了解,这是一个非官方的联机 Mod,它允许你开一个私人的 GTA5 服务器。 话不多说,我们进入正题,一起来看看如何搭建一个 FiveM 服务器。

本文以 Windows 服务器开服作为示例,但是我本人是推荐用 Linux 开服的,有空我再出一篇 Linux 开服教程。

很重要的一点,请备好梯子(VPN、SSR 等),最后有一个步骤需要用到!

一、准备环境

首先你需要准备一个 Windows 的 VPS 或者自己的电脑,推荐 Win7 以上,不建议用 XP、Server 2003 等老系统开服。

然后安装好 VC++ 2017 运行环境:https://go.microsoft.com/fwlink/?LinkId=746572

找一个地方,不要是中文名称的目录,新建一个文件夹,名字是英文即可,例如“GTA5_Server”

二、下载服务端

从这里下载一个服务端:https://runtime.fivem.net/artifacts/fivem/build_server_windows/master/

默认是按照日期倒序排列的,选择最后构建的一个版本即可。

下载完,得到一个 Server.zip,打开以后内容大概如下

选中所有的文件,解压到刚刚我们创建的“GTA5_Server”文件夹

下载服务端资源数据文件:https://github.com/citizenfx/cfx-server-data/archive/master.zip

下载慢可以从本站的 CDN 下载(不保证实时更新):https://cdn.zerodream.net/assets/cfx-server-data-master.zip

下载完后打开,将里面的 resources 文件夹解压到刚刚创建的“GTA5_Server”文件夹。


三、配置服务端

在“GTA5_Server”文件夹里右键,新建文本文档,改名为 server.cfg,小白用户请记得打开“显示文件扩展名”,具体操作方法可以百度。

编辑 server.cfg,输入以下内容

# 此处定义了服务器的运行端口
# 如果你想修改端口,请将 30120 替换为你想要的端口即可
endpoint_add_tcp “0.0.0.0:30120”
endpoint_add_udp “0.0.0.0:30120”

# 这些是服务器的插件,默认会启动
start mapmanager
start chat
start spawnmanager
start sessionmanager
start fivem
start hardcap
start rconlog
start scoreboard
start playernames

# 这个选项允许你的玩家使用基于 ScriptHook 的插件,例如 Menyoo 等
# 设置为 0 将会禁止使用了 ScriptHook 插件的玩家进入服务器
sv_scriptHookAllowed 1

# 取消注释这一行将会启用服务器的 RCON 功能(Rcon 是一种远程管理服务器的功能)
#rcon_password your_password

# 此处是设置服务器标签的地方,这将会在服务器列表上起作用
# 设置合理的 Tag 可以增大你的服务器被其他人搜索到的几率
# 使用英文逗号分开每个关键字,例如
# – sets tags “角色扮演,漂移,生存战争,自定义车辆”
sets tags “default”

# 一个可选的选项,用于给你的服务器增加一个介绍图片,将会显示在服务器详情页以及连接中的提示框上方
# 推荐大小为 1920 * 400 的图片,在游戏里会显示的比较宽。
#sets banner_detail “http://url.to/image.png”
#sets banner_connecting “http://url.to/image.png”

# 设置你的服务器名字,将会显示在服务器列表,使用 ^ 加上一个数字来改变颜色,例如 ^3我是彩色的^3
sv_hostname “[GTA5] Test Server”

# 配置文件支持嵌套
#exec server_internal.cfg

# 加载服务器的图标,大小必须是 96×96
#load_server_icon myLogo.png

# 设置一个变量,可以在插件中使用(没啥卵用)
set temp_convar “hey world!”

# 取消注释这一行就可以让玩家搜索不到你的服务器
#sv_master1 “”

# 你可以设置只允许来自指定第三方验证平台的玩家进入,例如 Steam
# 不要忘了 Social Club 也是第三方验证平台
#sv_authMaxVariance 1
#sv_authMinTrust 5

# 设置服务器管理员
add_ace group.admin command allow # 允许所有命令
add_ace group.admin command.quit deny # 但是禁止 quit 命令(示例)
add_principal identifier.steam:110000112345678 group.admin # 将管理员添加到用户组 admin(steam:110000112345678 是你的用户身份 ID)

# 这个应该是在日志中隐藏用户的信息
sv_endpointprivacy true

# 服务器最大玩家数量(最新的服务端已支持最大 64 个玩家)
sv_maxclients 32

# 服务器的授权码(在 https://keymaster.fivem.net 申请)
sv_licenseKey your_licence_key

我们现在需要申请一个服务器的授权码,打开 https://keymaster.fivem.net

提示需要登录,点击 sign in,接下来就是正常的注册、验证邮件、登录流程。

注册完、登录后,来到这个界面,点击这里申请一个 Key

按照下面的说明填写信息

服务器类型可以随便选择,一般选 VPS 就可以了。

这里的 Captcha 验证码,国内是无法直接显示的,因为众所周知的 GFW,因此你需要 SSR 或者 VPN 才能显示出来。

最后点击 Generate 即可生成一个 Key。

复制这个 Key,回到你的 server.cfg,修改 sv_licenseKey(最后一行)的 your_licence_key 为你刚刚复制的 Key,然后保存配置文件。

四、运行服务端

在“GTA5_Server”文件夹中按住 Shift + 鼠标右键,此时你的右键菜单会多出一个(在此处打开命令提示符窗口)的选项,Windows 10 下是 PowerShell,都一样。

在新打开的窗口输入 .\run.cmd +exec server.cfg(如果是 PowerShell 需要先输入 cmd 然后回车,接着再输入命令启动)

此时服务器就开始运行了

至此,一个服务器就开好了,这时候你就可以打开 FiveM 客户端,点击 Direct Connect,输入你的服务器IP连接了。

如果你修改了服务器的端口(改成了非 30120 的端口)那么你需要在地址后面加上 :端口

五、端口映射

如果你是用 VPS、独立服务器开服的用户,那么你可以直接跳过这一步开始玩了。

如果你是家用电脑开服,想和其他人一起玩,那么请接着看这一部分。

首先,打开 Sakura Frp(https://www.natfrp.org/),如果已有账号可以直接登录,没有的话注册一个即可。

Sakura Frp 已经不再由本人经营,以下教程可能不再适用,可改用 16Lab 内网穿透

登陆后点击左侧“映射列表”,然后按照下面的格式填写

点击添加即可,然后再添加一个,隧道类型选择 UDP 映射,其他项和上面一样。

然后下载 Sakura Frp 客户端,点击左侧“客户软件”,选择适合你的操作系统的版本

不知道你的电脑多少位的选 32 位即可。

下载完后运行客户端,输入账号密码登录,登录之后选择一个服务器,输入数字 ID 即可

最后,将右侧括号内的地址复制给你的朋友,让他们启动 FiveM,点击 Direct Connect,输入这个地址就可以连接了。

感谢阅读,如果有不懂的地方欢迎评论区提问

79 条评论

  1. 林承毅

    請問哪個地方可以把伺服器的名稱更改成中文呢?

    回复
    1. KasuganoSora 作者

      进入 resource 文件夹,新建一个 clientname 文件夹,然后进入里面,再新建一个文本文档,命名为 client.lua,编辑它,输入内容

      Citizen.CreateThread(function()
        AddTextEntry('FE_THDR_GTAO', '服务器名字')
      end)
      function AddTextEntry(key, value)
              Citizen.InvokeNative(GetHashKey("ADD_TEXT_ENTRY"), key, value)
      end
      

      然后再新建一个 __resource.lua,里面输入内容

      resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937'
      client_script 'client.lua'
      

      最后,在 server.cfg 里加一行

      start clientname
      

      就可以了

      回复
  2. 林承毅

    請問申請鑰匙的server ip是打第一行端口的數字嗎?

    回复
    1. KasuganoSora 作者

      FiveM 应该是没有中文的,如果你说的是游戏的话,可以试下这个
      在开始菜单,找到命令提示符,右键以管理员身份运行,输入下面的命令:

      reg add "HKLM\SOFTWARE\WOW6432Node\Rockstar Games\Grand Theft Auto V" /v Language /t REG_SZ /d zh-CHT /f
      回复
  3. 莊皓宇

    在“GTA5_Server”文件夾中按住Shift + 鼠標右鍵,此時你的右鍵菜單會多出一個(在此處打開命令提示符窗口)的選項,Windows 10 下是PowerShell,都一樣。

    在新打開的窗口輸入 .\run.cmd +exec server.cfg
    我打完這串字 顯示PS C:\GTA SEVER> .\run.cmd +exec server.cfg
    ‘C:\GTA’ 不是內部或外部命令、可執行的程式或批次檔。

    回复
    1. KasuganoSora 作者

      C:\GTA SERVER\ 目录名字包含空格,你把它重命名一下,把空格替换为 _ 或者其他符号就可以了。

      回复
  4. 莊皓宇

    .\run.cmd +exec server.cfg
    我卡在這裡
    他會顯示’C:\Users\HaoYu\OneDrive\桌面\GTA’ 不是內部或外部命令、可執行的程式或批次檔。

    回复
    1. KasuganoSora 作者

      检查一下文件夹名字是不是有空格,或者包含中文,如果可以的话发一下截图

      回复
    1. KasuganoSora 作者

      可能是你的 IP 地址和你申请时填写的不一样,不过我试过了好像没这个限制,你可以发一下英文报错内容我看看

      回复
  5. 小軒

    No such config file: server.cfg
    GlobalError: This server does not have a license key specified. Please set the sv_licenseKey console variable to a key from https://keymaster.fivem.net/. (for example, `set sv_licenseKey “key”` in the config, or `+set sv_licenseKey key` on the command line)
    Resolved live-internal.fivem.net:30110 to 178.32.9.100:30110

    沒有這樣的配置文件:server.cfg
    GlobalError:此服務器未指定許可證密鑰。請將sv_licenseKey控制台變量設置為來自https://keymaster.fivem.net/的密鑰。 (例如,配置中的`set sv_licenseKey“key”,或命令行上的`+ set sv_licenseKey key`)
    已解決live-internal.fivem.net:30110至178.32.9.100:30110

    我有server.cfg檔案求解

    回复
    1. KasuganoSora 作者

      请检查一下你的 server.cfg 是不是放错位置了,不要放到 resources 目录里,可以先输入 ls -lah 命令查看当前目录下的所有文件,检查下有没有 server.cfg

      回复
    2. KasuganoSora 作者

      哦对了,忘记了是 Windows,你看下你的 server.cfg 放在哪里了,可能是放到 resources 里面去了所以找不到。

      回复
    1. KasuganoSora 作者

      网站上配置好了映射吗?如果没有的话需要先做好映射。
      当然也有可能是没有成功连接上服务器,可以稍等一下重试或者修改 hosts,设置:

      
      115.238.185.30 frp.tcotp.cn
      
      回复
  6. 給我一支菸

    KasuganoSora

    你好 我照你的方法 開的差不多了
    不過 在FiveM 客戶端

    找不到遊戲呢

    FiveM 客戶端 的 IP 是我電腦的IP嗎?

    回复
    1. KasuganoSora 作者

      如果你是本地开服的话,需要添加端口映射,具体参考最后一章操作。
      你自己电脑连接游戏可以使用 localhost:30120 进入

      回复
  7. handsome_tim

    樓主大大您好,請問我是在自家用另一台電腦當SERVER,然後我用自己的電腦玩,是在同一個對外的固定IP,這樣有需要設定端口映射嗎??因為我用好後開FiveM都找不到我的SERVER…謝謝摟!!

    回复
    1. KasuganoSora 作者

      如果是在同一个局域网内,你可以在另一台电脑输入你开 FiveM 服务器电脑的 IP,就可以直接连接(点 Direct Connect 就行)。如果不在同一个局域网,就需要内网穿透。

      回复
  8. 0938605032

    該服務器未指定許可證密鑰。請設定
    sv licenseKey控制台變量到來自的密鑰
    http://keymaster.fivem.net/。 (例如,設置sv許可證密鑰“ key”
    在配置中,或+ set sv licenseKey鍵
    在命令行上)

    回复
  9. 黃大東

    在“GTA5_Server”文件夾中按住Shift + 鼠標右鍵,此時你的右鍵菜單會多出一個(在此處打開命令提示符窗口)的選項,Windows 10 下是PowerShell,都一樣。

    在新打開的窗口輸入 .\run.cmd +exec server.cfg
    我輸入後沒有開始執行 只讓我重複輸入 但都沒反應
    PS C:\GTARP\GTA5_server> .\run.cmd +exec server.cfg
    PS C:\GTARP\GTA5_server> .\run.cmd +exec server.cfg
    PS C:\GTARP\GTA5_server> .\run.cmd +exec server.cfg
    PS C:\GTARP\GTA5_server> .\run.cmd +exec server.cfg
    PS C:\GTARP\GTA5_server>

    回复
  10. litsou

    Authenticating with Nucleus…
    server thread hitch warning: timer interval of 2014 milliseconds
    fff
    cccc ff xx xx rr rr eee
    cc ffff xx rrr r ee e
    cc ff xx … rr eeeee
    ccccc ff xx xx … rr eeeee

    Authenticated with cfx.re Nucleus: https://-lit-xlkxg5.cfx.re/
    Sending heartbeat to live-internal.fivem.net:30110
    出現這個是怎麼了?我也找不到我的伺服器

    回复
    1. KasuganoSora 作者

      服务器列表里并不会立刻显示出来,需要在 Direct Connect 里面手动输入 IP 连接

      回复
  11. 阿翰

    請問?
    file:///C:/Users/HOME/Pictures/Screenshots/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%20(5).png
    不會跑?

    回复
  12. Fei

    卡在第四步 輸入後它都說./run.cmd無法辨識

    回复
      1. Fei

        現在變成‘.\run.cmd‘不是內部或外部命令、可執行的程式或批次檔

        回复
    1. Fei

      已確定server.cfg沒有放錯地方 檔名也無空格 謝謝你🙏

      回复
      1. 帝枫

        https://z3.ax1x.com/2021/04/21/cqlZd0.png
        您好卡在这步了,
        在“GTA5_Server”文件夾中按住Shift + 鼠標右鍵,此時你的右鍵菜單會多出一個(在此處打開命令提示符窗口)的選項,Windows 10 下是PowerShell,都一樣。

        在新打開的窗口輸入 .\run.cmd +exec server.cfg
        我打完這串字 顯示PS C:\GTA SEVER> .\run.cmd +exec server.cfg
        ‘C:\GTA’ 不是內部或外部命令、可執行的程式或批次檔

        回复
          1. 帝枫

            PS D:\GTA5_Server> run.cmd +exec server.cfg
            run.cmd : 无法将“run.cmd”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路
            径正确,然后再试一次。
            所在位置 行:1 字符: 1
            + run.cmd +exec server.cfg
            + ~~~~~~~
            + CategoryInfo : ObjectNotFound: (run.cmd:String) [], CommandNotFoundException
            + FullyQualifiedErrorId : CommandNotFoundException

            PS D:\GTA5_Server>

  13. 帝枫

    https://imgtu.com/i/cvasmt
    PS D:\GTA5_Server> run.cmd +exec server.cfg
    run.cmd : 无法将“run.cmd”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路
    径正确,然后再试一次。
    所在位置 行:1 字符: 1
    + run.cmd +exec server.cfg
    + ~~~~~~~
    + CategoryInfo : ObjectNotFound: (run.cmd:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

    PS D:\GTA5_Server>

    回复
  14. qaq

    都没问题 但是进服的时候一直卡在 Awaiting scripts是怎么回事

    回复
  15. CTC

    我卡在
    四、运行服务端 那邊
    我輸入.\run.cmd +exec server.cfg不能用

    回复
  16. Jnt

    请问如果伺服器被恶意攻击
    哪里能找到做防的专家 或者有没有其他方法防御?
    楼主帮帮忙🥺救命

    回复
  17. 帝枫

    楼主,请问用自己电脑开服,有公网IP。应该怎么操作

    回复
    1. KasuganoSora 作者

      照着教程直接开服就行了,开完了以后进路由器设置端口转发,把 30120 的 TCP 和 UDP 转发到你自己的电脑上

      回复
  18. mio

    他那个要输入静态ip那动态ip地址怎么办楼主

    回复
    1. KasuganoSora 作者

      你只要输入你当前的外网 IP 就行了,它只在你第一次启动服务器的时候验证 IP,以后都不需要再次验证。

      回复
  19. mio

    那官网给的那个傻瓜式安装跟这个有区别吗

    回复
  20. aka

    用内网穿透的这种方法,1mb/s网络流量限制,最大能支持多少人同时在线

    回复

回复 aka 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注