GithubHelp home page GithubHelp logo

jschenke488 / phantomx Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 6jarjar6/phantomx

0.0 0.0 0.0 109 KB

Use your own Minecraft server with your Xbox or PS4 and play with friends!

Home Page: https://nightly.link/jschenke488/phantomX/workflows/makefile/main/phantom.zip

License: MIT License

Go 93.31% Makefile 6.69%

phantomx's Introduction

Downloads

phantomX - a phantom fork

Makes hosted Bedrock/MCPE servers show up as LAN servers, specifically for consoles.

You can now play on remote servers (not Realms!) on your Xbox and PS4 with friends.

It's like having a LAN server that's not actually there, spooky.

Installing

phantom is a command line application with no GUI (yet). See the usage section below.

Download phantomX from this repo releases page.

Download phantom from jhead's repo releases page.

macOS / Linux

Add execute permissions if necessary:

$ chmod u+x ./phantom-<os>

Just replace <os> with macos, linux, etc. for the correct OS you're using.

Usage

Open up a command prompt (Windows) or terminal (macOS & Linux) to the location where you downloaded phantom, then type in the phantom command and hit enter. The server should show up on your LAN server list within a few seconds. If not, you did something wrong. Or I did ;)

Usage: ./phantom-<os> [options] -server <server-ip>

Options:
  -6	Optional: Enables IPv6 support on port 19133 (experimental)
  -bind string
    	Optional: IP address to listen on. Defaults to all interfaces. (default "0.0.0.0")
  -bind_port int
    	Optional: Port to listen on. Defaults to 0, which selects a random port.
    	Note that phantom always binds to port 19132 as well, so both ports need to be open.
  -debug
    	Optional: Enables debug logging
  -remove_ports
    	Optional: Forces ports to be excluded from pong packets (experimental)
  -server string
    	Required: Bedrock/MCPE server IP address and port (ex: 1.2.3.4:19132)
  -timeout int
    	Optional: Seconds to wait before cleaning up a disconnected client (default 60)

Example

Connect to a server at IP lax.mcbr.cubed.host port 19132:

./phantom-<os> -server lax.mcbr.cubed.host:19132

fVoNSdU

Same as above but bind to a specific local IP:

./phantom-<os> -bind 10.0.0.5 -server lax.mcbr.cubed.host:19132

Same as above but bind the proxy server to port 19133:

./phantom-<os> -bind_port 19133 -server lax.mcbr.cubed.host:19132

Same as above but bind the proxy server to local IP 10.0.0.5 and port 19133:

./phantom-<os> -bind 10.0.0.5 -bind_port 19133 -server lax.mcbr.cubed.host:19132

Running multiple instances

If you have multiple Bedrock servers, you can run phantom multiple times on the same device to allow all of your servers to show up on the LAN list. All you have to do is start one instance of phantom for each server and set the -server flag appropriately. You don't need to use -bind or change the port. But you probably do need to make sure you have a firewall rule that allows all UDP traffic for the phantom executable.

A note on -bind:

The port is randomized by default and specifically omitted from the flag because the port that phantom runs on is irrelevant to the user. phantom must bind to port 19132 on all interfaces (or at least the broadcast address) to receive ping packets from LAN devices. So phantom will always do that and there's no way to configure otherwise, but you can also pick which IP you want the proxy itself to listen on, just in case you need that. You shouldn't though.

As long as the device you run phantom from is on the same LAN, the default settings should allow other LAN devices to see it when you open Minecraft.

A note on -bind_port:

The port used by the proxy server can be defined with the -bind_port flag. It can be useful if you are behind a firewall or using Docker and want to open only necessary ports to phantom. Note that you'll always need to open port 19132 in addition to the bind port for phantom to work.

This flag can be used with or without the -bind flag. Default value is 0, which means a random port will be used.

Building

Makefile builds for Windows, macOS, and Linux, including x86 and ARM.

make

How does this work?

On Minecraft platforms that support LAN servers, the game will broadcast a server ping packet to every device on the same network and display any valid replies as connectable servers. This tool runs on your computer - desktop, laptop, Raspberry Pi, etc. - and pretends to be a LAN server, acting as a proxy, passing all traffic from your game through your computer and to the server (and back), so that Minecraft thinks you're connected to a LAN server, but you're really playing on a remote server. As soon as you start it up, you should see the fake server listed under LAN and, upon selecting it, connect to the real Bedrock/MCPE server hosted elsewhere.

For an optimal experience, run this on a device that is connected via ethernet and not over WiFi, since a wireless connection could introduce some lag. Your game device can be connected to WiFi. Your remote server can be running on a computer, a VM, or even with a Minecraft hosting service.

Supported platforms

  • This tool should work on Windows, macOS, and Linux.
  • ARM builds are available for Raspberry Pi and similar SOCs.
  • Minecraft for Windows 10, iOS/Android, Xbox One, and PS4 are currently supported.
  • Nintendo Switch is not supported.

Note that you almost definitely need to create a firewall rule for this to work. On macOS, you'll be prompted automatically. On Windows, you may need to go into your Windows Firewall settings and open up all UDP ports for phantom.

Troubleshooting

My server isn't showing up on the list but it's online and phantom is showing connections!

Make sure "Visible to LAN players" is turn ON in your server's settings: (below shows setting OFF)

More info:

phantomx's People

Contributors

jhead avatar 6jarjar6 avatar renovate[bot] avatar jschenke488 avatar drakon64 avatar scr34m avatar jaredible avatar nkelemen18 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.