4

Is possible to join a Bedrock Server from a PS4? If so, how?

4

Is possible! You just need a PC running Windows, macOS or Linux and an app called phantom for creating a LAN Server that the PS4 can join from the Friends tab.

To use phantom, you need to:

  • Download the correct file for your system from GitHub Releases
  • Look for the location of the file that you just downloaded
  • Copy the path of the file
    • Windows: Press Shift and Right Click the file, then select "Copy as path"
    • macOS: Select the file, go to the top bar and click "Edit" and then select "Copy "phantom-macos" as Pathname"
  • Open a terminal or command line for your Operating System
    • Windows: Press Win + R, write cmd and press Enter
    • macOS: Press + Space, write "Terminal" and press Enter
  • macOS and Linux Only: Make the file executable by writing chmod +x <paste here the path to the file> and press enter
    • macOS: Go to "Edit" on the top bar and select "Paste"
  • Paste the path that you just copied on the terminal
    • Windows: Right Click on the black area or press CTRL + V (Windows 10 only)
    • macOS: First you need write a dot (.), then go to "Edit" on the top bar and select "Paste"
  • After the path of the file, add a space and -server <server-ip-and-port> (for example, -server example.com:19132)
  • You should have something like
C:\Users\lemon>"E:\phantom-windows.exe" -server example.com:19132
  • Press Enter, you should see something like
Starting up with remote server IP: example:19132
INFO: 2020/02/02 20:48:00 proxy.go:75: Binding ping server to: 0.0.0.0:19132
INFO: 2020/02/02 20:48:00 clientmap.go:66: Starting idle connection handler
INFO: 2020/02/02 20:48:00 proxy.go:84: Binding proxy server to: 0.0.0.0:51237
INFO: 2020/02/02 20:48:00 proxy.go:91: Proxy server listening!
  • On your PS4, you should be able to see the server on the Friends tab as a LAN Game

enter image description here

Just connect and you are done! Remember that phantom needs to be running when you want to play on the server from your PS4.

2
  • Wow could it be more complicated to join a server of people who are playing the same game as you XD – Stormblessed Feb 3 '20 at 0:18
  • 1
    That is Sony for you. There are "protections" in place that prevent players from connecting directly to dedicated servers. – Lemon Feb 3 '20 at 0:24
2

For the admins that want people who dont own computers to be able to join their server, you can set this PHP script on a web server behind the same public IP as your minecraft server :

EDIT: there is also another option, see at the end

EDIT: I made the script a little more explicit with less hardcoded hex strings

$remote_address = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) // used when behind a reverse proxy
{
    $remote_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
}

$server_type = 'MCPE'; // minecraft pocket edition
$server_name = 'Dedicated Server';
$dont_know_1 = ''; // 390 in captured packets
$server_version = '1.14.60';
$players_connected = '0';
$max_players_allowed = '10';
$dont_know_2 = ''; // 13763012933581449452 in captured packet
$world_name = 'Bedrock level';
$server_mode = 'Survival';
$server_status = '1';
$ipv4_port = '19132';
$ipv6_port = '19133';

$server_id = '';
$server_id .= $server_type . ';';
$server_id .= $server_name . ';';
$server_id .= $dont_know_1 . ';';
$server_id .= $server_version . ';';
$server_id .= $players_connected . ';';
$server_id .= $max_players_allowed . ';';
$server_id .= $dont_know_2 . ';';
$server_id .= $world_name . ';';
$server_id .= $server_mode . ';';
$server_id .= $server_status . ';';
$server_id .= $ipv4_port . ';';
$server_id .= $ipv6_port . ';';

$server_id_bytes = $server_id;

$raknet_packet_type = '1c'; // unconnected pong raknet packet
$raknet_time_since_state = '0000000000000000'; // time since service start in ms, ignore by Minecraft so we can put 0
$raknet_server_guid = 'cafecafecafecafe'; // server GUID, set whatever you want
$raknet_offline_message_id = '00ffff00fefefefefdfdfdfd12345678'; // message id, must match the ping one, which is this hardcoded value
$raknet_server_id_size = sprintf('%04X', strlen($server_id_bytes)); // server id size in bytes

$headers = '';
$headers .= $raknet_packet_type;
$headers .= $raknet_time_since_state;
$headers .= $raknet_server_guid;
$headers .= $raknet_offline_message_id;
$headers .= $raknet_server_id_size;

