MarchSnow's Blog

如何在纯 IPv6 服务器上搭建 CS2 游戏服务器

字数统计: 1.3k阅读时长: 5 min
2026/05/26
loading

前言

近年来, 越来越多的云服务商开始提供纯 IPv6 VPS 或开始支持为服务器附加 IPv6 地址

原因很简单: IPv4 地址枯竭, IPv6 资源充裕且成本更低

纯 IPv6 VPS 通常价格非常便宜, 对于搭建私人游戏服务器来说, 成本优势明显

同时,隐藏在 IPv6 地址后的服务器也能有效降低遭受 DDoS 攻击的风险

然而现实是: 绝大多数游戏服务端并不原生支持纯 IPv6 连接, CS2 也不例外

因此, 我编写了一个名为 PortRelay 的轻量级端口代理工具

借助它, 可以在纯 IPv6 VPS 上运行 CS2 服务器, 并让未经任何修改的 CS2 客户端通过 IPv6 网络正常连接

架构概览

整体思路是: CS2 服务端只监听本机回环地址,由 PortRelay-Server 负责对外暴露 IPv6 接入点

玩家本地运行 PortRelay-Client, 在本机模拟出一个 CS2 服务器地址,流量通过 IPv6 隧道转发

1
2
3
4
5
6
7
8
9
10
11
12
13
CS2 客户端

↓ connect 127.0.0.1:27015

PortRelay-Client (本地)

↓ IPv6 隧道封包

PortRelay-Server (VPS [::]:9000)

↓ 解包转发

CS2 服务端 (VPS 127.0.0.1:27015)
角色 运行位置 说明
CS2 服务端 纯 IPv6 VPS 仅监听 127.0.0.1:27015,不直接暴露公网
PortRelay-Server 同一台 VPS 监听 [::]:9000, 将隧道流量转发到本地 CS2
PortRelay-Client 玩家本机 监听 127.0.0.1:27015, 通过 IPv6 与服务端建立隧道

准备工作

  • 一台纯 IPv6 VPS,用于运行 CS2 服务端和 PortRelay-Server
  • 玩家本机需要具备 IPv6 网络接入能力

Step 1: 在 VPS 上部署 CS2 服务端

CS2 专用服务器的安装流程本文不再赘述,你只需确保两点:

  1. CS2 服务端已正确安装并能正常启动

  2. 启动参数加入 -ip 127.0.0.1, 使其仅监听本地回环地址, 不直接对外暴露

Step 2: 在 VPS 上部署 PortRelay-Server

2.1 下载

Releases 下载对应平台的最新版本,解压到任意目录

你也可以 Fork 源码自行构建,需要 Go 1.24+

2.2 配置 PortRelay-Server

创建配置文件 server.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"name": "CS2-Tunnel 服务端",
"mode": "server",
"admin_passwd": "",
"listen_port": "9000",
"listen_protocol": "all",
"proxies": [
{
"name": "cs2-tunnel",
"type": "tunnel",
"service_target": "127.0.0.1:27015",
"allow_protocol": "all",
"passwd": "your-password"
}
]
}

关键字段说明:

字段 说明
listen_port 9000 对外监听端口,等待客户端接入
listen_protocol all 同时接受 TCP 和 UDP 连接
service_target 127.0.0.1:27015 转发目标: 本机 CS2 服务端
passwd 自定义 客户端连接时需携带相同密码

2.3 启动 PortRelay-Server

1
2
# 前台启动 (测试用)
./portrelay --config server.json

看到类似以下的日志表示服务端启动成功:

1
2
3
4
5
6
7
8
9
10
11
User@LinuxServer:~/portrelay$ ./portrelay-linux-amd64 
2026/05/26 21:10:19 PortRelay starting: name="CS2-Tunnel 服务端" mode=server proxies=1
2026/05/26 21:10:19 [Server] TCP listener started on :9000
2026/05/26 21:10:19 [Server] UDP listener started on :9000
2026/05/26 21:10:19 [Server] ========================================
2026/05/26 21:10:19 [Server] Config : "CS2-Tunnel 服务端"
2026/05/26 21:10:19 [Server] Listen port : 9000
2026/05/26 21:10:19 [Server] Transport : all
2026/05/26 21:10:19 [Server] Tunnels : 1
2026/05/26 21:10:19 [Server] - "cs2-tunnel" → 127.0.0.1:27015 (inner: all)
2026/05/26 21:10:19 [Server] ========================================

确认运行正常后,建议将其配置为 systemd 服务实现开机自启

Step 3: 配置玩家本地的 PortRelay-Client

3.1 下载

Releases 下载对应操作系统的版本

3.2 创建配置文件

新建 client.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"name": "CS2-Tunnel 客户端",
"mode": "client",
"proxies": [
{
"name": "cs2-tunnel",
"type": "tunnel",
"listen_protocol": "all",
"listen_local": "127.0.0.1:27015",
"server_ip": "[你的VPS的IPv6地址]:9000",
"server_passwd": "your-password",
"transport": "auto"
}
]
}
字段 说明
listen_local 127.0.0.1:27015 本地监听地址,CS2 直接 connect 此地址
server_ip [VPS IPv6]:9000 服务端的 IPv6 地址和端口
server_passwd 自定义 必须与服务端配置一致
transport auto 自动选择外层传输协议

3.3 启动 PortRelay-Client

1
./portrelay --config client.json

看到 Connected 日志即表示隧道建立成功:

1
2
2026/05/26 21:18:03 [Tunnel "cs2-tunnel"] Connected | server=[IPv6-Address]:9000 | transport=UDP | listen=all
2026/05/26 21:22:48 [Tunnel "cs2-tunnel"] New session | id=someid | mode=UDP-in-UDP | from=127.0.0.1:62769

保持该进程运行 (或配置为后台服务)

Step 4: 连接到服务器

打开 CS2,按 ~ 打开开发者控制台,输入:

1
connect 127.0.0.1:27015

CS2 会将流量发往本地 PortRelay-Client

PortRelay-Client 经 IPv6 隧道将数据包转发到 VPS 上的 CS2 服务端, 玩家无需感知任何中间层

总结

PortRelay 不止于此, 除了本文演示的 IPv4-over-IPv6 场景, 它还支持:

  • 将 UDP 流量封装在 TCP 隧道内传输 (或反之),在受限环境下改善连通性
  • 通过 Base64 编码的 JSON 配置直接传入 CLI 参数,便于第三方程序调用或二次封装
  • 内嵌至自定义客户端,充分利用廉价 IPv6 资源,同时保护服务端免受 DDoS 影响

如果你有任何问题或建议,欢迎在 GitHub 提出 issue

原文作者: MarchSnow

原文链接: https://blog.88889000.xyz/2026/tech/cs2-server-on-ipv6-only-vps/

发表日期: May 26th 2026, 21:03:25 UTC

更新日期: May 26th 2026, 13:59:02 UTC

Page Views: --

版权声明: Licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

CATALOG
  1. 1. 前言
  2. 2. 架构概览
  3. 3. 准备工作
  4. 4. Step 1: 在 VPS 上部署 CS2 服务端
  5. 5. Step 2: 在 VPS 上部署 PortRelay-Server
    1. 5.1. 2.1 下载
    2. 5.2. 2.2 配置 PortRelay-Server
    3. 5.3. 2.3 启动 PortRelay-Server
  6. 6. Step 3: 配置玩家本地的 PortRelay-Client
    1. 6.1. 3.1 下载
    2. 6.2. 3.2 创建配置文件
    3. 6.3. 3.3 启动 PortRelay-Client
  7. 7. Step 4: 连接到服务器
  8. 8. 总结