Local Discovery fails with direct address and Global Discovery is enabled

First off, I was thrilled to find this project. I have been a btsync user and have found syncthing an easy and more flexible solution. I have it on three android devices, two macbooks, my chromebook and even have it running on a pogoplug. Nice work!

My question is more of an observation. After adding my server using a direct IP address (an external IP address with ports forwarded by router), my devices would find the server but never find each other. After disabling global discovery, things worked again.

So it seems that if a direct address is not local, that local discovery does not work with global enabled. I am not sure what would cause that. It isn’t a huge deal for me, since my peers were either using a direct address or local since my ISP’s router does not support UPnP.

Hi!

That sounds a bit weird - the three methods should be independent enough… Could you share a non-working config?

Here is the config file from the MacBook (it is a dynamic node): The 1.1.1.1 and 99.99.99.99 are external IP’s (I changed the IP’s obviously for privacy’s sake). The other nodes are dynamic peers.

<configuration version="2">
    <repository id="default" directory="/Users/brian/Sync" ro="false" ignorePerms="false">
        <node id="HIFJJKTG7DZ4MM2QWD2TJXTPHMBK2JWF7CCVGUJ4U55CG2PFRITA"></node>
        <versioning></versioning>
        <syncorder></syncorder>
    </repository>
    <repository id="Desk" directory="Desk" ro="false" ignorePerms="false">
        <node id="DXLSUGCSYELDTWKTTW5I3GAV2XOXWGQW2XZDGM2ZSPWVQVFIKXLA"></node>
        <node id="HIFJJKTG7DZ4MM2QWD2TJXTPHMBK2JWF7CCVGUJ4U55CG2PFRITA"></node>
        <node id="TNF7SIHFHMQZSVLXDZVZMV2NJ7HZUEUO5PCSQ7LIZOVD5TLIKCHQ"></node>
        <node id="XDHMBMUDZNQSHEIY3KQL6MPFUDW43QYJ3BDMHZGYT2GVFT4EBESQ"></node>
        <versioning></versioning>
        <syncorder></syncorder>
    </repository>
    <node id="DXLSUGCSYELDTWKTTW5I3GAV2XOXWGQW2XZDGM2ZSPWVQVFIKXLA" name="ICONIA">
        <address>dynamic</address>
    </node>
    <node id="HIFJJKTG7DZ4MM2QWD2TJXTPHMBK2JWF7CCVGUJ4U55CG2PFRITA" name="Air">
        <address>dynamic</address>
    </node>
    <node id="XDHMBMUDZNQSHEIY3KQL6MPFUDW43QYJ3BDMHZGYT2GVFT4EBESQ" name="A1">
        <address>dynamic</address>
    </node>
    <node id="LPB5JCFD5DZFH3UIMGRCRS6QQVY3GZBVUB4SRG4GW7YRALXAPNZA" name="P1">
        <address>99.99.99.99:22001</address>
    </node>
    <node id="3UBSMD6LXNPGP7KD2TDYZNMP4VBWN7D77PIBXURXFKAWBFODXE7A" name="P2">
        <address>1.1.1.1:22000</address>
    </node>
    <node id="TNF7SIHFHMQZSVLXDZVZMV2NJ7HZUEUO5PCSQ7LIZOVD5TLIKCHQ" name="S1">
        <address>99.99.99.99:22000</address>
    </node>
    <gui enabled="true" tls="true">
        <address>127.0.0.1:61018</address>
        <apikey>NT1GJUGJVOTIDO1SG967R0IPAPOMAB</apikey>
    </gui>
    <options>
        <listenAddress>0.0.0.0:22000</listenAddress>
        <globalAnnounceServer>announce.syncthing.net:22025</globalAnnounceServer>
        <globalAnnounceEnabled>true</globalAnnounceEnabled>
        <localAnnounceEnabled>true</localAnnounceEnabled>
        <localAnnouncePort>21025</localAnnouncePort>
        <parallelRequests>16</parallelRequests>
        <maxSendKbps>0</maxSendKbps>
        <rescanIntervalS>60</rescanIntervalS>
        <reconnectionIntervalS>60</reconnectionIntervalS>
        <maxChangeKbps>10000</maxChangeKbps>
        <startBrowser>true</startBrowser>
        <upnpEnabled>true</upnpEnabled>
        <urAccepted>-1</urAccepted>
    </options>
</configuration>