Page 3 of 3 FirstFirst 123
Results 21 to 24 of 24

Thread: Server doubles

  1. #21
    Assadministrator kung foo man's Avatar
    Join Date
    Jun 2012
    Location
    trailerpark
    Posts
    2,010
    Thanks
    2,102
    Thanked 1,084 Times in 753 Posts
    Sure, you basically just write a proxy and dynamically rewrite the protocol-version, so the 1.2 clients think it's a 1.2 server
    timescale 0.01

  2. #22
    Private
    Join Date
    Nov 2013
    Posts
    16
    Thanks
    2
    Thanked 17 Times in 6 Posts
    Quote Originally Posted by Ni3ls View Post
    Is it possible to make a fake server in 1.2 that copies the 1.0 server and redirects to the 1.0 server?
    Short Answer
    - Yes.

    Long Answer
    - Version 1.2 and 1.0 have almost the same "protocol", meaning their network communication is very similar. The only difference i saw was in the download mechanism. Not long ago i did create a fake 1.0 server that showed in 1.0 master-server list, but it was just a gateway to a 1.2 server (it can go both ways). This however doesn't work if you have a mod in 1.2 server that needs to be downloaded in 1.0 as the "fast-download" can't be achieved in 1.0.
    - "Proxying" a real server and allowing players to join to it has its advantages and disadvantages.

    Positive things:
    • Regardless of the real server you can make the fake one show/hide in master-server.
    • "Multi-Version" for 1.0 and 1.2. Fake server can accept both 1.0 and 1.2 players as long as you change the protocol of the connect packet.
    • Complete control of the client. You cant actually know what the client is sending to the server as it is encoded (or maybe you know how) but you can disconnect him at any time, with any message.
    • You can catch rcon commands. I haven't tested this yet, but as far as i remember rcon packet is sent in human-readable form. ( "\xff\xff\xff\xffrcon RCON_PASSWORD status")
    • All players connected to the fake server have same IP. You can use this as, lets say a VPN to protect yourself.
    • If your fake server is on the same machine as your original server, players with cracked keys will be able to join as it will appear they are connecting from LAN.


    Negative things:
    • Delay. When connected to the fake server i experienced a ping increase from 40-50 ms (regular) to 70-80 ms.
    • All players connected to the fake server have same IP. Banning one fake player will result in banning them all.
    • IF your fake server is on the same machine as your original server, players will have 0 GUID.


    EDIT: Tested for rcon. Works.
    Last edited by stevomitric; 15th March 2017 at 21:46.

  3. The Following 2 Users Say Thank You to stevomitric For This Useful Post:

    kung foo man (15th March 2017),Ni3ls (15th March 2017)

  4. #23
    Private
    Join Date
    Oct 2014
    Posts
    32
    Thanks
    0
    Thanked 5 Times in 4 Posts
    Quote Originally Posted by stevomitric View Post
    Negative things:
    • Delay. When connected to the fake server i experienced a ping increase from 40-50 ms (regular) to 70-80 ms.
    • All players connected to the fake server have same IP. Banning one fake player will result in banning them all.
    • IF your fake server is on the same machine as your original server, players will have 0 GUID.
    I did the same with my CoD UO Server. My Proxy is written in Java (multi-threaded) and works fine. No Ping increase at all.
    I also get the client IPs with \rcon status for example. I mapped the local ports of the proxy to their original IP addresses. Then I simply replace them in "status" command.
    I didn't solve the GUID problem, because I didn't need it. But it's possible for sure. I guess you have to use ipAuthorize and challengeResponse or something

  5. The Following User Says Thank You to fabio For This Useful Post:

    kung foo man (16th March 2017)

  6. #24
    Private
    Join Date
    Nov 2013
    Posts
    16
    Thanks
    2
    Thanked 17 Times in 6 Posts
    Quote Originally Posted by fabio View Post
    I did the same with my CoD UO Server. My Proxy is written in Java (multi-threaded) and works fine. No Ping increase at all.
    Well considering that both your original and fake server are on the same machine and communicating via LAN, you should have no additional latency.

    Code:
    C:\Users\stEvo>ping 192.168.1.100
    
    Pinging 192.168.1.100 with 32 bytes of data:
    Reply from 192.168.1.100: bytes=32 time<1ms TTL=128
    Reply from 192.168.1.100: bytes=32 time<1ms TTL=128
    Reply from 192.168.1.100: bytes=32 time<1ms TTL=128
    Reply from 192.168.1.100: bytes=32 time<1ms TTL=128
    
    Ping statistics for 192.168.1.100:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = 0ms, Average = 0ms
    "Ping measures the round-trip time for messages sent from the originating host to a destination computer that are echoed back to the source." So the needed time for the message to arrive from your computer to the fake server is summed with the time needed for the fake server to send (and receive) a message from original server. In your case host and destination computer are the same thing so it may seem like there is no additional ping.
    The time can also be effected with the level of efficiency of your implementation. I think it doesn't matter what programming language you use (for sockets) because you wont find any notable difference.

  7. The Following User Says Thank You to stevomitric For This Useful Post:

    kung foo man (16th March 2017)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •