EasyTier with frp Internal Network Traversal

Background

Foreign servers have high latency, which makes game streaming inconvenient; domestic servers have expensive bandwidth, which makes game streaming unaffordable. So I thought of using internal network traversal to open a public port…

Preparation

Any internal network traversal service will do — only a single port is needed. Here I use the public 1.1.1.1:12345 as an example.

⚠️ Note: For the local <IP:PORT> of the internal network traversal, be careful NOT to use 127.0.0.1 or localhost; you can use another internal address bound to your network interface, such as 192.168.1.23. Otherwise it will complain about a loopback address or something. Just use the port EasyTier listens on, which defaults to 11010.

The final result is:

1
1.1.1.1:12345 -> 192.168.1.23:11010

Steps

EasyTier CLI

Recommended method: After enabling internal network traversal locally, you don’t need to change anything. For other devices to connect to this device, just add a shared node config: -p "tcp://1.1.1.1:12345".

I also discovered a parameter that can be set locally: --mapped-listeners tcp://1.1.1.1:12345. In this case, other devices don’t need to add a shared node config; they seem to auto-detect this public address. However, this hasn’t been strictly verified, so I’ll leave it at that for now.

EasyTier GUI Client

After enabling internal network traversal locally, in the app: Network ModeStandalone, then do the same as above. For other devices to connect to this device, just add a shared node config: tcp://1.1.1.1:12345.

I also found a setting: Advanced SettingsListener Mapping, which seems to be the same feature as --mapped-listeners. However, I couldn’t get it to connect successfully; not sure whether it’s a configuration issue.