<!-- 
RSS generated by JIRA (9.12.2#9120002-sha1:301bf498dd45d800842af0b84230f1bb58606c13) at Sat Jan 11 07:16:32 UTC 2025

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Mojang Studios Jira</title>
    <link>https://bugs.mojang.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en</language>    <build-info>
        <version>9.12.2</version>
        <build-number>9120002</build-number>
        <build-date>10-01-2024</build-date>
    </build-info>


<item>
            <title>[BDS-1094] Additional IPv4 and IPv6 port opening upon starting server</title>
                <link>https://bugs.mojang.com/browse/BDS-1094</link>
                <project id="11700" key="BDS">Bedrock Dedicated Server</project>
                    <description>&lt;p&gt;Upon starting my server, additional and unspecified IPv4 and IPv6 ports were opened. I have specified and forwarded the default IPv6 port and a chosen IPv4 port. Two additional ports opened; one being default IPv4, but the IPv6 was chosen at random.&lt;/p&gt;</description>
                <environment>Using BDS 1.12.0.28</environment>
        <key id="249803">BDS-1094</key>
            <summary>Additional IPv4 and IPv6 port opening upon starting server</summary>
                <type id="1" iconUrl="https://bugs.mojang.com/secure/viewavatar?size=xsmall&amp;avatarId=18903&amp;avatarType=issuetype">Bug</type>
                                    <status id="5" iconUrl="https://bugs.mojang.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="SlR0NA">Rebecca Reed</reporter>
                        <labels>
                    </labels>
                <created>Wed, 10 Jul 2019 23:19:52 +0200</created>
                <updated>Sat, 3 Dec 2022 21:39:00 +0100</updated>
                            <resolved>Sat, 3 Dec 2022 21:39:00 +0100</resolved>
                                    <version>1.17.10</version>
                    <version>1.8.1.2</version>
                    <version>1.14.32.1</version>
                    <version>1.14.60</version>
                    <version>1.16.201.03 Hotfix</version>
                    <version>1.16.220</version>
                                    <fixVersion>1.19.50</fixVersion>
                                            <votes>30</votes>
                                    <watches>20</watches>
                                                                            <comments>
                            <comment id="1208365" author="av.romann" created="Fri, 28 Oct 2022 16:30:32 +0200"  >&lt;p&gt;it appears preview 1.19.50 has code intended to resolve this issue by allowing the disabling of LAN Discovery for server instances:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Added server property &apos;enable-lan-visibility&apos; to disable the explicit LAN discovery by clients. This will prevent unexpected port conflicts when running multiple dedicated servers on a single host. Clarified port use in server logs and made error messaging more clear (&lt;a href=&quot;https://bugs.mojang.com/browse/BDS-1094&quot; title=&quot;Additional IPv4 and IPv6 port opening upon starting server&quot; class=&quot;issue-link&quot; data-issue-key=&quot;BDS-1094&quot;&gt;&lt;del&gt;BDS-1094&lt;/del&gt;&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;What&apos;s curious is that there is a new BDS server log message in 1.19.40.02 related to this feature, but the flag doesn&apos;t work in that release:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-10-29 00:01:04:304 INFO&amp;#93;&lt;/span&gt; Server started.&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-10-29 00:01:04:537 INFO&amp;#93;&lt;/span&gt; Please note that LAN discovery will not function for this server.&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-10-29 00:01:04:537 INFO&amp;#93;&lt;/span&gt; Server IP must be specified in Servers tab in game.&#160;&lt;/p&gt;</comment>
                            <comment id="1147103" author="loranger" created="Sat, 12 Mar 2022 10:58:20 +0100"  >&lt;p&gt;This still affect 1.18.12.01&lt;/p&gt;

&lt;p&gt;Can we have an ETA on this old but blocking port issue ?&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-03-12 09:49:26:096 INFO&amp;#93;&lt;/span&gt; Starting Server&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-03-12 09:49:26:096 INFO&amp;#93;&lt;/span&gt; Version 1.18.12.01&lt;br/&gt;
...&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-03-12 09:49:27:642 INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 19134&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-03-12 09:49:27:642 INFO&amp;#93;&lt;/span&gt; IPv6 not supported&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-03-12 09:49:27:927 INFO&amp;#93;&lt;/span&gt; Server started.&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-03-12 09:49:27:944 INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 19132&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-03-12 09:49:27:944 INFO&amp;#93;&lt;/span&gt; IPv6 not supported&lt;/p&gt;</comment>
                            <comment id="1140509" author="JIRAUSER559342" created="Thu, 10 Feb 2022 11:22:58 +0100"  >&lt;p&gt;This still affects 1.18.11.01&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-02-10 11:21:46:646 INFO&amp;#93;&lt;/span&gt; Starting Server&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-02-10 11:21:46:646 INFO&amp;#93;&lt;/span&gt; Version 1.18.11.01&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;...&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-02-10 11:21:50:547 INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 12794&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-02-10 11:21:50:547 INFO&amp;#93;&lt;/span&gt; IPv6 supported, port: 12795&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-02-10 11:21:50:981 INFO&amp;#93;&lt;/span&gt; Server started.&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-02-10 11:21:51:165 INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 19132&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2022-02-10 11:21:51:165 INFO&amp;#93;&lt;/span&gt; IPv6 supported, port: 19133&lt;/tt&gt;&lt;/p&gt;</comment>
                            <comment id="1135720" author="JIRAUSER677094" created="Fri, 14 Jan 2022 15:07:49 +0100"  >&lt;p&gt;Try update your BDS Vision&lt;/p&gt;</comment>
                            <comment id="1122347" author="JIRAUSER559342" created="Mon, 6 Dec 2021 21:04:18 +0100"  >&lt;p&gt;This still affects 1.18.0.02&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-12-06 21:03:24:701 INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 12794&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-12-06 21:03:24:701 INFO&amp;#93;&lt;/span&gt; IPv6 supported, port: 12795&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-12-06 21:03:25:123 INFO&amp;#93;&lt;/span&gt; Server started.&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-12-06 21:03:25:346 INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 19132&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-12-06 21:03:25:346 INFO&amp;#93;&lt;/span&gt; IPv6 supported, port: 19133&lt;/tt&gt;&lt;/p&gt;</comment>
                            <comment id="1055513" author="JIRAUSER677680" created="Mon, 16 Aug 2021 13:57:49 +0200"  >&lt;p&gt;Still the problem in v1.17.11.01&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15 INFO&amp;#93;&lt;/span&gt; Starting Server&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15 INFO&amp;#93;&lt;/span&gt; Version 1.17.11.01&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15 INFO&amp;#93;&lt;/span&gt; Session ID 9876543-cccc-bbbb-aaaa-123456789&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15 INFO&amp;#93;&lt;/span&gt; Level Name: reiWelt&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15 INFO&amp;#93;&lt;/span&gt; Game mode: 1 Creative&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15 INFO&amp;#93;&lt;/span&gt; Difficulty: 0 PEACEFUL&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:15&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; opening worlds/worldName/db&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:16&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 19332&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:16&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; IPv6 supported, port: 19333&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:16&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 35776&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:16&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; IPv6 supported, port: 33455&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2021-08-16 04:01:16&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; Server started.&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="1044257" author="dkf0x0" created="Fri, 23 Jul 2021 17:43:49 +0200"  >&lt;p&gt;Correct, that&apos;s the conclusion that we&apos;ve come to...&lt;/p&gt;

&lt;p&gt;The first server that you start, no matter which ports you choose, will always open up on UDP:19132/19133 because these are the ports that are used for game discovery on the local network.&#160; You have no choice.&lt;/p&gt;

&lt;p&gt;You can block them with a firewall &lt;span class=&quot;error&quot;&gt;&amp;#91;if you like&amp;#93;&lt;/span&gt; and it just means that you won&apos;t be able to discover the game automatically through the client - you&apos;ll need to specificy the IP:port in the &quot;custom server&quot; screen.&lt;/p&gt;

&lt;p&gt;If you are hosting multiple servers on your system (like I do) and you do want ONE of them to be auto-discoverable, you must start that instance before any others (so it grabs the ports).&lt;/p&gt;

&lt;p&gt;Unfortunately, there really is no way to work around this... bedrock server has no &quot;server-ip&quot; config (like Java edition did) to force binding to a single IP (ie - if your server had a bunch of VIPs, one for each server instance).&lt;/p&gt;

&lt;p&gt;In java edition, you could specify&#160;&quot;server-ip=10.1.1.10&quot; ; but bedrock forces a bind of the port to 0.0.0.0.&lt;/p&gt;

&lt;p&gt;From a product perspective, a&#160;better solution for this would be to have a registry process (which is independent from the server) listen on those ports and then have the mc servers register their existence with the that port at startup.&#160; However, having not seen the code, I suspect that would be an architectural change and my guess is that the client only expects to have a single server per host.&#160; It would also open up some security issues/concerns if that registry process didn&apos;t do some kind of IP authentication before accepting the record.&lt;/p&gt;

&lt;p&gt;However, at the end of the day, not that many people have participated in this thread and highlighted it as an issue.&#160; My guess is that the PM/Dev team have marked this as &quot;low priority - do not fix&quot; because it will not end in global thermonuclear meltdown, and it&apos;s really only inconveniencing a few of us.&lt;/p&gt;</comment>
                            <comment id="1043290" author="canadiansquatch" created="Wed, 21 Jul 2021 22:37:57 +0200"  >&lt;p&gt;Still having two of each IPv4 and IPv6 opening up on version:&#160;1.17.10.04&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 21212. &amp;lt;- My chosen port&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; IPv6 supported, port: 21213 &amp;lt;- My chosen port&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 19132 &amp;lt;- Not one I setup&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; IPv6 supported, port: 19133 &amp;lt;- Not one I setup&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;netstat -an | less&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Active Internet connections (servers and established)&lt;/p&gt;

&lt;p&gt;Proto Recv-Q Send-Q Local Address &#160; &#160; &#160; &#160; &#160; Foreign Address &#160; &#160; &#160; &#160; State &#160; &#160; &#160;&lt;/p&gt;

&lt;p&gt;udp&#160; &#160; &#160; &#160; 0&#160; &#160; &#160; 0 0.0.0.0:21212 &#160; &#160; &#160; &#160; &#160; 0.0.0.0:* &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&amp;lt;-- My chosen port&lt;/p&gt;

&lt;p&gt;udp&#160; &#160; &#160; &#160; 0&#160; &#160; &#160; 0 0.0.0.0:19132 &#160; &#160; &#160; &#160; &#160; 0.0.0.0:* &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&amp;lt;-- Not my chosen port&lt;/p&gt;

&lt;p&gt;udp6 &#160; &#160; &#160; 0&#160; &#160; &#160; 0 :::21213&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; :::*&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &amp;lt;-- My chosen port&lt;/p&gt;

&lt;p&gt;udp6 &#160; &#160; &#160; 0&#160; &#160; &#160; 0 :::19133&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; :::*&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &amp;lt;-- Not my chosen port.&#160;&lt;/p&gt;</comment>
                            <comment id="658692" author="dkf0x0" created="Fri, 3 Apr 2020 20:07:35 +0200"  >&lt;p&gt;It&apos;s not actually that hard of a problem to solve (I too, am a programmer).&#160; Auto-discovery systems function in one of two ways - either they do an L2 broadcast stating that the exist (as is the case with DHCP) or they do an L3 broadcast (IP-level on the broadcast IP of the current network).&#160; Clients listen for certain packet patterns.&lt;/p&gt;

&lt;p&gt;That broadcast traffic can contain any kind of information - the client just has to be looking for it and it has to know how to interpret the contents.&lt;/p&gt;

&lt;p&gt;So either the server is only broadcasting the IP and the client is responsible for trying to connect to the default ports on the target IP, or the server is already broadcasting IP:port and the client is not gathering the &quot;port&quot; part and is only trying to hit the default ports.&lt;/p&gt;

&lt;p&gt;But you&apos;re right, it&apos;s a minor inconvenience.&#160; Having the output of this discussion, though, in the documentation would be useful.&lt;/p&gt;</comment>
                            <comment id="658606" author="ghosaphat@gmail.com" created="Fri, 3 Apr 2020 17:43:55 +0200"  >&lt;p&gt;&#160;@David Fidler&#160;- I&apos;m glad the information was useful/helpful. I&apos;m a firm believer that the more detail we can provide, the better the bug report will be received. Even if the information is superfluous, for a programmer (like me), the more detailed the explanation and definition of the problem, the easier it is to find a solution.&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;So only one server is automatically discoverable at a time and this is probably because the first server that starts binds to the default ports 19132/19133.&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;Well, that makes sense, actually. For an &lt;em&gt;extremely&lt;/em&gt; simplified example, I liken it to trying to host a Web server on a residential Internet connection. Many ISP&apos;s have port 80 blocked to prevent their customers from doing that for a variety of reasons (excess traffic, security concerns, etc.). Still, with a bit of creative port forwarding and communication, one can host a simple Web site on a non-standard port. Since pretty much every Web client defaults it&apos;s communication to port 80 for HTTP, the client has to be explicitly told to use a different port (for example, 8080) when trying to access that particular resource. Obviously, with DDNS and even more creativity, it&apos;s&#160;&lt;em&gt;&lt;b&gt;possible&lt;/b&gt;&lt;/em&gt;&#160;to even get around that, but that goes well beyond the scope of this example.&lt;/p&gt;

&lt;p&gt;This is basically what I am assuming (&lt;em&gt;yep&lt;/em&gt;&#160;&lt;img class=&quot;emoticon&quot; src=&quot;https://bugs.mojang.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;) is going on with the Minecraft client. It will &lt;em&gt;only&lt;/em&gt; look for servers on the default ports when trying to auto-discover servers. If the server is running on a &quot;non-standard&quot; port, the game client must be explicitly told which port(s) to use for the connection. An admin that wants to run the server on a different port will &lt;em&gt;require&lt;/em&gt; the player to go through the &quot;&lt;b&gt;Add Server&lt;/b&gt;&quot; dialog to actually connect. Personally, I&apos;m okay with that.&#160;I&apos;m not sure how the client would be able to automatically detect servers running on non-standard without scanning all 65K ports in existence (&lt;em&gt;which would open up a whole different set of potential security issues&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Now, it&apos;s just a matter of identifying the purpose and function of the two extra &quot;random&quot; ports.&lt;/p&gt;</comment>
                            <comment id="658455" author="dkf0x0" created="Fri, 3 Apr 2020 12:47:02 +0200"  >&lt;p&gt;@Jeremy Gamble - thanks for your previous post, it caused me to go back and take another look and things make a lot more sense now.&#160; I think that the reason that an instance opens the default ports is so the client (game) can auto-discover the server.&lt;/p&gt;

&lt;p&gt;I tried starting two servers (as you suggest) and they do both start.&#160; However, only one server is discovered by the client.&#160;&lt;/p&gt;

&lt;p&gt;To test this I did the following....&lt;/p&gt;

&lt;p&gt;1. As root: disable firewall on server&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;root@server1:~# iptables -F; iptables -X; iptables -Z
root@server1:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destinationChain FORWARD (policy DROP)
target     prot opt source               destinationChain OUTPUT (policy ACCEPT)
target     prot opt source               destination
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;2. As root: create user &quot;minecraft&quot; in /home/minecraft&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;adduser minecraft&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;3. As root: become user minecraft:&#160;&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;su - minecraft&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;4. As minecraft: create server directories&#160;&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;mkdir ~/s1&#160;~/s2&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;5. As minecraft: unzip server to ~/s1&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;unzip&#160;bedrock-server-1.14.32.1.zip -d ~/s1/&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;6. As minecraft: Unzip server to ~/s2&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;unzip&#160;bedrock-server-1.14.32.1.zip -d ~/s2/&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;7. Change server-name, levels-name and ports per the following:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;minecraft@server1:~$ egrep &quot;server-name|level-name|.*-port&quot; s[12]/server.properties

s1/server.properties:server-name=Server1
s1/server.properties:server-port=19100
s1/server.properties:server-portv6=19101
s1/server.properties:level-name=level1

s2/server.properties:server-name=Server2
s2/server.properties:server-port=19200
s2/server.properties:server-portv6=19201
s2/server.properties:level-name=level2
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;8. Start server in ~/s1&#160;&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;minecraft@Server1:~$ cd s1
minecraft@Server1:~/s1$ LD_LIBRARY_PATH=. ./bedrock_server
NO LOG FILE! - setting up server logging...
[2020-04-03 10:01:24 INFO] Starting Server
[2020-04-03 10:01:24 INFO] Version 1.14.32.1
[2020-04-03 10:01:24 INFO] Session ID 0ec216b4-56b7-4d96-aea5-8b3f249b608c
[2020-04-03 10:01:24 INFO] Level Name: level1
[2020-04-03 10:01:24 INFO] Game mode: 0 Survival
[2020-04-03 10:01:24 INFO] Difficulty: 1 EASY
[2020-04-03 10:01:24 INFO] opening worlds/level1/db
[2020-04-03 10:01:25 INFO] IPv4 supported, port: 19100
[2020-04-03 10:01:25 INFO] IPv6 supported, port: 19101
[2020-04-03 10:01:25 INFO] IPv4 supported, port: 19132
[2020-04-03 10:01:25 INFO] IPv6 supported, port: 19133
[2020-04-03 10:01:26 INFO] Server started.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;9. Start server in ~/s2&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;minecraft@server1:~$ cd s2/
minecraft@server1:~/s2$ LD_LIBRARY_PATH=. ./bedrock_server
NO LOG FILE! - setting up server logging...
[2020-04-03 10:02:02 INFO] Starting Server
[2020-04-03 10:02:02 INFO] Version 1.14.32.1
[2020-04-03 10:02:02 INFO] Session ID 15140ceb-984e-4cdc-befa-91b64643b06f
[2020-04-03 10:02:02 INFO] Level Name: level2
[2020-04-03 10:02:02 INFO] Game mode: 0 Survival
[2020-04-03 10:02:02 INFO] Difficulty: 1 EASY
[2020-04-03 10:02:02 INFO] opening worlds/level2/db
[2020-04-03 10:02:04 INFO] IPv4 supported, port: 19200
[2020-04-03 10:02:04 INFO] IPv6 supported, port: 19201
[2020-04-03 10:02:04 INFO] IPv4 supported, port: 60796
[2020-04-03 10:02:04 INFO] IPv6 supported, port: 57886
[2020-04-03 10:02:05 INFO] Server started.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;10. Look at the open ports:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;root@server1:~# netstat -plan | egrep bedrock_ser
udp        0      0 0.0.0.0:19100           0.0.0.0:*                           18760/./bedrock_ser
udp        0      0 0.0.0.0:19132           0.0.0.0:*                           18760/./bedrock_ser
udp        0      0 0.0.0.0:19200           0.0.0.0:*                           18794/./bedrock_ser
udp        0      0 0.0.0.0:60796           0.0.0.0:*                           18794/./bedrock_ser
udp6       0      0 :::57886                :::*                                18794/./bedrock_ser
udp6       0      0 :::19101                :::*                                18760/./bedrock_ser
udp6       0      0 :::19133                :::*                                18760/./bedrock_ser
udp6       0      0 :::19201                :::*                                18794/./bedrock_ser
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;11. Try to join the servers....&lt;br/&gt;
 &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://bugs.mojang.com/secure/attachment/278503/278503_minecraft.jpg&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;12. Kill Server1 process - Server 1 disappears from the list and server2 does not appear.&lt;/p&gt;

&lt;p&gt;13. Kill Server2 process and then start ONLY Server 2&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;minecraft@cyclone:~/s2$ LD_LIBRARY_PATH=. ./bedrock_server
NO LOG FILE! - setting up server logging...
[2020-04-03 10:17:42 INFO] Starting Server
[2020-04-03 10:17:42 INFO] Version 1.14.32.1
[2020-04-03 10:17:42 INFO] Session ID 9362f75d-a13a-4825-a79b-641502d8fe4a
[2020-04-03 10:17:42 INFO] Level Name: level2
[2020-04-03 10:17:42 INFO] Game mode: 0 Survival
[2020-04-03 10:17:42 INFO] Difficulty: 1 EASY
[2020-04-03 10:17:42 INFO] opening worlds/level2/db
[2020-04-03 10:17:44 INFO] IPv4 supported, port: 19200
[2020-04-03 10:17:44 INFO] IPv6 supported, port: 19201
[2020-04-03 10:17:44 INFO] IPv4 supported, port: 19132
[2020-04-03 10:17:44 INFO] IPv6 supported, port: 19133
[2020-04-03 10:17:45 INFO] Server started.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;14. Start Server 1 Process:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;minecraft@cyclone:~/s1$ LD_LIBRARY_PATH=. ./bedrock_server
NO LOG FILE! - setting up server logging...
[2020-04-03 10:19:18 INFO] Starting Server
[2020-04-03 10:19:18 INFO] Version 1.14.32.1
[2020-04-03 10:19:18 INFO] Session ID 5c66f904-53d4-4109-bb18-b0ec64399fdf
[2020-04-03 10:19:18 INFO] Level Name: level1
[2020-04-03 10:19:18 INFO] Game mode: 0 Survival
[2020-04-03 10:19:18 INFO] Difficulty: 1 EASY
[2020-04-03 10:19:18 INFO] opening worlds/level1/db
[2020-04-03 10:19:20 INFO] IPv4 supported, port: 19100
[2020-04-03 10:19:20 INFO] IPv6 supported, port: 19101
[2020-04-03 10:19:20 INFO] IPv4 supported, port: 41620
[2020-04-03 10:19:20 INFO] IPv6 supported, port: 36583
[2020-04-03 10:19:21 INFO] Server started.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;16. Check minecraft again....  &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://bugs.mojang.com/secure/attachment/278505/278505_minecraft2.jpg&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;So only one server is automatically discoverable at a time and this is probably because the first server that starts binds to the default ports 19132/19133.&lt;/p&gt;

&lt;p&gt;You can go to the third tab in the client (Servers) and click &quot;Add Server&quot; and manually add the IP/port in there.&#160;&#160;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: The screenshots, above, are taken from the windows client.&#160; However, I also tried this on the Android client as well.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&#160;So, actually, in terms of being able to do what I wanted to be able to do (run multiple servers / worlds) from the same server, it turns out that I can do that.&#160; I was simply assuming (you know what they say about assumptions) that because the first process was binding to the default ports, that the second one would not start - which turns out not to be the case as the server just &quot;picks different ports&quot; to randomly open.&lt;/p&gt;

&lt;p&gt;I do agree that randomly opening LISTEN ports is both undocumented and undesirable.&#160; It would be beneficial for us to understand why those ports are being opened, and what they are used for. (others have mentioned UPnP as a possibility).&lt;/p&gt;

&lt;p&gt;Similarly, it would be beneficial for the auto-discover mechanism to be a bit more intelligent.&#160; I don&apos;t know how it works but based on what I&apos;m observing here (and please note, I&apos;ve not done any kind of deep packet inspection see what&apos;s happening), I&apos;m guessing that the server does a network broadcast saying &quot;I am a minecraft server - this is my IP&quot; and the client checks that IP against the default ports, rather than the server saying &quot;I am a minecraft server, this is my IP and port&quot;.&#160; Or maybe it does and the client&apos;s have a bug in them that they only check the default ports - I&apos;m not sure.&#160; Either way, this process could be improved.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="657985" author="ghosaphat@gmail.com" created="Thu, 2 Apr 2020 20:31:38 +0200"  >&lt;p&gt;Okay, I have to take back my original statement about the ports being open for TCP vs. UDP. I just ran another test running two instances of the &lt;b&gt;bedrock_server.exe&lt;/b&gt; on my local machine, then took a new &lt;b&gt;netstat -ano&lt;/b&gt; snapshot. All eight ports - the two specified in each of the two &lt;b&gt;server.properties&lt;/b&gt; files, as well as the two &quot;random&quot; ports automatically assigned by BDS - are listed as UDP ports. I must&apos;ve looked at it wrong the first time, so I apologize for the confusion.&lt;/p&gt;

&lt;p&gt;Here&apos;s what I&apos;m seeing:&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;SERVER1&quot;&gt;&lt;/a&gt;&lt;ins&gt;SERVER 1&lt;/ins&gt;&lt;/h2&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;D:\Minecraft&amp;gt;D:\Minecraft\bedrock_server.exe
NO LOG FILE! - setting up server logging...
[2020-04-02 12:29:06 INFO] Starting Server
[2020-04-02 12:29:06 INFO] Version 1.14.20.1
[2020-04-02 12:29:06 INFO] Session ID a97a1c4b-8f9b-4f08-bfd7-e5266fbf1d52
[2020-04-02 12:29:06 INFO] Level Name: Testing World 1
[2020-04-02 12:29:06 INFO] Game mode: 0 Survival
[2020-04-02 12:29:06 INFO] Difficulty: 1 EASY
[2020-04-02 12:29:07 INFO] Content logging enabled. Writing log to: ContentLog__Thursday__2020_April_02__12_29_07
[2020-04-02 12:29:07 INFO] opening worlds/Testing World 1/db
[2020-04-02 12:29:14 INFO] IPv4 supported, port: 19132
[2020-04-02 12:29:14 INFO] IPv6 supported, port: 19133
[2020-04-02 12:29:14 INFO] IPv4 supported, port: 57850
[2020-04-02 12:29:14 INFO] IPv6 supported, port: 57851
[2020-04-02 12:29:16 INFO] Server started.&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;SERVER2&quot;&gt;&lt;/a&gt;&lt;ins&gt;SERVER 2&lt;/ins&gt;&lt;/h2&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;D:\Minecraft&amp;gt;D:\Minecraft\Testing\bedrock_server.exe
NO LOG FILE! - setting up server logging...
[2020-04-02 12:29:29 INFO] Starting Server
[2020-04-02 12:29:29 INFO] Version 1.14.32.1
[2020-04-02 12:29:29 INFO] Session ID e33ef792-2521-4868-8670-a5f6d2d9d975
[2020-04-02 12:29:29 INFO] Level Name: Testing World 2
[2020-04-02 12:29:29 INFO] Game mode: 0 Survival
[2020-04-02 12:29:29 INFO] Difficulty: 1 EASY
[2020-04-02 12:29:30 INFO] Content logging enabled. Writing log to: ContentLog__Thursday__2020_April_02__12_29_30
[2020-04-02 12:29:30 INFO] opening worlds/Testing World 2/db
[2020-04-02 12:29:35 INFO] IPv4 supported, port: 19134
[2020-04-02 12:29:35 INFO] IPv6 supported, port: 19135
[2020-04-02 12:29:36 INFO] IPv4 supported, port: 54240
[2020-04-02 12:29:36 INFO] IPv6 supported, port: 54241
[2020-04-02 12:29:37 INFO] Server started.&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;h2&gt;&lt;a name=&quot;netstatano%28heavilyredacted%29&quot;&gt;&lt;/a&gt;&lt;ins&gt;netstat -ano (heavily redacted)&lt;/ins&gt;&lt;/h2&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;C:\Windows\system32&amp;gt;netstat -ano
Active Connections
Proto Local Address Foreign Address State PID
 UDP 0.0.0.0:19132 *:* 23584
 UDP 0.0.0.0:19134 *:* 37028
 UDP 0.0.0.0:54240 *:* 37028
 UDP 0.0.0.0:57850 *:* 23584
 UDP [::]:19133 *:* 23584
 UDP [::]:19135 *:* 37028
 UDP [::]:54241 *:* 37028
 UDP [::]:57851 *:* 23584
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;So, again, I deeply apologize for spreading inaccurate information without fully testing and reviewing it first.&lt;/p&gt;

&lt;p&gt;As for running multiple instances of &lt;b&gt;bedrock_server.exe&lt;/b&gt; from the same hardware, as I stated above, these results are on the same machine (my local computer) at the same time. As the copy/paste should indicate, there are two complete copies of the BDS directory structure - including individual copies of the &lt;b&gt;bedrock_server.exe&lt;/b&gt; and &lt;b&gt;server.properties&lt;/b&gt; files - both running different versions of the BDS software and with different ports specified for communication.&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;SERVER1%C2%A0server.properties&quot;&gt;&lt;/a&gt;&lt;ins&gt;SERVER 1 -&#160;&lt;b&gt;server.properties&lt;/b&gt;&lt;/ins&gt;&lt;/h2&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;server-port=19132
# Which IPv4 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]
server-portv6=19133
# Which IPv6 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;SERVER2%C2%A0server.properties&quot;&gt;&lt;/a&gt;&lt;ins&gt;SERVER 2 -&#160;&lt;b&gt;server.properties&lt;/b&gt;&lt;/ins&gt;&lt;/h2&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;server-port=19134
# Which IPv4 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]
server-portv6=19135
# Which IPv6 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;I believe that, as long as you have the complete directory structure duplicated for each instance of BDS you want to run, the only time you&apos;d run into a problem running multiple instances would be if the randomly selected ports were the same as the specific ports set in the &lt;b&gt;server.properties&lt;/b&gt; file of another instance.&lt;/p&gt;

&lt;p&gt;For example, if I started &lt;b&gt;SERVER 2&lt;/b&gt;&#160;first - where the ports in the &lt;b&gt;server.properties&lt;/b&gt; file are set to 19134/19135 - as mentioned by @MiHu and @David Fidler have noted in their comments above, the &quot;random&quot; ports selected and opened by BDS actually end up being the &quot;default&quot; ports of 19132/19133.&lt;/p&gt;

&lt;p&gt;If I then tried to start &lt;b&gt;SERVER 1&lt;/b&gt; - where the ports in the &lt;b&gt;server.properties&lt;/b&gt; file are still the &quot;default&quot; - the BDS startup would fail because those ports are already in use by the first instance.&lt;/p&gt;

&lt;p&gt;Here&apos;s what I got when I tested this scenario:&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;SERVER2&quot;&gt;&lt;/a&gt;&lt;ins&gt;SERVER 2&lt;/ins&gt;&lt;/h2&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;NO LOG FILE! - setting up server logging...
[2020-04-02 13:23:29 INFO] Starting Server
[2020-04-02 13:23:29 INFO] Version 1.14.32.1
[2020-04-02 13:23:29 INFO] Session ID dd414afe-fe12-4318-8eba-6ad4eabd9d02
[2020-04-02 13:23:29 INFO] Level Name: Testing World 2
[2020-04-02 13:23:29 INFO] Game mode: 0 Survival
[2020-04-02 13:23:29 INFO] Difficulty: 1 EASY
[2020-04-02 13:23:29 INFO] Content logging enabled. Writing log to: ContentLog__Thursday__2020_April_02__13_23_29
[2020-04-02 13:23:29 INFO] opening worlds/Testing World 2/db
[2020-04-02 13:23:31 INFO] IPv4 supported, port: 19134
[2020-04-02 13:23:31 INFO] IPv6 supported, port: 19135
[2020-04-02 13:23:31 INFO] IPv4 supported, port: 19132
[2020-04-02 13:23:31 INFO] IPv6 supported, port: 19133
[2020-04-02 13:23:31 INFO] Server started.&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;h2&gt;&lt;a name=&quot;SERVER1&quot;&gt;&lt;/a&gt;&lt;ins&gt;SERVER 1&lt;/ins&gt;&lt;/h2&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;NO LOG FILE! - setting up server logging...
[2020-04-02 13:23:53 INFO] Starting Server
[2020-04-02 13:23:53 INFO] Version 1.14.20.1
[2020-04-02 13:23:53 INFO] Session ID 06e47362-329e-4f3f-ae98-33eca8e8db0d
[2020-04-02 13:23:53 INFO] Level Name: Testing World 1
[2020-04-02 13:23:53 INFO] Game mode: 0 Survival
[2020-04-02 13:23:53 INFO] Difficulty: 1 EASY
[2020-04-02 13:23:53 INFO] Content logging enabled. Writing log to: ContentLog__Thursday__2020_April_02__13_23_53
[2020-04-02 13:23:53 INFO] opening worlds/Testing World 1/db 
[2020-04-02 13:23:55 INFO] IPv4 supported, port: 0
[2020-04-02 13:23:55 INFO] IPv6 supported, port: 0
[2020-04-02 13:23:55 ERROR] Network port occupied, can&apos;t start server.&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Exactly as expected. So, the moral of the story there is to start up any BDS instance that&apos;s using the default ports before any instances that are using &quot;custom&quot; ports.&lt;/p&gt;

&lt;p&gt;Of course, all of that &lt;em&gt;still&lt;/em&gt; doesn&apos;t address &lt;em&gt;why&lt;/em&gt; BDS is opening these extra ports in the first place. Especially now that I&apos;ve gone back and looked more closely at the information and found that all of the ports are opening over UDP. As @SupremeMortal mentioned, I&apos;m guessing that it has something to do with UPnP, but that&apos;s still not really an acceptable answer. The application is opening up ports that haven&apos;t been explicitly set by the admin, and, as @Rebecca Reed has pointed out a couple of times, that opens up the potential for all sorts of dangerous activity &quot;piggy-backing&quot; on connections over which the admin has no direct control.&lt;/p&gt;

&lt;p&gt;Of course, the &quot;goal&quot; of this post is to ensure that BDS doesn&apos;t open random ports without explicit permission from the server admin. Perhaps there should be an additional option in the &lt;b&gt;server.properties&lt;/b&gt; file to enable/disable UPnP?&lt;/p&gt;</comment>
                            <comment id="657893" author="dkf0x0" created="Thu, 2 Apr 2020 17:36:55 +0200"  >&lt;p&gt;@Rebecca Reed - there are two bugs here that have been merged into one (IMHO, wrongly).&#160; I came here because&#160;&lt;a href=&quot;https://bugs.mojang.com/browse/BDS-2824&quot; title=&quot;Unable to Change IP Port&quot; class=&quot;issue-link&quot; data-issue-key=&quot;BDS-2824&quot;&gt;&lt;del&gt;BDS-2824&lt;/del&gt;&lt;/a&gt;&#160;and &lt;a href=&quot;https://bugs.mojang.com/browse/BDS-3397&quot; title=&quot;Server ignores ports set in server.properties&quot; class=&quot;issue-link&quot; data-issue-key=&quot;BDS-3397&quot;&gt;&lt;del&gt;BDS-3397&lt;/del&gt;&lt;/a&gt;&#160;have been marked as duplicates of this one.&#160; But I am working with what I&apos;ve got so....&lt;/p&gt;

&lt;p&gt;According to the documentation (&lt;a href=&quot;https://minecraft.gamepedia.com/Server.properties&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://minecraft.gamepedia.com/Server.properties&lt;/a&gt;):&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;server-port=19132
# Which IPv4 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]

server-portv6=19133
# Which IPv6 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Ergo, per the documentation, if I change those values to something other than the default, then the server should listen on those ports.&#160;&#160;&lt;/p&gt;

&lt;p&gt;But... according to the output, above, the server is, first, binding to my custom-defined in server.properties ports&#160;(ipv4: 19&lt;font color=&quot;#ff0000&quot;&gt;2&lt;/font&gt;32, ipv6: 19&lt;font color=&quot;#ff0000&quot;&gt;2&lt;/font&gt;33),.&#160;&#160;&lt;b&gt;&lt;em&gt;Hurray!&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;... And THEN it is binding to the default ports&#160; (ipv4: 19&lt;font color=&quot;#ff0000&quot;&gt;1&lt;/font&gt;32, ipv6:19&lt;font color=&quot;#ff0000&quot;&gt;1&lt;/font&gt;33).&#160; &lt;b&gt;&lt;em&gt;Booo!!!&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;This means I can only run a single bedrock_server instance on my hardware&#160; And because I can only serve a single world from a bedrock server instance, that means that I can only have a single world running on my home server (which is a real ballache when you have multiple kids that each want their own world).&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="657871" author="slr0na" created="Thu, 2 Apr 2020 16:49:34 +0200"  >&lt;p&gt;As was identified in the original posting, ports 19132 and 19133 are expected. The problem is, after specifying a new port for IPv4, a new, unspecified and random port was opened for IPv6 on (for me) 64114. This port is not the same port that opens every time, but is chosen at random and can be used as a means to backdoor an unwitting server owner and infiltrate the hosting system. This issue either needs to be addressed by Mojang as intentional or fixed, in order to prevent server hosts from malicious attacks due to poor coding.&lt;/p&gt;</comment>
                            <comment id="657859" author="dkf0x0" created="Thu, 2 Apr 2020 16:27:09 +0200"  >&lt;p&gt;OS:&#160; Ubuntu 18.04.4 LTS&#160;&lt;/p&gt;

&lt;p&gt;This is what I&apos;m seeing...&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;minecraft@server1:~/bedrock_server$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION=&lt;span class=&quot;code-quote&quot;&gt;&quot;Ubuntu 18.04.4 LTS&quot;&lt;/span&gt;

minecraft@server1:~/bedrock_server$ grep port server.properties | sed -e &lt;span class=&quot;code-quote&quot;&gt;&apos;s/^#.*&lt;span class=&quot;code-comment&quot;&gt;//g&apos;&lt;/span&gt; | grep -v ^$
&lt;/span&gt;server-port=19232
server-portv6=19233

minecraft@server1:~/bedrock_server$ LD_LIBRARY_PATH=. ./bedrock_server
NO LOG FILE! - setting up server logging...
[2020-04-02 12:51:37 INFO] Starting Server
[2020-04-02 12:51:37 INFO] Version 1.14.32.1
[2020-04-02 12:51:37 INFO] Session ID ed6a96e2-f484-42bd-b52b-274418abb2aa
[2020-04-02 12:51:37 INFO] Level Name: World Name
[2020-04-02 12:51:37 INFO] Game mode: 1 Creative
[2020-04-02 12:51:37 INFO] Difficulty: 2 NORMAL
[2020-04-02 12:51:37 INFO] opening worlds/World Name/db
[2020-04-02 12:51:39 INFO] IPv4 supported, port: 19232
[2020-04-02 12:51:39 INFO] IPv6 supported, port: 19233
[2020-04-02 12:51:39 INFO] IPv4 supported, port: 19132
[2020-04-02 12:51:39 INFO] IPv6 supported, port: 19133
[2020-04-02 12:51:40 INFO] Server started.
^Z

[1]+ Stopped LD_LIBRARY_PATH=. ./bedrock_server

minecraft@server1:~/bedrock_server$ bg
[1]+ LD_LIBRARY_PATH=. ./bedrock_server &amp;amp;

minecraft@cyclone:~/bedrock_server$ netstat -plan | grep :19[12]3[23]
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
udp 0 0 0.0.0.0:19132 0.0.0.0:* 6674/./bedrock_serv
udp 0 0 0.0.0.0:19232 0.0.0.0:* 6674/./bedrock_serv
udp6 0 0 :::19133 :::* 6674/./bedrock_serv
udp6 0 0 :::19233 :::* 6674/./bedrock_serv
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;So some part of the code is hard-coding those port values - at least in the linux branch of the code.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="654932" author="ghosaphat@gmail.com" created="Fri, 27 Mar 2020 20:54:21 +0100"  >&lt;p&gt;I&apos;ve not encountered that in my testing. Admittedly, that testing has been extremely limited, but as long as I&apos;ve got two separate copies of the entire BDS directory structure - including a separate copy of &lt;b&gt;bedrock_server.exe&lt;/b&gt; - in individual folders and set the specific ports to different values in each of their respective &lt;b&gt;server.properties&lt;/b&gt; files, I was successfully able to get two instances running concurrently on my machine.&lt;/p&gt;</comment>
                            <comment id="654481" author="zizzyzizzy" created="Thu, 26 Mar 2020 23:46:22 +0100"  >&lt;p&gt;This bug also makes it impossible to run a second instance of Bedrock on the same host server. No matter what port is defined in server.properties, it &lt;b&gt;always&lt;/b&gt; says the requested port is in use when it is not.&lt;/p&gt;</comment>
                            <comment id="652046" author="mihu" created="Mon, 23 Mar 2020 00:42:07 +0100"  >&lt;p&gt;I came across the same bug too. Hope it would be settled.&lt;/p&gt;

&lt;p&gt;It is noteworthy that the additional ports tend to be default ones if the ports set in the &quot;server.prosperities&quot; are not default ports.&lt;/p&gt;</comment>
                            <comment id="650974" author="ghosaphat@gmail.com" created="Fri, 20 Mar 2020 21:51:28 +0100"  >&lt;p&gt;UPnP may indeed be the &quot;culprit&quot; here. However, without documentation of any UPnP &quot;requirements&quot; for BDS, this remains a potentially significant security issue and a problem for some BDS admins. If the admin&apos;s router/firewall does not support UPnP, they will have to manually open the randomly chosen/assigned UDP ports for IPv4 and IPv6. Without knowing how BDS is choosing these port numbers or the ability to manually assign them, such users would possibly have to open a wide range of ports for UDP traffic, or be forced to close/open these ports for each BDS restart. Inexperienced admins may open a much wider range of ports than necessary, and may even open both TCP and UDP traffic on those ports.&lt;/p&gt;</comment>
                            <comment id="649917" author="suprememortal" created="Thu, 19 Mar 2020 17:52:46 +0100"  >&lt;p&gt;The random ports are the ones which the connection takes place over. I believe it&apos;s a &quot;hack&quot; of sorts to allow players from the IPv4 port to join with IPv6 and vice versa if preferred by the client. The reason not all people are having problems connecting to their servers may be due to Minecraft&apos;s network implementation using UPnP to open the firewall however not all routers, ISPs or firewalls will allow this.&lt;/p&gt;</comment>
                            <comment id="648971" author="ghosaphat@gmail.com" created="Wed, 18 Mar 2020 21:34:01 +0100"  >&lt;p&gt;Agreed. I over-simplified and unintentionally down-played the issue in my previous comments, but randomly opening arbitrary ports of communication &lt;em&gt;absolutely&lt;/em&gt; presents an unnecessary security risk. It may be mitigated through other security measures, but not having clear documentation of what ports are being used, how they are &quot;selected&quot;, and their purpose makes doing even that difficult. Not to mention the fact that there are likely a significant number of users who would be unaware of the potential risks involved in simply opening up a range of ports - possibly to both TCP and UDP traffic, &quot;just to be sure&quot; - which could result in even more damage done.&lt;/p&gt;</comment>
                            <comment id="648923" author="slr0na" created="Wed, 18 Mar 2020 20:45:03 +0100"  >&lt;p&gt;I would agree with you, except that on the original issue (listed above), the concern was it creating/choosing a random port to open. I have both the configurations that were specified as well as the result when running BDS. The bug would be a security flaw, when it opens a port (regardless of TCP or UDP) for the express intent to allow traffic. Additionally, the port is chosen at random when you start BDS, thus making it difficult to prevent. This is a security bug and should be patched, to ensure no user inadvertently exposes their networks to unwanted incoming traffic.&lt;/p&gt;

&lt;p&gt;TL;DR: The bug is a security risk, by requesting the computer to communicate through a port not specified or directed by the server owner.&lt;/p&gt;</comment>
                            <comment id="648913" author="ghosaphat@gmail.com" created="Wed, 18 Mar 2020 20:29:47 +0100"  >&lt;p&gt;To be fair, a &quot;bug&quot; is, by definition, &lt;em&gt;any&lt;/em&gt; programming &quot;flaw&quot; - whether intentional or not - resulting in behavior that is unintended or unexpected and the term can be applied to include anything from a simple typo on a dialog box to a severe memory leak, etc. Because the UDP ports are not explicitly configurable, nor is there any indication of what they are in the current console display, I would suggest that this would be considered both a bug and a documentation issue. I believe it&apos;s a good thing that this information is displayed to the user so that the ports that are actively in use by BDS can be seen, but not clarifying the &lt;em&gt;intention&lt;/em&gt; and/or &lt;em&gt;implementation&lt;/em&gt; for the use of these ports is, perhaps, an oversight that can cause confusion, as well as potential connectivity issues since the &quot;random&quot; UDP ports have to be open/forwarded in addition to the TCP ports in order for the client to properly and fully communicate with the server.&lt;/p&gt;

&lt;p&gt;More complete documentation - both &quot;internally&quot; (displaying the protocol in the console) and externally (in the &quot;HOWTO&quot; or other implementation guide(s)) - would help to clarify the issue and take it from a &quot;bug&quot; to a &quot;feature&quot;, but as there is currently no such documentation (that I&apos;ve seen), this behavior is &quot;unexpected&quot; and potentially &quot;breaking&quot; for new BDS administrators.&lt;/p&gt;</comment>
                            <comment id="648849" author="patch885959" created="Wed, 18 Mar 2020 18:52:51 +0100"  >&lt;p&gt;So is this necessarily a bug, or just poor documentation?&lt;/p&gt;</comment>
                            <comment id="648788" author="ghosaphat@gmail.com" created="Wed, 18 Mar 2020 16:35:42 +0100"  >&lt;p&gt;I had the same question about the &quot;extra&quot; ports that show up in the console. Looking at a &quot;&lt;b&gt;netstat -ano&lt;/b&gt;&quot; on my machine after starting the server, the two ports (19132 and 19133) defined in my server.properties file are open as TCP ports, while the two other, random ports (usually &quot;5XXXX&quot; or &quot;6XXXX&quot;) are open for UDP.&lt;/p&gt;

&lt;p&gt;It might be useful to at least indicate this in the console to clear up any confusion. For example:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2020-03-17 16:07:58 INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 19132 (TCP)&lt;/tt&gt;&lt;/b&gt;&lt;br/&gt;
 &lt;b&gt;&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2020-03-17 16:07:58 INFO&amp;#93;&lt;/span&gt; IPv6 supported, port: 19133 (TCP)&lt;/tt&gt;&lt;/b&gt;&lt;br/&gt;
 &lt;b&gt;&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2020-03-17 16:07:58 INFO&amp;#93;&lt;/span&gt; IPv4 supported, port: 60896 (UDP)&lt;/tt&gt;&lt;/b&gt;&lt;br/&gt;
 &lt;b&gt;&lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2020-03-17 16:07:58 INFO&amp;#93;&lt;/span&gt; IPv6 supported, port: 60897 (UDP)&lt;/tt&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;or some other arrangement of the information, but at least showing what protocol each port is using would be helpful.&lt;/p&gt;

&lt;p&gt;As for firewall configuration, if these UDP ports are at least selected from a specific, defined range (i.e., 50000-65535), you may be able to set up your port forwarding for that range for just UDP traffic while setting up a TCP-only forwarding rule for just the ports specified in your server.properties file.&lt;/p&gt;</comment>
                            <comment id="631466" author="timriker" created="Sun, 9 Feb 2020 08:01:52 +0100"  >&lt;p&gt;I&apos;ve only opened the default 19132 on IPv4 and 19133 on IPv6 and I can connect on either and play. I need to use a different hostname, or enter the IP addresses directly, which is a Bad Thing, but the extra ports don&apos;t seem to be needed. Not sure what they are for.&lt;/p&gt;</comment>
                            <comment id="571605" author="suprememortal" created="Fri, 2 Aug 2019 10:54:52 +0200"  >&lt;p&gt;I noticed this when trying to connect with a custom client.&lt;br/&gt;
The server&apos;s main ports (19132 and 19133) are facades which don&apos;t allow anyone to join but contained within the MOTD ping response is the real ports which the client uses to redirect and connect with. The problem comes with the fact that the second set of ports are random and cannot be specified in the configuration file so you have to keep updating your firewall settings.&lt;/p&gt;

&lt;p&gt;This behaviour is found within the client for LAN servers as well so it&apos;s likely the changes were not noticed by the BDS team.&lt;/p&gt;</comment>
                            <comment id="570346" author="otocin" created="Mon, 29 Jul 2019 07:32:35 +0200"  >&lt;p&gt;I have the same problem&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10102">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="270369">BDS-1808</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="284715">BDS-2824</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="292613">BDS-3397</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="311720">BDS-4620</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="415767">BDS-11824</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="430247">BDS-12750</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="454360">BDS-14257</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10103">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="254365">BDS-3989</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="226047" name="Capture.PNG" size="26903" author="SlR0NA" created="Wed, 10 Jul 2019 23:15:50 +0200"/>
                            <attachment id="226046" name="Capture2.PNG" size="10062" author="SlR0NA" created="Wed, 10 Jul 2019 23:17:10 +0200"/>
                            <attachment id="278503" name="minecraft.jpg" size="795352" author="dkf0x0" created="Fri, 3 Apr 2020 12:08:00 +0200"/>
                            <attachment id="278505" name="minecraft2.jpg" size="802183" author="dkf0x0" created="Fri, 3 Apr 2020 12:20:28 +0200"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_11500" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>ADO</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>338984</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10500" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Confirmation Status</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10302"><![CDATA[Community Consensus]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_11700" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_11100" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Linked</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_11600" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i110vj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>