在之前的教程里,我介绍了Nginx Proxy Manager和如何用域名代替ip连接Minecratf服务器,乍一看这俩和没什么关系,但实际上确实没什么关系😜
但是,今天的教程是为之前的域名连接服务器做补充的,还记得我之前说”如果端口不是25565,等我后面出教程“吗?没错,就是这里
先说一下我们的目标:在端口不是25565的情况下仍然只用域名不接端口连接
搭建原因
- 为什么不直接用Nginx Proxy Manager反代呢?因为Nginx Proxy Manager只能提供http/https的反代,多用于网站方面,而Minecraft服务器是TCP协议,不支持http或https,搭建后可能无法使用,哪怕可以使用,也可能会增加延迟
- Nginx Proxy Manager和Nginx的区别?这俩差不多是一个东西,只是Nginx Proxy Manager不支持TCP等,而Nginx支持
教程开始
首先安装Nginx,安装了Nginx Proxy Manager不代表安装了Nginx
Ubuntu
curl https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
echo "deb https://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
sudo apt update
sudo apt install nginx
检测是否带stream模块
nginx -V 2>&1 | grep -- '--with-stream'
Debian
sudo apt remove nginx nginx-common nginx-core -y
curl https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
echo "deb-src http://nginx.org/packages/debian `lsb_release -cs` nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.list
sudo apt update
sudo apt install nginx
检测,确认带有--with-stream
nginx -V | grep stream
CentOS(我没有CentOS服务器,自测)
sudo yum remove nginx
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://nginx.org/packages/centos/nginx.repo
sudo yum install nginx
同样检测
nginx -V 2>&1 | grep -- '--with-stream'
配置
Nginx主配置在/etc/nginx/nginx.conf,在http{}块外新增stream{}块,例如:
还是以12345端口为例
stream {
server {
listen 25565; # 监听本机25565端口,原因在下面
proxy_pass ip:12345; # 转发到Minecraft服务器
proxy_timeout 300s;
proxy_connect_timeout 10s;
}
}
测试配置
nginx -t
无错误后重启Nginx:
systemctl reload nginx
记得开放服务器端口
一个错误(我tm搞了好久)
bind() to 0.0.0.0:80 failed (98: Address already in use)
这是由于80端口被占用,无法启动,是因为之前搭建的Nginx Proxy Manager的问题,占用了80、443和81端口,如果还用就改端口,不用就停止
sudo lsof -i :80
sudo systemctl stop 服务名
sudo systemctl start nginx
关于为什么还是监听25565端口
之前提到过,Minecraft服务器默认是连接25565端口,这个是无法改变的,所以必须监听25565端口,否则域名后面还是要接端口
所以,与其搞这个,倒不如就用25565端口,反正监听也要用的,服务器端口是什么都不重要了,也是直接连域名,不输端口
现在还没有又不用25565端口又不用单独加端口的方法,就像网站一样,直接输域名都是连接80或443,用其它端口都是要单独加的!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



暂无评论内容