Disconnected - Potential man in the middle... when I try to join

I get an error when I try to join a construction server.error.th.jpg please help me if you can...
Thanks in advance.


  • I seem to get this message when I try to join a server that is not fully loaded. I am not sure if that is the cause, but all I do is wait a bit. Then join it, but there must be another reason.
  • This is something I suspected would come up soon enough and is likely due to the way the IP verification determines its own address. I'll try to make sure we address this in the next update, but for now a temporary fix that should work for servers using a different BindAddress is to use the following line to set the IP check variable manually:
    $IPv4::InetAddress = $Host::BindAddress;

    If you pop this into any file that loads before our scripts are run (maybe create a new .cs file to pop in autoexec if you run multiple configs) it should be fine assuming it's set to the IP the clients see.
    I'm asleep at the moment myself, but in the morning I can open the script on our end and check it out.

    Edit: I've updated the installer with something that should fix this particular problem (as well as an uninstaller, but that's unrelated). If you don't want to download the whole thing, you could just replace your existing T2csri.vl2 with this: http://www.tribesnext.com/krash/T2csri.vl2

    I found this quote in a post Krash made.
  • Thanks a bunch I will test this as soon as I can. I look for and download so much junk for Tribes I & II , I hardly even play the games... :)
  • If you're only getting this message on one server, it's a problem with the server.

    If you're getting this message when connecting to every server, it's a problem with your client failing to acquire its WAN IP address. There should be a FAQ entry on that.
  • Thank you for all of your help. It turns out that it wasn't me. I already had the fix and I can join other servers without a problem. Hope you have a great day.
  • I'm getting the Man-in-middle message too on many, but not all servers. I suspect it has something to do with my T2csri.vl2 file. If I use the T2csri.vl2 posted by Krash, I can't log in due to inability to retrieve my account credentials. When I use my original T2csri.vl2 file, I get the Man in the middle error.

    Where, in what CS file do I put the line from Krash about the IP address. Nothing has changed on my end. I did download T1, then subsequently delete it all - but in totally different directories. Please help as I am limited in what servers I can hit.

  • We had extended downtime that is affecting servers. Any server giving you this message probably needs to be restarted.
  • 11 years later, does anyone have a solution to this problem? The modified T2csri.vl2 above is a dead link and adding "$IPv4::InetAddress = $Host::BindAddress;" to an autoexec script hasn't made any difference.

  • The comment regarding setting this to $Host::BindAddress is specifically relating to server hosts with multiple possible external addresses to bind to; support for this is included by default in the current release (the host must have the variable set in their prefs/ServerPrefs.cs), and if it's not set on a server with multiple NICs, there's always potentially going to be a mismatch in what each party reports during the handshake process due to how the address detection works.

    If you're receiving this when connecting to a LAN or locally hosted server, make sure you're connecting to either the LAN address or an exact match to the external address the client receives.

    If you're receiving this on every server, use echo($IPv4::InetAddress); in your game console (~) to make sure that it is being set, and matches what you'd see if you look up your external address. If it isn't set, or is set incorrectly, the configuration of your network may have prevented it from being detected, and you may need to set it manually -- it's possible for this to happen if you're running certain anti-virus suites that manipulate your traffic, or in some cases with ISPs with unusual setups (more commonly cellular providers).

  • For anyone else who finds this in the future, my solution was to create base/scripts/autoexec/noMITM.cs on my server with the following content:

    $IPv4::InetAddress = "a.b.c.d";

    ...where a.b.c.d is the public IP of your server.

  • Keep in mind the address returned by the automatic detection mechanism is what the master server will be querying by default (and therefore what it will attempt to show to players), so if it differs due to your network configuration, you should really be setting $Host::BindAddress to the static public IP rather than overriding the WAN address detection. Setting the BindAddress variable will not only ensure the game internally binds to only that interface (rather than all local interfaces), but will also notify the master server of exactly what address should be queried and listed.

Sign In or Register to comment.