$message = pack('H*', $headers);
$message .= $server_id_bytes;
$length = strlen($message);

$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

$r = socket_bind($sock, '0.0.0.0', 19132);

for ($t = 0; $t < 10; ++$t)
{
    for ($i = 30000; $i < 65535; ++$i)
    {
        socket_sendto($sock, $message, $length, 0, $remote_address, $i);
        usleep(10);
    }
    sleep(1);
}

print('sent a batch of raknet pong to ' . $remote_address);

?>

Then here are the steps for the users :

  1. froward UDP ports 30000-65535 to their console
  2. go to the server list in the game
  3. start a web browser (on the console or on their smartphone if they are on the same network) and go to your web server hosting the above script
  4. immediatly switch back to the server list on the game
  5. your server will appear as a LAN server for few seconds, they can connect to it

Basically the game will add any server that sends it a raknet unconnected pong UDP packet using the source IP address of the UDP packet. If you manage to send such a packet from the internet to the console and on the right port your server will show up.

EDIT: one of my users had a very poor router and could'nt set a range port redirect. We managed to make him join by setting an Unbound DNS server as a simple DNS relay but intercepting DNS for the registered minecraft servers "mco.lbsg.net" to redirect him to our actual server (we used some data from here). Now when he tries to join the LifeBoat server he actually connects to our own server. From an user perspective, setting a custom DNS server is easier but requires more trust.

0
2

For creating shareable configurations, I will add to this answer:

On Windows, you can create the batch (.bat) file shown below in the same folder as the executable (.exe) file to start the process by right-clicking → Run As Administrator on the .bat file (x = IP Address, # = Port Number):

cd %~dp0
phantom-windows-32bit.exe -server x.x.x.x:#

The same can be done on MacOS by creating the script below with no file extension in the same folder as phantom-macos:

#!/bin/bash
LAUNCH_DIRECTORY=$(cd "$(dirname "$0")"; pwd -P)
"$LAUNCH_DIRECTORY/phantom-macos" -server x.x.x.x:#

However, MacOs requires a few extra steps for setup and packaging to set permissions so that it will run. You will need to right-click on (not inside) the containing folder → New Terminal at Folder and then type the following two commands:

chmod +x nameofscript
chmod +x phantom-macos

Alternatively, you can manually open a terminal window and type "chmod +x " and just drag the files into the terminal.

This will make both files executable and the files should retain those settings if you zip up the folder and send to a friend so that they don't have to manually run these commands.

From here you just need to right-click both files (the script and phantom-macos) and → Open → Open Anyway to allow them to run. (*If you followed the steps above, this step is the only extra configuration someone else will need to do on their Mac if you send them a zipped package as described.)

Once this is done, you can double-click nameofscript to launch phantom-macos from then on.

*Depending on your version of MacOS you may also need to disable the firewall for this to work.

1
  • 1
    On macOS and Linux, you can use bash scripts. – Lemon Mar 26 '20 at 2:50
-1

The official answer here is, not yet. As of the time I'm writing this answer (08:31 EST, 04/27/2020), there is no official support for servers or realms on the PS4 yet, although it is expected to be supported by the end of 2020. There are a few ways to access servers unofficially on a PS4, but all of them are technically illegal, and most require hacking/jailbreaking your console.

6
  • 1
    Check my answer, they are not illegal and does not requires a PS4 with CFW. – Lemon Apr 27 '20 at 18:23
  • Actually, they are illegal. Mojang has decided not to allow PS4 players to access realms or servers yet, because Sony's current settings make it difficult to do so without causing major lag and bugs. Any method you can use to allow access to servers or realms is illegal, as it violates the terms and conditions of the game, and breaks license agreements allowing you to play the game. – ZachTalonGamesYT Apr 27 '20 at 18:34
  • "without causing major lag and bugs" do you have evidence about this? (either information from Mojang/Microsoft/Sony or someone experiencing it with proof). I have played with friends and never had any problems with any servers. – Lemon Apr 27 '20 at 18:51
  • 1
    There is also the point that connections are actually possible, as you can see with Phantom (you can play multi platform via LAN but not via direct connect). There are no limitations other than the tab being disabled. – Lemon Apr 27 '20 at 18:53
  • 1
    If you think that is illegal, read the Software Product License Agreement and PSN TOS. If you still think that is illegal, ask a question on Legal.SE. – Lemon Apr 27 '20 at 19:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.