1.安装WSL
从微软商店搜索 linux
设置WSL Ubuntu的默认用户为root
打开一个cmd,直接输入
Ubuntu config --default-user root
wsl --shutdown
wsl
然后就能以文件夹的方式修改上传文件。
安装.net6
https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0
新建 /home/dotnet目录 , 将下载好的 dotnet-sdk-6.0.417-linux-x64.tar.gz 复制过去
新建 /home/dotnet/.dotnet 目录,将文件解压缩进去,一种方法是右键解压缩,一种是
tar zxf "/home/dotnet/dotnet-sdk-6.0.417-linux-x64.tar.gz" -C "/home/dotnet/.dotnet"
然后打开 etc/profile ,先把文件复制到桌面,再编辑,再替换回去。
在文件末尾加入
export DOTNET_ROOT=/home/dotnet/.dotnet
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
然后重启WSL,在cmd中输入
wsl --shutdown
wsl
重启后在WSL控制台输入 dotnet ,检查是否成功.
查看WSL的IP地址
在WSL的控制台输入
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
2.打包ET-Server
修改配置文件
根据上面获得的IP地址去修改 ET\Unity\Assets\Config\Excel\StartConfig\Localhost\StartMachineConfig@s.xlsx
然后在Unity里点 ExcelExporter
这里的部署模式是 单机部署全部服务,所以这里只修改外网地址就行。
外网地址是为了让客户端连接,内网地址是为了让多台服务器之间在内网通信用的,可以避免被外网攻击。
修改路由地址
ConstValue.cs
这里只是测试用,如果想让软路由起到防御攻击的作用,
参考https://et-framework.cn/d/1019-etroutermanager
发布Linux版程序
在ET目录右键,在终端打开
然后输入
.\Publish-linux-x64.ps1
发布后的文件夹是 ET\Bin\linux-x64\publish
直接将 publish 文件夹复制到WSL的根目录
再将 ET\Config 也复制到WSL根目录
再复制 ET\Unity\Assets\Plugins\x86_64下的 libkcp.so 和 libRecastDll.so复制到publish文件夹里。否则一运行就报错。
运行App.dll
方法1
直接 dotnet publish/App.dll
缺点是一关闭控制台,程序就停止了
方法2
新建文件 ET.service
复制ET.service到 /usr/lib/systemd/system/
[Unit]
Description=ET Server
After=network.target
[Service]
Type=forking
ExecStart=/home/dotnet/.dotnet/dotnet /publish/App.dll
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
ExecStart 是执行的命令,前半段是你dotnet的路径,后半段是App.dll的路径
systemctl enable ET
systemctl start ET #开启服务
systemctl stop ET #关闭服务
systemctl status ET #服务状态
3.到这里应该就能运行了
引用
https://www.cnblogs.com/GreenLeaves/p/17833913.html
https://blog.csdn.net/xxj_jing/article/details/125926648
https://www.eyabc.cn/article/716.html