HowTo/DccOverI2p
Note: If you make a mistake somewhere, you might reveal your real IP address to the other party and potentially IRC server administrators. Do not attempt this if you are not confident about making mistakes.
Overview
- DCC is familiar to IRC users as a way of privately chatting, and sending/receiving files, in a way that involves only direct connections between IRC clients and doesn't involve the IRC server.
This howto walks you through the steps needed to do anonymous DCC chat and file transfer over I2P
1. Get IRC over I2P working
- To do DCC over I2P, you will first need to be successfully using IRC over I2P.
This is pretty straightforward - get the dest key for irc.postman.i2p, irc.freshcoffee.i2p or irc.arcturus.i2p and set up a client tunnel, and point your IRC client at whatever port you choose.
Once you've connected, join the #i2p channel, and verify that you are able to chat to others through the irc server
2. Create a DCC Destination
- To offer DCC chat, or to send a file via DCC, you need a way for your peer's IRC client to connect directly into your IRC client.
Note that this howto is based on the notion of you being the initiator of DCC chat or file transfer, and your peer the acceptor.
Create a whole new destination key, call it (say) dcc.irc.<mynick>.i2p. For example, my (aum's) destkey for DCC'ing is called dcc.irc.aum.i2p
Get this key to your peer user - stick it up on your eepsite, or paste it into a privmsg, or whatever.
3. Agree on a Port
- Due to spasticities in the IRC/DCC protocol, you and the other party will need to agree on the same port number that is free on both your and your peer's machine. For the purposes of this walkthrough, I'll assume you have both agreed on port 26667.
4. Open Server and Client Tunnels
- You - set up a server tunnel, connecting your dcc.irc.<nick>.i2p destkey to port 26667 (or whatever port you and your peer chose)
Your peer - set up a client tunnel, listening on port 26667 (or whatever you agreed upon), using the dcc.irc.<nick>.i2p destkey
5. Configure your IRC client
- Set your IRC client so that for DCC, it listens *only* on port 26667 (or whatever you agreed), and announces its IP address as 127.0.0.1.
6. Do the Thing
- With your IRC client, initiate the DCC CHAT or file SEND request.
Your peer should see the request, and manually/automatically accept.
All things going will, you'll now be chatting or sending files, protected by the anonymity and encryption of I2P.
7. Security Concerns
- Since I2P will always show connections as coming from the same source i2p (most likely 127.0.0.1) you can fall victim to someone who continously tries to connect to your dcc.irc.<nick>.i2p tunnel. In case he connects before your connection on IRC connects, he will successfully intercept the file without you even directly knowing about it.
Problems might also arise when trying to send multiple files at once.