zerotier / ZeroTierOne

A Smart Ethernet Switch for Earth
https://zerotier.com
Other
14.3k stars 1.67k forks source link

Trackmania 2020 dedicated server can´t be joined - with other VPN tool it is working #1234

Closed o0Julia0o closed 3 years ago

o0Julia0o commented 4 years ago

Trackmania 2020 dedicated server can´t be joined - with other VPN tool it is working

The server isn´t shown in serverlist ingame. Other games are seen, but this game not. And another vpn-tool is working with this trackmania 2020. We wan´t to have all games running with ZeroTierOne.

Windows 10 installed on the server and client.

Host-Router: The dedicated server port ist portforwarded in the router to the zero-tier-ip(tried the normal-ethernet-lan-ip of the host, too).

Firewall is turned off.

Zero-Tier-Configuration: https://i.imgur.com/myVlsbr.png

thank you

joseph-henry commented 4 years ago

See this: https://zerotier.atlassian.net/wiki/spaces/SD/pages/7536695/Problems+With+LAN+Game+Announcements+and+Broadcasts+on+Windows

Let us know if you still have trouble.

o0Julia0o commented 4 years ago

Set metric from 5 to 1. Seeing the Server now, but unstable. The client has to wait some time, after leavint the server, beeing able to find it again. Winboradcast makes no difference.

laduke commented 4 years ago

Do they include any kind of documentation (a README file) with the installation? maybe the game has some network configuration options.

o0Julia0o commented 4 years ago

Yes, it´s using Port 2354 (i can change it). In native LAN the clients are seeing the server consitent. With ZeroTier only with this pauses.

laduke commented 4 years ago

paste it in here if possible. Is there any option called "bind" or something like that?

o0Julia0o commented 4 years ago
<?xml version="1.0" encoding="utf-8" ?>

<dedicated>
    <authorization_levels>
        <level>
            <name>SuperAdmin</name>
            <password>SuperAdmin</password>
        </level>
        <level>
            <name>Admin</name>
            <password>Admin</password>
        </level>
        <level>
            <name>User</name>
            <password>User</password>
        </level>
    </authorization_levels>

    <masterserver_account>
        <login></login>
        <password></password>
    </masterserver_account>

    <server_options>
        <name></name>
        <comment></comment>
        <hide_server>0</hide_server>                    <!-- value is 0 (always shown), 1 (always hidden), 2 (hidden from nations) -->

        <max_players>32</max_players>
        <password></password>

        <max_spectators>32</max_spectators>
        <password_spectator></password_spectator>

        <keep_player_slots>False</keep_player_slots>            <!-- when a player changes to spectator, hould the server keep if player slots/scores etc.. or not. -->     
        <ladder_mode>forced</ladder_mode>               <!-- value between 'inactive', 'forced' (or '0', '1') -->

        <enable_p2p_upload>True</enable_p2p_upload>
        <enable_p2p_download>False</enable_p2p_download>

        <callvote_timeout>60000</callvote_timeout>
        <callvote_ratio>0.5</callvote_ratio>                <!-- default ratio. value in [0..1], or -1 to forbid. -->
        <callvote_ratios>
            <voteratio command="Ban" ratio="-1"/>
            <!-- commands can be "Ban", "Kick", "RestartMap", "NextMap", "SetModeScriptSettingsAndCommands"... -->
        </callvote_ratios>

        <allow_map_download>True</allow_map_download>
        <autosave_replays>False</autosave_replays>
        <autosave_validation_replays>False</autosave_validation_replays>

        <referee_password></referee_password>
        <referee_validation_mode>0</referee_validation_mode>        <!-- value is 0 (only validate top3 players),  1 (validate all players) -->

        <use_changing_validation_seed>False</use_changing_validation_seed>

        <disable_horns>False</disable_horns>
        <clientinputs_maxlatency>0</clientinputs_maxlatency>        <!-- 0 mean automatic adjustement -->
    </server_options>

    <system_config>
        <connection_uploadrate>102400</connection_uploadrate>                       <!-- Kbits per second -->
        <connection_downloadrate>102400</connection_downloadrate>                   <!-- Kbits per second -->
        <workerthreadcount>1</workerthreadcount>                                    <!-- Thread count for multithread -->
        <packetassembly_multithread>True</packetassembly_multithread>               <!-- Use multithreading for sending packet -->
        <packetassembly_packetsperframe>0</packetassembly_packetsperframe>          <!-- How many packets we send per frame (0 = unlimited)-->
        <packetassembly_fullpacketsperframe>10</packetassembly_fullpacketsperframe> <!-- How many full packets we send per frame (they cost CPU and bandwith)  -->

        <trustclientsimu_c2s_sendingrate>127</trustclientsimu_c2s_sendingrate>      <!-- How often the clients will send their state history (255 = everyframe, 64=every fourth frame, etc)  -->
        <delayedvisuals_s2c_sendingrate>127</delayedvisuals_s2c_sendingrate>        <!-- How often the server will send visual states (255 = everyframe, 64=every fourth frame, etc)  -->

        <allow_spectator_relays>False</allow_spectator_relays>

        <p2p_cache_size>600</p2p_cache_size>

        <force_ip_address></force_ip_address>
        <server_port>2354</server_port>
        <client_port>0</client_port>
        <bind_ip_address></bind_ip_address>
        <use_nat_upnp></use_nat_upnp>

        <gsp_name></gsp_name>                       <!-- Game Server Provider name and info url -->
        <gsp_url></gsp_url>                     <!-- If you're a server hoster, you can use this to advertise your services -->

        <xmlrpc_port>5004</xmlrpc_port>
        <xmlrpc_allowremote>False</xmlrpc_allowremote>          <!-- If you specify an ip adress here, it'll be the only accepted adress. this will improve security. -->

        <blacklist_url></blacklist_url>
        <guestlist_filename></guestlist_filename>
        <blacklist_filename></blacklist_filename>

        <minimum_client_build></minimum_client_build>           <!-- Only accept updated client to a specific version. ex: 2011-10-06 -->

        <disable_coherence_checks>False</disable_coherence_checks>  <!-- disable internal checks to detect issues/cheats, and reject race times -->

        <disable_replay_recording>False</disable_replay_recording>  <!-- disable replay recording in memory during the game to lower memory usage. -->
        <save_all_individual_runs>False</save_all_individual_runs>  <!-- Save all the ghosts from the match replay to individual ghost.gbx files, in folder {servername}/Autosaves/Runs_{mapname}/  -->

        <use_proxy>False</use_proxy>
        <proxy_url></proxy_url>
    </system_config>
