我有一台旧计算机,我将其转换为一个Minecraft服务器。我有2个同时运行的Minecraft服务器,一个在25565端口(默认),另一个在端口25566上。
我买了域some.com并将其指向我的服务器。现在,在游戏中你输入something.com进入第一台服务器和something.com:25566进入另一台服务器。
有没有办法将one.something.com设置为指向第一台服务器而将two.something.com设置为指向第二台服务器?我拥有(centos)服务器,具有root访问权限,以及其他所有内容。域名由no-ip控制,如果这有所不同。我知道DNS与端口号没有关系,但是如果有一个程序我可以安装以使其工作吗?
谢谢:)
答案 0 :(得分:69)
如果您有权访问SRV记录,则可以使用它们获得所需内容:)
E.G
A记录
Name: mc1.domain.com
Value: <yourIP>
Name: mc2.domain.com
Value: <yourIP>
SRV记录
Name: _minecraft._tcp.mc1.domain.com
Priority: 5
Weight: 5
Port: 25565
Value: mc1.domain.com
Name: _minecraft._tcp.mc2.domain.com
Priority: 5
Weight: 5
Port: 25566
Value: mc2.domain.com
然后在我的世界中你可以使用
mc1.domain.com,它将使用端口登录服务器1 25565
和
mc2.domain.com,它将使用端口登录服务器2 25566
然后在您的路由器上,您可以将它指向机器上的25565和25566,同时启用两个服务器和Voilà!
来源:这适用于我在同一台机器上运行2台Minecraft服务器,端口为50500和50501
答案 1 :(得分:9)
如果您在服务器上只有一个IP,则没有机会这样做。 DNS是数字(IP)解析器的简单名称。如果服务器上有两个IP,则可以将每个子域指向每个IP地址,并在每个IP的默认端口上运行两个服务器。
one.example.com - &gt; 127.0.0.1(服务器:127.0.0.1:25565)
two.example.com - &gt; 127.0.0.2(服务器:127.0.0.2:25565)
答案 2 :(得分:2)
我...不这么认为。您可以将子域重定向(例如blah.something.com
)以指向something.com:25566
,但我认为您实际上不能将子域设置为位于不同的端口上。我可能是错的,但使用简单的.htaccess或其他东西检查%{HTTP_HOST}并根据子域重定向可能会更容易。
答案 3 :(得分:1)
如果要在单个服务器中的不同端口上托管多个网站,那么MRVDOG提到的方法将不起作用。因为浏览器无法解析SRV记录,并且始终会命中:80
端口。
例如,如果您的要求是:
site1.domain.com maps to domain.com:8080
site2.domain.com maps to domain.com:8081
因为经常要充分利用已购买的服务器空间。 然后,您可以尝试以下操作:
步骤1: 安装代理服务器。我将在此处使用 Nginx 。
apt-get install nginx
步骤2:
编辑/etc/nginx/nginx.conf
文件以添加端口映射。为此,请添加以下行:
server {
listen 80;
server_name site1.domain.com;
location / {
proxy_pass http://localhost:8080;
}
}
server {
listen 80;
server_name site2.domain.com;
location / {
proxy_pass http://localhost:8081;
}
}
这很神奇。因此,该文件最终将如下所示:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
server {
listen 80;
server_name site1.domain.com;
location / {
proxy_pass http://localhost:8080;
}
}
server {
listen 80;
server_name site2.domain.com;
location / {
proxy_pass http://localhost:8081;
}
}
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
第3步: 启动nginx:
/etc/init.d/nginx start
。
无论何时对配置进行任何更改,都需要重新启动nginx:
/etc/init.d/nginx restart
最后: 不要忘记在DNS配置中添加 A记录。所有子域都应指向域。像这样:
输入静态IP而不是111.11.111.111
更多详细信息:
答案 4 :(得分:0)
如果注册商提供网址重定向记录,您可以将sub.domain.tld
重定向到domain.tld:subport
。这可能不会在Minecraft中产生预期的结果,但它适用于浏览器。
e.g。我分别在10000和20000上运行Webmin和Usermin,并使用webmin.domain.tld
和usermin.domain.tld
重定向到正确的端口,以便用户不必记住它们。
答案 5 :(得分:0)
只有1个IP,您可以忘记DNS,但可以使用MineProxy,因为客户端的握手数据包包含随后连接到的主机,并且MineProxy会准备好该主机并将连接代理到已注册的服务器那个主机
答案 6 :(得分:0)
如果你想使用 2 个子域到其他端口,你可以使用 Minecraft 的代理服务器(即 BungeeCord、Waterfall、Travertine...),并在 config.yml 服务器中将子域绑定到指定。 为此,您必须在 BungeeCord 的配置中设置您的服务器:
servers:
pvp:
motd: 'A Minecraft Server PVP'
address: localhost:25566
restricted: false
skyblock:
motd: 'A Minecraft Server SkyBlock'
address: localhost:25567
restricted: false
记住!端口必须不同于默认的 Minecraft 端口(即 25565),因为我们将使用这个端口作为我们的代理。 sub1.domain.com 和 sub2.domain.com 我们必须绑定到您拥有这些服务器的服务器。现在,我们必须在您的 Bungee 服务器中绑定子域:
listeners:
forced_hosts:
sub1.domain.com: pvp
sub2.domain.com: skyblock
domain.com: pvp // You can bind other domains to same servers.
记得把force_default_server改成true,把host改成0.0.0.0:25565 带有一些服务器的 BungeeCord 的 config.yml 示例:https://pastebin.com/tA9ktZ6f 现在您可以在 sub1.domain.com 上连接到您的 pvp 服务器并在 sub2.domain.com 上连接到 skyblock。别担心,BungeeCord 只需 0.5GB 的 RAM 即可供 500 个玩家使用。