New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rtorrent 0.9.7 reporting internal ip to the tracker #731
Comments
Thanks for the bug report! |
If that is a regression of 0.9.7, then it should be changed to use |
I believe this commit introduced the bug: rakshasa/libtorrent@d0b7724 I'm not quite sure but I believe that should be Even if the bug can be fixed through this change, I suggest that it's a bad idea to try guessing the local address to send as a param without the user requesting it in the config. For any computer NATed by a router, it's going to find the wrong address since the computer isn't assigned a public IPv4 address under NAT. |
Hi everyone ! 7 monthes later, the bug is still present, can you merge it ? :/ |
+1 to please merge it :) This bug is really annoying |
Having the same issue, please merge the fix. Thanks. |
Any news about when this fix might be merged? |
Hi all, in case it's unclear, I just wrote the patch - I'm not one of the developers and I can't merge this myself. Unfortunately they seem to have gone on indefinite hiatus again. Does anyone know which trackers are affected by this? What is happening here is that in addition to connecting over IPv4, rtorrent is sending another address via If that isn't an option for you, you can either rebuild rtorrent yourself, or see if one of the following in your
|
EMP for me at least. |
omg ew... (same here) |
I know this might be the long way around, but since the fix mentioned by @chros73 isn't working for me, I ended up writing a short bash-script that gets my external IP and leaves that in a txt-file. Unfortunately I can't quite get rtorrent to read the file and set network.local_address.set as the contents of that file. Any help would be appreciated, what I have so far is: # Get public IP address without the need of having dynamic DNS service, also works from behind NAT, through tunnel I run the pingcheck-script and rtorrent in separate dockers so /ip_check/ip is a shared folder and file between them. |
Which part of it doesn't work? :) You need to escape the inner quotes: method.insert = get_public_ip_address, simple|private, "execute.capture=bash,-c,\"cat /ip_chech/ip\"" |
@chros73 - Hmm, I feel like I had that in my code, but it's clear I lost it when I wrote it here. I've just tried it - using your correction, but it still doesn't work. The reason your original method isn't working is because the docker-image I'm using doesn't come with dnsutils/dig-command. I'm not sure how I would "break up the test" to see whether the issue is with the first (method.insert) or second command (schedule2), but since "network.local_adress.set" works as a separate command in itself (IE. network.local_address.set = XXX.XXX.XXX.XXX) I feel like the issue is with the first part (method.insert), but I might be wrong :) |
The whole command ( You can try out your |
Okay, so, I figured out how to remove the newline in bash, using the command: But that isn't quite right, as rtorrent doesn't set the IP correctly. Testing the command in rtorrent gives the following to feedbacks: I'm fairly certain that what I'm missing is a way to remove the newline and correctly escape the sequence of characters needed to do that, am I onto the right path? I've tried it both with and without eval, and that doesn't change anything. |
Okay, so I've moved past the first issue, getting "get_public_ip_address" to actually give a result. When I run that command now (print=$get_public_ip_address=) it gives me a correct IP, IE. my external IP from the VPN. The command I've used to get the first bit to resolve is: However, the schedule2 still fails. The output I get from that is: |
Just to reiterate, you shouldn't need any scripts -
See if your tracker admins can fix this for you. |
Hi @afontenot - thanks for your solution, it seems to have solved the issue of the tracker status being "Invalid IP detected" when I use network.local_address.set = 127.0.0.1 . However, this keeps rtorrent reporting two IP's to the tracker. I've tested it with http://ipmagnet.services.cbcdn.com - where it reports two IP's to the tracker:
So, I prefer the method of using a script to set the network.adress to only my external IP - but I might not undertand why rtorrent needs to report my internal IP too? So, if anyone is able to help me fix the current issue where I'm getting:
So, in short - how do I fix the fact that when I set my current dynamic IP in rtorrent.rc using: |
Update - the issue has been solved. I reinvestigated the output I got from So, re-doing the Thank you @chros73 and @afontenot for helping out with solutions, and general understanding of rtorrent, I learned a lot by troubleshooting this with you guys! |
@afontenot Wanted to say thanks! Manually inserted your commit and rebuilt libtorrent. I do have one question: After using your fix rtorrent is only reporting the External IPv4, not the External IPv6. EDIT: Well, rakshasa just merged it lol. So I guess it's fine! |
After upgrading, I noticed there was a (private) tracker that prevented connections to other peers, due to the internal ip on the private subnet being reported together with my external. Setting network.local_address.set to my external ip fixed this, but it seems inconvenient to have to do this, especially if you don't have a fixed ip.
The text was updated successfully, but these errors were encountered: