3个不稳定版本
0.6.0 | 2023年6月24日 |
---|---|
0.5.1 | 2022年9月18日 |
0.5.0 | 2022年9月18日 |
#28 in #game-server
每月40次下载
用于 ownserver
12KB
101 行
OwnServer
将您的本地游戏服务器暴露到互联网上。
此软件旨在最大限度地减少准备本地游戏服务器(如Minecraft、Factorio、RUST等)的成本和努力。
-
您将节省的费用
- 只要它们可以连接到互联网,您就可以利用任何冗余的计算资源用于游戏服务器。
- 您可以节省云、VPS的费用。
-
您将节省的努力
- 不需要防火墙、NAT设置。
- 还提供了GUI应用程序。
功能
- 将您的本地TCP/UDP端点暴露到互联网上
- 为Minecraft、factorio、RUST等游戏服务器提供GUI客户端
安装
推荐
通过 cargo 安装它
cargo install ownserver
如果您还没有安装cargo,请先安装 rustup
下载二进制文件
下载适用于您的操作系统的二进制文件
https://github.com/Kumassy/ownserver/releases
cargo build
可选地,您也可以自己构建ownserver
git clone https://github.com/Kumassy/ownserver.git
cd ownserver
cargo build --release
使用方法
⚠️ 此软件尚未达到稳定版本。请谨慎使用! ⚠️
我们还提供GUI。访问 ownserver-client-gui
% ownserver -h
ownserver 0.5.1
USAGE:
ownserver [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
--control-port <control-port> Advanced settings [default: 5000]
--local-port <local-port> Port of your local game server listens e.g.) 25565 for Minecraft [default:
3000]
--payload <payload> tcp or udp [default: tcp]
--token-server <token-server> Advanced settings [default: https://auth.ownserver.kumassy.com/v1/request_token]
# listen on local port
% nc -kl 3000
% ownserver --payload tcp --local-port 3000
Connecting to auth server: https://auth.ownserver.kumassy.com/v1/request_token
Your proxy server: shard-7924.ownserver.kumassy.com
Connecting to proxy server: shard-7924.ownserver.kumassy.com:5000
Your Client ID: client_755d0b36-f863-41e1-b5ff-c6c89fdb92a5
+---------------------------------------------------------------------------------------------------+
| Your server tcp://localhost:3000 is now available at tcp://shard-7924.ownserver.kumassy.com:17974 |
+---------------------------------------------------------------------------------------------------+
# you can send any TCP packet to local port!
% nc shard-7924.ownserver.kumassy.com 17974
hello
via cargo
% cargo run --release --bin ownserver -- -h
运行Minecraft服务器
# run minecraft server
java -Xmx1024M -Xms1024M -jar server.jar nogui
# run ownserver client
ownserver -- --payload tcp --local-port 25565
分享您的公共URL!
使用客户端API检查端点和流
您可以使用客户端API查询端点和流信息。
您需要指定本地端口以使用API
% ownserver --payload tcp --local-port 3000 --api-port 9000
% curl -s localhost:9000/endpoints
[{"id":"client_be38a93b-b7a9-46da-9d9d-51df95cad828","local_port":3000,"remote_addr":"shard-5346.ownserver.kumassy.com:13574"}]
% curl -s localhost:9000/streams
[{"id":"stream_24a3b5bb-336d-4b4e-baf3-7ef61bc1b78c"}]
工作原理
此应用程序在我们的服务器和您的本地游戏服务器之间创建了一个私有隧道。您将为您的服务器获得一个专用的全局公共地址。所有对该公共地址的请求都将通过隧道转发到您的本地游戏服务器。
类似项目
此软件最初是作为 tunnelto 的分支开发的。
贡献
项目布局
-
ownserver/ownserver
- 包含客户端应用程序的可执行文件
- 还提供用于ownserver-client-gui的库
-
ownserver/ownserver_lib
- 定义客户端和服务器之间的传输协议
-
ownserver/ownserver_server
- 建立到客户端的私有隧道
- 将公共端点的请求转发到一组客户端
-
- 执行用户身份验证和负载均衡
-
- ownserver 客户端 GUI
运行测试
cargo test
自托管
您需要部署 ownserver-auth。它向 ownserver 客户端颁发令牌。
首先,按照以下方式运行 ownserver-auth
cd ownserver-auth/
cargo run -- --token-secret supersecret --hosts localhost
- 为
--token-secret
生成安全的字符串。- 这是
ownserver-auth
和ownserver-server
之间共享的秘密。 ownserver_server
根据--token-secret
验证签名,以确保令牌是合法的。
- 这是
--hosts
是ownserver_server
的主机名列表。- 如果您部署了多个
ownserver_server
,请用逗号分隔ownserver_server
的主机名。
- 如果您部署了多个
然后,运行 ownserver_server
cd ownserver/
cargo run --bin ownserver-server -- --host localhost --remote-port-start 20000 --remote-port-end 30000 --log-file ./ownserver-server.log --token-secret supersecret
--host
是运行ownserver_server
的主机名。- 远程端口在
--remote-port-start
和--remote-port-end
之间选择 --log-file
是ownserver-server
日志文件的位置--token-secret
是ownserver-auth
和ownserver_server
之间的共享秘密。
现在,ownserver-server
可以接收来自 ownserver-client
的请求
cargo run --bin ownserver -- --payload tcp --local-port 3000 --token-server http://localhost:8123/v0/request_token
- 您应该指定
--token-server
以确保ownserver-client
使用您的本地ownserver-auth
发行/PR
请随时提出问题,发送拉取请求!
许可证
MIT
依赖关系
~1.7–2.6MB
~53K SLoC