</dedicated>
laduke commented 4 years ago

try putting your computer's zerotier ip address in

for example <bind_ip_address>10.147.20.19</bind_ip_address>

each player would have to do this probably -with their specific zerotier ip address

good luck!


you shouldn't need to do any port forwarding with zerotier router config tips

o0Julia0o commented 4 years ago

Thank you. The bind_ip_address is only on the deciated server, so on the host. If i add the ZeroTier-IP of the host there, the dedicated server is not working. The problem is, that the clients not constantly see the host. So this will not change anything for the problem:

  1. The dedicated server is running
  2. Client can´t see the server...
  3. Client is waiting.. can now see the server
  4. Client is quitting and can´t the server
  5. Client is waiting.. can now see the server

The server is running all this time, never beein restarted.

If you do the same in native LAN it looks so:

  1. The dedicated server is running
  2. Client can see the server directly
  3. Client is quitting and can see the server directly
HadesDeadlyTom commented 4 years ago

I can confirm, i have the same problems. With the metric at 1 my friends can sometime see the server, sometime not. When they are connected it's all good but it's hard to find the server when you have to refresh 100 times to see it :)

o0Julia0o commented 4 years ago

try putting your computer's zerotier ip address in

for example <bind_ip_address>10.147.20.19</bind_ip_address>

each player would have to do this probably -with their specific zerotier ip address

no, that´s the dedicated-server, and he doesn´t start with the zero-tier adress. And the clients don´t have to edit anything there, because this file is only on the server. That´s not the solution.

unquietwiki commented 4 years ago

@o0Julia0o @HadesDeadlyTom I'm going over our GitHub issues in preparation for our pending 1.6.0 release; that should hopefully take care of a few things. If you're still having this issue ATM, can you please check the following & let us know otherwise so we can try to catch it? Thanks!

kenibure commented 3 years ago

Hello, I know this is not the topic reason but, how did you get your "masterserver_account" credentials? I cannot find where to get them.

Thank you.

lel-amri commented 2 years ago

I just stumbled on this problem as well.

Trackmania 2020's server doesn't broadcast anything. To find existing servers a Trackmania 2020 client broadcasts a UDP packet to a link-local network (I don't know how it is picked) to ports 2350 to 2400. Then it establishes a TCP connection to all hosts who replied to the ports with which the host replied. Then it probably gets server information and displays it on the server-list in the game.

The issue is probably common to all VPNs that don't catch all traffic.

Conclusion:


I could easily solve the issue under Linux thanks to socat and running the game in an LXC container with a single interface, but it seems like a headache to configure each and every Windows client, especially since the parameters the game uses to to chose the link-local network to ping are unknown.

laduke commented 2 years ago

https://github.com/dechamps/WinIPBroadcast