neko icon indicating copy to clipboard operation
neko copied to clipboard

[Feature Request] Connecting from an internal and external network

Open Kienguy opened this issue 3 years ago • 11 comments

I'd like to access the neko instance on my local computer while also having my friend access it over the internet. From what I can tell, the NEKO_NAT1TO1 variable only can accept one ip address at a time. Is there a solution to this I'm missing?

Kienguy avatar Apr 12 '21 21:04 Kienguy

It can accept multiple addresses, separated by space.

m1k1o avatar Apr 12 '21 21:04 m1k1o

I see. Thank you

Kienguy avatar Apr 12 '21 22:04 Kienguy

My apologies for reopening this, but I'm now getting an error for "invalid 1:1 NAT IP mapping"

Kienguy avatar Apr 12 '21 22:04 Kienguy

I am not sure how that works in pion. We are only pasing this variable down to pion.

m1k1o avatar Apr 13 '21 10:04 m1k1o

I have this same issue as well, whenever i space two ip addresses out i'm unable to use both of them. It's either using the public ip address, using another ip address, or something when i input the env. so it's likely pion's fault on this one, maybe? edit: i also get disconnects when im using my public ip address, though i've tested via my phone and it works fine there, just don't know how to configure it so i can be on my local lan and be able to watch..

kokomo123 avatar May 16 '21 17:05 kokomo123

How do you separate the two IPs? As said before neko expects a whitespace between the IPs, no comma or slash. E.g. 192.168.2.1 192.168.2.5

Further NAT1T is an optional field. Perhaps omitting it work in your case (explanation below)? Have you tried writing the internal IP first?

At last I think the main problem is your router. It does bot support hairpinning [link].

If you enable NAT1to1 neko reponse with the IPs given. The external IP is reachable and known for your local lan, so it tries to connect over it. The traffic stops at your router which without hairpinning does not know what to do and drops the traffic.

mbattista avatar May 16 '21 22:05 mbattista

I've been following original issue, that is introducing this functionality here. It looks like, also name says it, it is only NAT 1:1. Multiple addresses were meant for IPv4 and IPv6, that's why it with different addresses don't work. Although, there is option to add new addres to existing (private) but since we are in Docker, even that private would not work.

Perhaps one solution could be running this with --net=host and calling SetNAT1To1IPs with ICECandidateTypeSrflx option. I didn't try that yet, so that would be only theoretical solution.

m1k1o avatar May 16 '21 22:05 m1k1o

How do you separate the two IPs? As said before neko expects a whitespace between the IPs, no comma or slash. E.g. 192.168.2.1 192.168.2.5

Further NAT1T is an optional field. Perhaps omitting it work in your case (explanation below)? Have you tried writing the internal IP first?

At last I think the main problem is your router. It does bot support hairpinning [link].

If you enable NAT1to1 neko reponse with the IPs given. The external IP is reachable and known for your local lan, so it tries to connect over it. The traffic stops at your router which without hairpinning does not know what to do and drops the traffic.

Ah, it may be hairpinning at my virtual router. so, it might be a firewall rule i could make somehow. Thanks... it's probably not NAT1TO1's fault at all and can be my own. Nevermind then, 👍🏻

kokomo123 avatar May 16 '21 23:05 kokomo123

Have you tried what happens if you omit the value?

I run neko behind two routers in a docker and I can connect to it with internal and external IP without having to specify NAT1to1.

mbattista avatar May 17 '21 05:05 mbattista

I'll try omitting that and try running it with reverse proxy, if that doesn't work i might have to change the network connection for the machine i guess to my actual LAN instead of the virtual router's LAN.

kokomo123 avatar May 17 '21 11:05 kokomo123

There might be posibility to acheive this using a hack. Rewriting IP on client in SDP messages.

m1k1o avatar Jun 17 '22 19:06 m1k1o