• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

admin/H05-Oct-2020-2,9312,107

benc/H05-Oct-2020-2,5881,594

client/H05-Oct-2020-2,1041,728

contrib/H05-Oct-2020-8,0925,555

crypto/H05-Oct-2020-9,5396,540

debian/H05-Oct-2020-367266

dht/H05-Oct-2020-9,3416,077

doc/H03-May-2022-8,2896,013

exception/H03-May-2022-3,3763,216

interface/H05-Oct-2020-6,1844,197

io/H05-Oct-2020-623305

memory/H05-Oct-2020-1,8131,112

net/H05-Oct-2020-5,9864,300

node_build/H03-May-2022-581,596445,217

node_modules/H05-Oct-2020-404342

subnode/H05-Oct-2020-4,2223,148

switch/H05-Oct-2020-2,0131,369

test/H05-Oct-2020-1,350982

tools/H05-Oct-2020-1,1931,041

tunnel/H05-Oct-2020-3,2412,612

util/H03-May-2022-13,0278,291

wire/H05-Oct-2020-2,4751,213

.dockerignoreH A D05-Oct-2020101 109

.flowconfigH A D05-Oct-202058 126

.gitignoreH A D05-Oct-2020489 3534

.jshintignoreH A D05-Oct-202055 54

.jshintrcH A D05-Oct-2020102 87

.travis.ymlH A D05-Oct-20201.1 KiB5044

DockerfileH A D05-Oct-2020638 2720

HACKING.mdH A D05-Oct-20207 KiB163125

LICENSEH A D05-Oct-202034.3 KiB675553

README.mdH A D05-Oct-202016.5 KiB531348

README_DE.mdH A D05-Oct-202018 KiB488304

README_ES.mdH A D05-Oct-202015.9 KiB458309

README_FR.mdH A D05-Oct-202019.7 KiB576381

README_GR.mdH A D05-Oct-202017.1 KiB392260

README_HR.mdH A D05-Oct-202013.3 KiB457291

README_PT-BR.mdH A D05-Oct-202017.5 KiB510328

README_RU.mdH A D05-Oct-202021.7 KiB442257

README_SV.mdH A D05-Oct-202012.2 KiB378253

README_ZHT.mdH A D05-Oct-202013.6 KiB393251

android_doH A D05-Oct-20204 KiB171142

cleanH A D05-Oct-20201,008 2710

cross-doH A D05-Oct-2020838 3224

doH A D05-Oct-202064 31

package-lock.jsonH A D05-Oct-2020666 1918

package.jsonH A D05-Oct-2020135 98

README.md

1# cjdns
2
3[Русская версия](README_RU.md)
4[Hrvatski](README_HR.md)
5[Svenska](README_SV.md)
6[Ελληνικά](README_GR.md)
7[Deutsch](README_DE.md)
8[繁體中文](README_ZHT.md)
9[Español](README_ES.md)
10[Français](README_FR.md)
11[Português brasileiro](README_PT-BR.md)
12
13#### *Networking Reinvented*
14
15Cjdns implements an encrypted IPv6 network using public-key cryptography for
16address allocation and a distributed hash table for routing. This provides
17near-zero-configuration networking, and prevents many of the security and
18scalability issues that plague existing networks.
19
20[![Build Status](https://api.travis-ci.org/cjdelisle/cjdns.svg?branch=master)](https://travis-ci.org/cjdelisle/cjdns)
21[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/387/badge)](https://bestpractices.coreinfrastructure.org/projects/387)
22[![tip for next commit](https://tip4commit.com/projects/941.svg)](https://tip4commit.com/github/cjdelisle/cjdns)
23[![irc](https://img.shields.io/badge/irc%20chat-%23cjdns-blue.svg)](https://kiwiirc.com/client/irc.efnet.org/?nick=visitor|?#cjdns)
24![License](https://img.shields.io/github/license/cjdelisle/cjdns.svg)
25
26## Testimonials
27
28    23:26 <@jercos> well, cjdns is now officially more reliable than the open
29                    internet for getting to my cheaper VPSes :|
30
31    12:52 < mariner> so i don't know if it's been done before, and i assume it's
32                     obvious, but I think it's neat. Currently on hype from an
33                     airplane
34
35    00:36 < tester> man sites take so long to load on i2p
36    00:36 < tester> i value speed over anonymity any day
37
38    <DuoNoxSol> it's notably more reliable than the normal internet
39
40    09:46 < Kubuxu> I so love cjdns code base
41
42    <whyrusleeping> my internet is way better now.
43    <whyrusleeping> thanks
44    <whyrusleeping> i'm really upset and sad that its better
45    <whyrusleeping> but also quite happy
46
47    21:01 <@grewalsat> this is amazing. with my workpalce speedtest.net results I get around 6+mb speed, and with my cjdns-gate as vpn network I'm getting like 11-15mb download speed in speedtest.net
48    21:01 <@grewalsat> :P
49    21:01 <@grewalsat> plus, access anything! :D
50
51    <davidar> Yeah, I have to admit I sort of avoided hypeirc because of stuff like that
52
53## Community
54
55* [irc://irc.freenode.org/#cjdns][IRC Web]
56* [Hyperboria][] the largest cjdns network, as of October 2015 there are 2100 nodes.
57* [/r/darknetplan][]
58* [#cjdns on Twitter][]
59* [/r/CJDNS](https://www.reddit.com/r/cjdns/)
60
61
62## Documentation
63
64* [Project Goals](doc/projectGoals.md)
65* [Cjdns Whitepaper](doc/Whitepaper.md)
66* [Cjdns on Wikipedia][]
67
68Advanced configuration:
69
70* [Setup a cjdns NAT gateway for your LAN](doc/nat-gateway.md)
71* [Install cjdns on OpenIndiana](doc/open-indiana.md)
72
73Thank you for your time and interest,
74
75The cjdns developers.
76
77--------------------------------------------------------------------------------
78
79## How to install cjdns
80
81These instructions are for Debian-based Linux distributions and macOS. They should be
82informative enough for use on other distributions - just don't expect them to
83work verbatim. If you want to know what [operating system's base is go here](https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg).
84
85### 0. Install dependencies
86
87On both platforms, installing [Node.js](https://nodejs.org/), although preferable,
88is not strictly necessary. If Node.js is unavailable or an unacceptable version,
89it will be downloaded and installed in the source tree.
90
91#### Debian-based distro:
92
93    sudo apt-get install nodejs git build-essential python2.7
94
95#### Fedora 22+ based distro:
96
97    sudo dnf install nodejs git
98    sudo dnf install @development-tools
99
100#### RHEL based distro (adds the EPEL repo):
101
102    sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
103    sudo yum install nodejs git
104    sudo yum install @development-tools
105
106#### Building from package:
107
108    sudo yum localinstall https://kojipkgs.fedoraproject.org//packages/cjdns/17.4/4.el6/src/cjdns-17.4-4.el6.src.rpm
109
110If you are on a laptop and suspend or hibernate it, cjdroute will take a few
111minutes to make coffee and figure out what just happened when it wakes up.  You
112can speed this up dramatically with:
113
114    systemctl enable cjdns-resume
115
116The resume service restarts cjdns when the system wakes up from sleep.
117
118#### Gentoo
119
120    emerge --ask nodejs sys-devel/gcc dev-lang/python:3.4 dev-vcs/git
121
122#### macOS:
123
124Install with [Homebrew](https://brew.sh/):
125
126    brew install cjdns
127
128Install with [MacPorts](https://www.macports.org/):
129
130    sudo port install cjdns
131
132#### OpenBSD:
133
134    pkg_add git node gcc gmake bash
135
136Select version gcc-4.8.1p2 or more recent.
137
138#### FreeBSD:
139
140Everything you need is available prebuild in FreeBSD' ports.
141
142    pkg install gmake node
143
144#### Arch:
145
146You can install cjdns by running:
147
148    pacman -S cjdns
149
150If you need to build from source, everything you need can be installed like this:
151
152    pacman -S nodejs git base-devel
153
154Alternatively, you may like to install via AUR from the package, `cjdns-git`.
155After Installation, The configuration file is located at `/etc/cjdroute.conf`.
156To start the service `cjdns.service`, do:
157
158    systemctl start cjdns
159
160To stop it:
161
162    systemctl stop cjdns
163
164#### Gentoo:
165
166cjdns is not yet in the main Gentoo repository, so you will have to use an overlay.
167The easiest way is to use Layman but you can do it by hand, too.
168
169##### Layman:
170
171First, you need to install layman.
172
173    emerge layman
174
175If layman is installed correctly, you can add the overlay
176
177    layman -f
178    layman -a weuxel
179
180For future update of the overlay use
181
182    layman -S
183
184Now you can install cjdns
185
186    emerge cjdns
187
188##### By hand:
189
190You will have to clone the overlay repository
191
192    cd /opt
193    git clone https://github.com/Weuxel/portage-weuxel.git
194
195Now tell portage to use this repo
196
197    cd /etc/portage/repos.conf/
198
199Create a file `portage-weuxel.conf` containing
200
201    [weuxel]
202    location = /opt/portage-weuxel
203    masters = gentoo
204    auto-sync = yes
205
206Now sync
207
208    emerge --sync
209
210And install cjdns
211
212    emerge cjdns
213
214#### Automatic crash detection and restart
215
216Copy the the openrc init script from `contrib/openrc` to `/etc/init.d/` and modify the `CONFFILE` and `command` parameter to your needs.
217Then start cjdns by issuing
218
219    /etc/init.d/cjdns start
220
221Configure the init system to autostart cjdns
222
223    rc-update add cjdns default
224
225Copy the service_restart script `contrib/gentoo/service_restart.sh` to any convenient directory on
226your system and modify the eMail address. If you do not wish to be notified, comment out the whole line.
227Now add a crontab entry like this
228
229    # Restart crashed Services
230    * * * * *       root	/path/to/script/service_restart.sh
231
232#### Solus:
233
234Dependencies:
235
236    sudo eopkg install nodejs git build-essential system.devel python gcc binutils kernal-headers xorg-server-devel
237
238Then Follow the steps below:
239
240*Sorry for so many steps. A package is being worked on currently*
241
242##### 1. Retrieve cjdns from GitHub
243
244Clone the repository from GitHub and change to the source directory:
245
246    git clone https://github.com/cjdelisle/cjdns.git cjdns
247    cd cjdns
248
249##### 2. Build
250
251    ./do
252
253Look for `Build completed successfully, type ./cjdroute to begin setup.`, then
254proceed below:
255
256--------------------------------------------------------------------------------
257
258## Setup
259
260Run cjdroute without options for HELP:
261
262    ./cjdroute
263
264### 0. Make sure you've got the stuff.
265
266If you're on macOS, don't worry about this step.
267
268    LANG=C cat /dev/net/tun
269
270If it says: `cat: /dev/net/tun: File descriptor in bad state` Good!
271
272If it says: `cat: /dev/net/tun: No such file or directory`, create it using:
273
274    sudo mkdir -p /dev/net &&
275    sudo mknod /dev/net/tun c 10 200 &&
276    sudo chmod 0666 /dev/net/tun
277
278Then `cat /dev/net/tun` again.
279
280If it says: `cat: /dev/net/tun: Permission denied` You're probably using a VPS
281based on the OpenVZ virtualization platform. Ask your provider to enable the
282TUN/TAP device - this is standard protocol so they should know exactly what you
283need.
284
285
286### 1. Generate a new configuration file
287
288    ./cjdroute --genconf >> cjdroute.conf
289
290**Protect your conf file!**
291
292A lost conf file means you lost your password and
293connections and anyone who connected to you will no longer be able to connect.
294A compromised conf file means that other people can impersonate you on the
295network.
296
297To generate a conf file with permissions set so that only your user can
298read it and write to it:
299
300    (umask 077 && ./cjdroute --genconf > cjdroute.conf)
301
302
303### 2. Find a friend
304
305To get into an existing network (e.g. Hyperboria), you need to connect to
306someone who is already in the network. This is required for a number of
307reasons:
308
3091. It helps prevent abuse because bad people will be less likely to abuse a
310   system after they were, in an act of human kindness, given access to that
311   system.
3122. This is not intended to overlay The Old Internet, it is intended to replace
313   it. Each connection will in due time be replaced by a wire, a fiber optic
314   cable, or a wireless network connection.
3153. In any case of a disagreement, there will be a "chain of friends" linking
316   the people involved so there will already be a basis for coming to a
317   resolution.
318
319To find a friend, get out there and join our [community](#community). Also, have
320a look at the [Hyperboria Map](https://www.fc00.org/) to find peers near you.
321
322You can also use the geographically assorted list of public peering credentials for joining Hyperboria at [hyperboria/peers](https://github.com/hyperboria/peers).
323
324### 3. Connect your node to your friend's node
325
326**To initiate the connection OUTbound**
327
328In your conf file, you will see:
329
330``` javascript
331// Nodes to connect to.
332"connectTo":
333{
334    // Add connection credentials here to join the network
335    // Ask somebody who is already connected.
336}
337```
338
339A conf file with multiple friend-nodes, setup OUTbound, should look like:
340
341``` javascript
342// Nodes to connect to.
343"connectTo":
344{
345    //friend_1 (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
346    "0.1.2.3:45678":
347    {
348        "login": "k.alexander"
349        "password": "thisIsNotARealConnection_1",
350        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
351    },
352
353    //friend_2 (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
354    "5.1.2.3:5678":
355    {
356        "login": "k.alexander"
357        "password": "thisIsNotARealConnection_2",
358        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_2.k"
359    }
360}
361```
362
363You can add as many connections as you want to the `connectTo` attribute,
364following JSON syntax.
365
366
367**To allow your friend to initiate the connection INbound**
368
369In your conf file, you will see:
370
371``` javascript
372"authorizedPasswords":
373[
374    // A unique string which is known to the client and server.
375    {"password": "password001", "login": "default-login"}
376
377    // More passwords should look like this.
378    // {"password": "password002", "login": "my-second-peer"}
379    // {"password": "password003", "login": "my-third-peer}
380    // {"password": "password004", "login": "my-fourth-peer"}
381    ...
382
383    // "your.external.ip.goes.here:45678":{"login": "default-login", "password": "password001","publicKey":thisisauniqueKEY_001.k"}
384
385],
386```
387
388A conf file with multiple friend-nodes, setup INbound, should look like:
389``` javascript
390"authorizedPasswords":
391[
392    // A unique string which is known to the client and server.
393    {"password": "thisisauniquestring_001", "user": "k.alexander"}
394
395    // More passwords should look like this.
396    //William Jevons (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
397    {"password": "thisisauniquestring_002", "user": "William Jevons"}
398    //Marilyn Patel (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
399    {"password": "thisisauniquestring_003", "user": "Marilyn Patel"}
400    // {"password": "thisisauniquestring_004"}
401    ...
402
403    // "your.external.ip.goes.here:45678":{"password": "thisisauniquestring_001","publicKey":thisisauniqueKEY_001.k"}
404],
405```
406
407
408You need to give William Jevons (who is making the INbound connection) the following 4 items:
409
4101. Your external IPv4
4112. The port found in your conf file here:
412
413    `// Bind to this port.
414    "bind": "0.0.0.0:yourportnumberishere",`
415
4163. Their unique password that you uncommented or created: `"password": "thisisauniquestring_002"`
4174. Your public key: `"publicKey": "thisisauniqueKEY_001.k"`
4185. His username: "William Jevons"
419
420His login credentials will look something like this (with your IPv4 and port):
421
422```javascript
423"1.2.3.4:56789": {
424    "login": "William Jevons",
425    "password": "thisisauniquestring_002",
426    "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
427}
428```
429
430Please note that you and your friend can *initiate* a
431connection either outbound (from YOU --> FRIEND) or inbound (from FRIEND --> YOU)
432but traffic flows both ways once the connection is established.
433
434See [doc/configure.md](doc/configure.md) for more details on configuration,
435including how to peer with other cjdns nodes over ethernet and wifi.
436
437
438### 4. Secure your system - check for listening services
439
440Once your node is running, you're now a newly minted IPv6 host. Your operating
441system may automatically reconfigure network services to use this new address.
442If this is not what you intend, you should check to see that you are not
443offering more services than you intended to. ;)
444
445See [doc/network-services.md](doc/network-services.md) for instructions.
446
447
448### 5. Start it up!
449
450    sudo ./cjdroute < cjdroute.conf
451
452If you want to have your logs written to a file:
453
454    sudo ./cjdroute < cjdroute.conf > cjdroute.log
455
456To stop cjdns:
457
458    sudo killall cjdroute
459
460If you are having problems use `killall cjdroute` to return to sanity. Use
461`pgrep cjdroute` or `top` to see if it running.
462
463**NOTE!**
464
465This starts cjdns as the root user so it can configure your system
466without concern for permissions. To start cjdns as a non-root user, see
467[doc/non-root-user.md](doc/non-root-user.md).
468
469
470### 6. Get in IRC
471
472Welcome to the network! You're now a network administrator. There are
473responsibilities which come with being a network administrator which include
474being available in case there is something wrong with your equipment. You should
475stay on [IRC](#community) so that people can reach you.
476
477
478## Admin interface
479
480When cjdroute is up and running, the admin interface will be available at
481`udp://localhost:11234` (this can be changed in the `cjdroute.conf`
482configuration file). See [doc/admin-api.md](doc/admin-api.md) for more
483information about the admin interface. There are several tools in `contrib/`
484that can interact with it.
485
486You can access the admin API with:
487
488* the **Python library**; see [here](contrib/python/README.md).
489* the **Perl library**, maintained by Mikey; see [here](contrib/perl/CJDNS/README).
490
491
492## Reporting issues
4931. Don't report in this repo, please instead report it at https://github.com/hyperboria/bugs/issues
4942. Get on IRC and talk to somebody
4953. What will happen is either
496 * Someone feels like fixing it
497 * You feel like fixing it
498 * Nobody cares about it and it will be forgotten for a while and maybe someone will hit it later
499 and fix it or else it will get wiped away in a refactoring
500 * Nobody can fix it at the moment but it is considered worth remembering because it has great
501 significance to the way the code is developed, in this case it needs to be explained in technical
502 terms by someone with strong familiarity with the code. They will make a pull request to the
503 docs/bugs directory.
504
505### Security
506Security issues should be reported on IRC the same as other bugs. We don't have a closed
507group of people with special knowledge so that means the default security reporting method is
508full disclosure.
509
510See: [security_specification.md](https://github.com/cjdelisle/cjdns/blob/master/doc/security_specification.md) to see if a
511possible security issue is really a security issue.
512
513That time of year again... Time for some open source Projects!
514[![Hacktoberfest](https://img.shields.io/badge/Open%20Source-Hacktoberfest-orange.svg)](https://hacktoberfest.digitalocean.com/)
515
516[IRC Web]: http://chat.efnet.org/irc.cgi?chan=%23cjdns
517[Hyperboria]: https://hyperboria.net
518[/r/darknetplan]: https://www.reddit.com/r/darknetplan
519[#cjdns on Twitter]: https://twitter.com/hashtag/cjdns
520[Hyperboria Map]: https://www.fc00.org/
521[Buildbots]: https://buildbot.meshwith.me/cjdns/waterfall
522
523[Cjdns on Wikipedia]: https://fr.wikipedia.org/wiki/Cjdns
524[Distributed Hash Table]: https://en.wikipedia.org/wiki/Distributed_hash_table
525[Beyond Pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
526[Kademlia]: https://en.wikipedia.org/wiki/Kademlia
527
528[Tor]: https://www.torproject.org
529[I2P]: https://geti2p.net/en/
530[Freenet]: https://freenetproject.org
531

README_DE.md

1# cjdns
2
3[English](README.md)
4[Русская версия](README_RU.md)
5[Hrvatski](README_HR.md)
6[Svenska](README_SV.md)
7[Ελληνικά](README_GR.md)
8[繁體中文](README_ZHT.md)
9[Español](README_ES.md)
10[Français](README_FR.md)
11
12#### *Netzwerk neu erfunden*
13
14Cjdns implementiert ein verschlüsseltes IPv6 Netzwerk basierend auf Public-Key Kryptografie für die Adressen-Zuteilung und es benutzt eine verteilte Hash-Tabelle für das Routing.
15Dies ermöglicht eine nahezu konfigurationslose Handhabung und verhindert viele Sicherheits- und Skalierungs-Probleme, welche andere existierende Netzwerke heimsuchen.
16
17[![Build Status](https://api.travis-ci.org/cjdelisle/cjdns.svg?branch=master)](https://travis-ci.org/cjdelisle/cjdns)
18[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/387/badge)](https://bestpractices.coreinfrastructure.org/projects/387)
19[![tip for next commit](https://tip4commit.com/projects/941.svg)](https://tip4commit.com/github/cjdelisle/cjdns)
20[![irc](https://img.shields.io/badge/irc%20chat-%23cjdns-blue.svg)](https://kiwiirc.com/client/irc.efnet.org/?nick=visitor|?#cjdns)
21![License](https://img.shields.io/github/license/cjdelisle/cjdns.svg)
22
23## Testimonials
24
25    23:26 <@jercos> well, cjdns is now officially more reliable than the open
26                    internet for getting to my cheaper VPSes :|
27
28    12:52 < mariner> so i don't know if it's been done before, and i assume it's
29                     obvious, but I think it's neat. Currently on hype from an
30                     airplane
31
32    00:36 < tester> man sites take so long to load on i2p
33    00:36 < tester> i value speed over anonymity any day
34
35    <DuoNoxSol> it's notably more reliable than the normal internet
36
37    09:46 < Kubuxu> I so love cjdns code base
38
39    <whyrusleeping> my internet is way better now.
40    <whyrusleeping> thanks
41    <whyrusleeping> i'm really upset and sad that its better
42    <whyrusleeping> but also quite happy
43
44    21:01 <@grewalsat> this is amazing. with my workpalce speedtest.net results I get around 6+mb speed, and with my cjdns-gate as vpn network I'm getting like 11-15mb download speed in speedtest.net
45    21:01 <@grewalsat> :P
46    21:01 <@grewalsat> plus, access anything! :D
47
48    <davidar> Yeah, I have to admit I sort of avoided hypeirc because of stuff like that
49
50## Community
51
52* [irc://irc.efnet.org/#cjdns][IRC Web]
53* [Hyperboria][] das grösste cjdns-Netzwerk mit bis zu 2100 Knotenpunkten (Oktober 2015).
54* [/r/darknetplan][]
55* [#cjdns auf Twitter][]
56
57
58## Dokumentation
59
60* [Projekt-Ziele](doc/projectGoals.md)
61* [Cjdns Whitepaper](doc/Whitepaper.md)
62* [Cjdns auf Wikipedia][]
63
64Erweiterte Konfiguration:
65
66* [Installiere ein cjdns NAT gateway für dein LAN](doc/nat-gateway.md)
67* [Installiere cjdns auf OpenIndiana](doc/open-indiana.md)
68
69Danke für deine Zeit und dein Interesse,
70
71Die cjdns-Entwickler.
72
73--------------------------------------------------------------------------------
74
75## Installation von cjdns
76
77Diese Anleitungen sind für Debian-basierte Linux-Distributionen und macOS. Sie sollten erklärend genug sein, um sie auch auf anderen Distributionen zu verwenden - wenn auch nicht unbedingt eins-zu-ein.
78Wenn du wissen möchtest, [was die Basis deines Betriebssystems ist, klicke hier.](https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg)
79
80### 0. Installations-Abhängigkeiten
81
82Für beide Platformen ist es nicht zwingend notwendig, doch aber vorzuziehen, [Node.js](https://nodejs.org/) zu installieren. Wenn Node.js nicht verfügbar oder eine nicht akzeptierte Version ist, wird es in den Quellpfad heruntergeladen und installiert.
83
84#### Debian basierte Distribution:
85
86    sudo apt-get install nodejs git build-essential python2.7
87
88#### Fedora 22+ basierte Distribution:
89
90    sudo dnf install install nodejs git
91    sudo dnf install @development-tools
92
93#### RHEL basierte Distribution (Fügt das EPEL Repository hinzu):
94
95    sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
96    sudo yum install install nodejs git
97    sudo yum install @development-tools
98
99#### Aus dem Paket installieren:
100
101    sudo yum localinstall https://kojipkgs.fedoraproject.org//packages/cjdns/17.4/4.el6/src/cjdns-17.4-4.el6.src.rpm
102
103Wenn du Suspend oder Hibernate auf einem Laptop verwendest wird cjdroute ein paar Minuten brauchen um Kaffee zu machen udn herauszufinden, was eigentlich gerade passiert ist, wenn es aufwacht.
104Du kannst das aber dramatisch beschleunigen:
105
106    systemctl enable cjdns-resume
107
108Der Resume Service startet cjdns neu, wenn das System aufwacht.
109
110#### Gentoo
111
112    emerge --ask nodejs sys-devel/gcc dev-lang/python:3.4 dev-vcs/git
113
114#### macOS:
115
116Installation mit [Homebrew](https://brew.sh/):
117
118    brew install cjdns
119
120Installation mit [MacPorts](https://www.macports.org/):
121
122    sudo port install cjdns
123
124#### OpenBSD:
125
126OpenBSD ist momentan leider ein bisschen experimentell.
127
128    pkg_add git node gcc gmake bash
129
130Wähle die Version gcc-4.8.1p2 oder neuer.
131
132#### FreeBSD:
133
134Alles was du benötigst ist als Prebuild im FreeBSD' port bereits vorhanden.
135
136    pkg install gmake node
137
138#### Arch:
139
140Du kannst cjdns mit folgendem Befehl installieren.
141
142    pacman -S cjdns
143
144Wenn du aus den Quellen installieren möchtest, kann alles, was du brauchst hiermit installiert werden.
145
146    pacman -S nodejs git base-devel
147
148Alternativ kannst du per AUR das Packet `cjdns-git` installieren.
149Nach der Installation ist die Konfigurationsdatei unter  `/etc/cjdroute.conf` zu finden.
150Um den Service `cjdns.service` zu starten, führe
151
152    systemctl start cjdns
153
154 aus.
155 Um ihn zu stoppen:
156
157    systemctl stop cjdns
158
159#### Gentoo:
160
161cjdns ist noch nicht im Gentoo Repository, daher muss ein Overlay verwendet werden.
162Der einfachste Weg ist Layman zu verwenden, aber man kann das auch händisch machen.
163
164##### Layman:
165
166Als erstes muss Layman installiert werden.
167
168    emerge layman
169
170Wenn Layman korrekt installiert ist, kann man das Overlay hinzufügen.
171
172    layman -f
173    layman -a weuxel
174
175In Zukunft kann man folgenden Befehl verwenden um das Overlay zu syncen.
176
177    layman -S
178
179Jetzt kann cjdns installiert werden.
180
181    emerge cjdns
182
183##### Händische Installation:
184
185Zuerst muss das Overlay Repository geklont werden.
186
187    cd /opt
188    git clone https://github.com/Weuxel/portage-weuxel.git
189
190Nun bringen wir Portage dazu das Repo zu verwenden.
191
192    cd /etc/portage/repos.conf/
193
194Erstelle eine Datei `portage-weuxel.conf` mit folgendem Inhalt:
195
196    [weuxel]
197    location = /opt/portage-weuxel
198    masters = gentoo
199    auto-sync = yes
200
201Einmal syncen.
202
203    emerge --sync
204
205Und cjdns installieren.
206
207    emerge cjdns
208
209#### Automatische Crash Erkennung und neu starten
210
211Kopiere das OpenRC Init Skript aus `contrib/openrc` nach `/etc/init.d/` und ändere die Variablen `CONFFILE` und `command` nach Bedarf.
212Nun starte cjdns mit dem Kommando
213
214    /etc/init.d/cjdns start
215
216Konfigiere das Initsystem cjdns automatisch zu starten
217
218    rc-update add cjdns default
219
220Kopiere das service_restart Skript `contrib/gentoo/service_restart.sh` an eine beliebige, geeignete Stelle im Verzeichnisbaum deines Systems und ändere die eMailadresse. Wenn du keine eMail erhalten willst, wenn der Service neu gestartet wurde, dann kommentiere die komplette Zeile aus.
221Nun füge folgenden crontab Eintrag hinzu
222
223    # Restart crashed Services
224    * * * * *       root	/path/to/script/service_restart.sh
225
226#### Solus:
227
228Abhängigkeiten:
229
230    sudo eopkg install nodejs git build-essential system.devel python gcc binutils kernal-headers xorg-server-devel
231
232Dann folge den Schritten weiter unten:
233
234*Entschuldigung für so viele Schritte. Es wird gerade an einem Paket gearbeitet.*
235
236
237### 1. Hole cjdns from GitHub
238
239Klone das Repository von GitHub und wechsle zum Quellverzeichnis:
240
241    git clone https://github.com/cjdelisle/cjdns.git cjdns
242    cd cjdns
243
244### 2. Build
245
246    ./do
247
248Es sollte folgendes stehen: `Build completed successfully, type ./cjdroute to begin setup.`. Danach gehe vor wie weiter unten beschrieben:
249
250--------------------------------------------------------------------------------
251
252## Setup
253
254Lasse cjdroute ohne Optionen für HELP laufen:
255
256    ./cjdroute
257
258### 0. Stelle sicher, dass du alles bekommen hast.
259
260Wenn du macOS verwendest, brauchst du Dir über diesen Schritt keine Sorgen machen.
261
262    LANG=C cat /dev/net/tun
263
264Wenn steht: `cat: /dev/net/tun: File descriptor in bad state` Gut!
265
266Wenn steht: `cat: /dev/net/tun: No such file or directory`, erstelle es wie folgt:
267
268    sudo mkdir -p /dev/net &&
269    sudo mknod /dev/net/tun c 10 200 &&
270    sudo chmod 0666 /dev/net/tun
271
272Danach wieder `cat /dev/net/tun`.
273
274Wenn es sagt: `cat: /dev/net/tun: Permission denied` Dann verwendest du vielleicht einen VPS basierend auf der OpenVZ virtualisations Platform. Frage deinen Provider, ob er das TUN/TAP device - das ist standard Protokoll, sie sollten also genau wissen was du benötigst. Wenn du auf macOS bist, musst du dich nicht um dieses Setup kümmern.
275
276
277### 1. Erstelle ein neues Konfiguration-File
278
279    ./cjdroute --genconf >> cjdroute.conf
280
281**Schütze dein conf File!**
282
283Ein verlorenes conf File bedeutet, du hast dein Passwort und deine Verbindungen verloren und jeder der sich mit dir verbunden hatte wird nicht länger in der lage sein, sich mit dir zu verbinden.
284Ein kompromitiertes conf File bedeutet, dass andere Leute sich mit deiner Identität im Netzwerk ausgeben können.
285
286Um ein conf File mit den richtigen Rechten zu generieren, so dass nur dein User darauf schreiben und lesen kann:
287
288    (umask 077 && ./cjdroute --genconf > cjdroute.conf)
289
290
291### 2. Finde einen Freund
292
293Um in ein existierendes Netzwerk (z.B. Hyperboria) zu gelangen, musst du dich mit jemandem verbinden, der bereits mit diesem Netzwerk verbunden ist. Dies ist wegen verschiedensten Gründen notwendig:
294
2951. Es hilft den Missbrauch zu verhindern, denn schlechte Leute werden tendenziell ein System weniger missbrauchen, wenn ihnen, in einem Akt von menschlicher Freundlichkeit, von anderen der Zugang gewährt wird.
2962. Es ist nicht geplant das Alte Internet zu überlagern, sondern es zu ersetzen. Jede Verbindung wird zu gegebener Zeit durch ein Kabel, ein Glasfaser-Kabel oder eine Wireless-Netzwerk-Verbindung ersetzt.
2973. Im Falle einer Streitigkeit wird es eine "Kette von Freunden" geben, welche die involvierten Leute verbindet, so dass es bereits eine Basis zu einer Lösungsfindung gibt.
298
299Um einen Freund zu finden, gehe nach draussen und beteilige dich an unserer [Community](#community). Weiter kannst du auch einen Blick auf die [Hyperboria-Karte][] werfen, um Peers in deiner Nähe zu finden.
300
301
302### 3. Verbinde deinen Knoten mit dem deines Freundes
303
304**Um ein AUSgehende Verbindung herzustellen**
305
306In deinem conf File wirst du folgendes sehen:
307
308``` javascript
309// Nodes to connect to.
310"connectTo":
311{
312    // Add connection credentials here to join the network
313    // Ask somebody who is already connected.
314}
315```
316
317Ein conf File mit mehreren konfigurierten Freundes-Knoten (Setup AUSgehende Verbindung) sollte wie folgt aussehen:
318
319``` javascript
320// Nodes to connect to.
321"connectTo":
322{
323    //friend_1 (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
324    "0.1.2.3:45678":
325    {
326        "login": "k.alexander"
327        "password": "thisIsNotARealConnection_1",
328        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
329    }
330
331    //friend_2 (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
332    "5.1.2.3:5678":
333    {
334        "login": "k.alexander"
335        "password": "thisIsNotARealConnection_2",
336        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_2.k"
337    }
338}
339```
340
341In der gegebenen JSON Syntax kannst du so viele Verbindungen wie du willst zum `connectTo` Attribut hinzufügen.
342
343
344**Um deinem Freund zu erlauben eine EINgehende Verbindung mit dir aufzubauen**
345
346In deinem config File wirst du eine Passage wie folgt finden:
347
348``` javascript
349"authorizedPasswords":
350[
351    // A unique string which is known to the client and server.
352    {"password": "password001", "login": "default-login"}
353
354    // More passwords should look like this.
355    // {"password": "password002", "login": "my-second-peer"}
356    // {"password": "password003", "login": "my-third-peer}
357    // {"password": "password004", "login": "my-fourth-peer"}
358    ...
359
360    // "your.external.ip.goes.here:45678":{"login": "default-login", "password": "password001","publicKey":thisisauniqueKEY_001.k"}
361
362],
363```
364
365Ein config File mit mehreren Freundes-Knoten (Setup EINgehende Verbindung) sollte wie folgt aussehen:
366
367``` javascript
368"authorizedPasswords":
369[
370    // A unique string which is known to the client and server.
371    {"password": "thisisauniquestring_001", "user": "k.alexander"}
372
373    // More passwords should look like this.
374    //William Jevons (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
375    {"password": "thisisauniquestring_002", "user": "William Jevons"}
376    //Marilyn Patel (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
377    {"password": "thisisauniquestring_003", "user": "Marilyn Patel"}
378    // {"password": "thisisauniquestring_004"}
379    ...
380
381    // "your.external.ip.goes.here:45678":{"password": "thisisauniquestring_001","publicKey":thisisauniqueKEY_001.k"}
382],
383```
384
385
386Du musst William Jevons (welcher die EINgehende Verbindung bei sich einträgt) die folgenden 4 Objekte geben:
387
3881. Deine externe IPv4-Adresse
3892. Den Port, welchen du in deinem conf File wie folgt findest:
390
391    `// Bind to this port.
392    "bind": "0.0.0.0:yourportnumberishere",`
393
3943. Das speziefische Passwort, welches du unkommentiert oder neu erstellt hast:
395`"password": "thisisauniquestring_002"`
3964. Deinen Public-Key: `"publicKey": "thisisauniqueKEY_001.k"`
3975. Seinen Benutzernamen: "William Jevons"
398
399Seine Zugangsdaten werde dann ungefähr wie folgt aussehen (mit deiner IPv4-Adresse und Port):
400
401```javascript
402"1.2.3.4:56789": {
403    "login": "William Jevons",
404    "password": "thisisauniquestring_002",
405    "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
406}
407```
408
409Bitte beachte, dass du und dein Freund jeweils nur eine AUSgehende (von DIR -> Freund) oder EINgehende (von Freund -> DIR) Verbindung *eintragen* müsst. Der Datenverkehr kann dann aber doch in beide Richtungen fliessen, sobald die Verbindung steht.
410
411Für mehr Details bezüglich Konfiguration, oder wie du mit anderen cjdns-Knoten über Ethernet und Wifi peerst, schaue dir das Dokument [doc/configure.md](doc/configure.md) an.
412
413
414### 4. Sichere dein System ab - prüfe auf lauschende Services
415
416Wenn dein Knoten einmal läuft, bist du ein neuwertiger IPv6 Host. Dein Betriebssystem wird wahrscheinlich automatisch deine Netzwerk-Services neu konfigurieren, um diese neue Adresse zu verwenden.
417Wenn das nicht dein Ziel ist, solltest du überprüfen, dass du nicht mehr Services bereitstellst als du willst. ;)
418
419Schaue dir [doc/network-services.md](doc/network-services.md) an für Anleitungen.
420
421
422### 5. Starte!
423
424    sudo ./cjdroute < cjdroute.conf
425
426Wenn du deine Logs in ein File geschrieben haben willst:
427
428    sudo ./cjdroute < cjdroute.conf > cjdroute.log
429
430Um cjdns zu stoppen:
431
432    sudo killall cjdroute
433
434Wenn du Probleme hast, benutze `killall cjdroute` um tabula rasa zu machen. Benutze
435`pgrep cjdroute` oder `top` um zu überprüfen, ob cjdns läuft.
436
437**Bemerkung!**
438
439Die obigen Anleitungen starten cjdns als root-user. Es kann also dein System konfigurieren ohne dich um erlaubniss zu bitten. Um cjdns als non-root-user zu starten, konsultiere [doc/non-root-user.md](doc/non-root-user.md).
440
441
442### 6. Komme ins IRC
443
444Willkommen im Netzwerk! Du bist jetzt ein Netzwerk-Administrator. Damit verbunden ist eine gewisse Verantwortung, die unter anderem darin bestehen erreichbar zu sein im Falle eines Problems mit deinen Gerätschaften. Du solltest dich auf [IRC](#community) aufhalten, so dass leute dich erreichen können.
445
446
447## Admin interface
448
449Wenn cjdroute gestartet wurde und läuft, kannst du das admin-Interface unter `udp://localhost:11234` erreichen (kann im folgenden Konfigurations-File geändert werden: `cjdroute.conf`). Konsultiere [doc/admin-api.md](doc/admin-api.md) für mehr Informationen bezüglich dem admin-Interface. Es gibt mehrere Tools in `contrib/`,
450welche damit interagieren können.
451
452Du kannst das admin-API wie folgt erreichen:
453
454* die **Python library**; konsultiere [here](contrib/python/README.md).
455* die **Perl library**, unterhalten by Mikey; konsultiere [here](contrib/perl/CJDNS/README).
456
457## Fehler melden
4581. Melde Fehler bitte nicht in diesem Repo, stattdessen melde sie hier: https://github.com/hyperboria/bugs/issues
4592. Geh ins IRC und sprich mit jemandem.
4603. Was passieren wird ist entweder
461 * Jemand hat Lust es zu fixen
462 * Du hast Lust es zu fixen
463 * Es interessiert niemanden und es wird für eine Weile vergessen und eventuell wird jemand später darauf stossen und es fixen oder es geht im Refactoring verloren.
464 * Niemand kann es im Moment beheben, aber es wird als merkenswert angesehen, weil es eine große Bedeutung in der Entwicklung des Quelltextes hat. In diesem Fall muss es technisch erklärt werden von jemandem, der den Quelltext sehr gut kennt. Derjenige wird einen Pullrequest in das docs/bugs Verzeichnis machen.
465
466### Sicherheit
467Sicherheitsprobleme sollten im IRC berichtet werden, genau wie andere Fehler. Wir haben keine geschlossene Gruppe von Leuten mit Spezialwissen, das Bedeutet, das Standardvorgehen für Sicherheitsmeldungen ist volle Enthüllung.
468Schaue unter  https://github.com/cjdelisle/cjdns/blob/master/doc/security_specification.md nach, ob ein Sicherheitsproblem wirklich ein Sicherheitsproblem ist.
469
470Schon wieder diese Zeit des Jahres... Zeit für ein paar Open Source Projekte!
471[![Hacktoberfest](https://img.shields.io/badge/Open%20Source-Hacktoberfest-orange.svg)](https://hacktoberfest.digitalocean.com/)
472
473[IRC Web]: http://chat.efnet.org/irc.cgi?chan=%23cjdns
474[Hyperboria]: https://hyperboria.net
475[/r/darknetplan]: https://www.reddit.com/r/darknetplan
476[#cjdns auf Twitter]: https://twitter.com/hashtag/cjdns
477[Hyperboria-Karte]: https://www.fc00.org/
478[Buildbots]: https://buildbot.meshwith.me/cjdns/waterfall
479
480[Cjdns auf Wikipedia]: https://en.wikipedia.org/wiki/Cjdns
481[Distributed Hash Table]: https://en.wikipedia.org/wiki/Distributed_hash_table
482[Beyond Pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
483[Kademlia]: https://en.wikipedia.org/wiki/Kademlia
484
485[Tor]: https://www.torproject.org
486[I2P]: https://geti2p.net/en/
487[Freenet]: https://freenetproject.org
488

README_ES.md

1# cjdns
2
3[Русская версия](README_RU.md)
4[Hrvatski](README_HR.md)
5[Svenska](README_SV.md)
6[Ελληνικά](README_GR.md)
7[Deutsch](README_DE.md)
8[繁體中文](README_ZHT.md)
9[Español](README_ES.md)
10[Français](README_FR.md)
11
12#### *Reinventando las redes*
13
14Cjdns implementa una red IPv6 cifrada usando criptografia de llave publica para
15la asignación de direcciones y una tabla distribuida de hashes para el
16ruteo. Esto provee redes de casi-nula-configuración, y previene mucho de los
17problemas de seguridad y escalabilidad que plagan a las redes existentes.
18
19[![Build Status](https://travis-ci.org/cjdelisle/cjdns.svg?branch=master)](https://travis-ci.org/cjdelisle/cjdns)
20[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/387/badge)](https://bestpractices.coreinfrastructure.org/projects/387)
21[![tip for next commit](https://tip4commit.com/projects/941.svg)](https://tip4commit.com/github/cjdelisle/cjdns)
22[![irc](https://img.shields.io/badge/irc%20chat-%23cjdns-blue.svg)](https://kiwiirc.com/client/irc.efnet.org/?nick=visitor|?#cjdns)
23![License](https://img.shields.io/github/license/cjdelisle/cjdns.svg)
24
25## Testimonios
26
27    23:26 <@jercos> well, cjdns is now officially more reliable than the open
28                    internet for getting to my cheaper VPSes :|
29
30    12:52 < mariner> so i don't know if it's been done before, and i assume it's
31                     obvious, but I think it's neat. Currently on hype from an
32                     airplane
33
34    00:36 < tester> man sites take so long to load on i2p
35    00:36 < tester> i value speed over anonymity any day
36
37    <DuoNoxSol> it's notably more reliable than the normal internet
38
39    09:46 < Kubuxu> I so love cjdns code base
40
41    <whyrusleeping> my internet is way better now.
42    <whyrusleeping> thanks
43    <whyrusleeping> i'm really upset and sad that its better
44    <whyrusleeping> but also quite happy
45
46    21:01 <@grewalsat> this is amazing. with my workpalce speedtest.net results I get around 6+mb speed, and with my cjdns-gate as vpn network I'm getting like 11-15mb download speed in speedtest.net
47    21:01 <@grewalsat> :P
48    21:01 <@grewalsat> plus, access anything! :D
49
50    <davidar> Yeah, I have to admit I sort of avoided hypeirc because of stuff like that
51
52## Comunidad
53
54* [irc://irc.efnet.org/#cjdns][IRC Web]
55* [Hyperboria][] la mayor red cjdns, tomando a Octubre 2015 donde tenia 2100 nodos.
56* [Project Meshnet][]
57* [/r/darknetplan][]
58* [#cjdns on Twitter][]
59
60
61## Documentación
62
63* [Metas del proyecto - en inglés -](doc/projectGoals.md)
64* [Cjdns Whitepaper - en inglés -](doc/Whitepaper.md)
65* [Cjdns on Wikipedia][]
66
67## Configuración avanzada:
68
69* [Configurando una puerta de enlace NAT en cjdns para tu LAN - en ingles](doc/nat-gateway.md)
70* [Instalar cjdns en OpenIndiana - en ingles](doc/open-indiana.md)
71
72Graciars por su tiempo e interes,
73
74Los desarrolladores de CJDNS.
75
76--------------------------------------------------------------------------------
77
78## Como instalar CJDNS
79
80Estas instrucciones son para las distribuciones basadas en Debian y macOS. Deben ser
81suficientemente informativas como para usarse en otras distribuciones - solo no
82espere que funcionen tal cual. Si desea saber que [base del sistema operativo tiene, revise aqui](https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg).
83
84### 0. Instalar dependencias
85
86En ambas plataformas, instalar [Node.js](http://nodejs.org/), aunque preferible,
87no es estrictamente necesario. Si Node.js no esta disponible o en una version
88inaceptable, sera descargado e instalado en el arbol de codigo fuente.
89
90#### Distribuciones basadas en Debian:
91
92    sudo apt-get install nodejs git build-essential python2.7
93
94#### Distribuciones basadas en Fedora 22+:
95
96    sudo dnf install install nodejs git
97    sudo dnf install @development-tools
98
99#### Distribuciones basada en RHEL (añade el repositorio EPEL):
100
101    sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
102    sudo yum install install nodejs git
103    sudo yum install @development-tools
104Construyendo desde el paquete:
105`sudo yum localinstall https://kojipkgs.fedoraproject.org//packages/cjdns/17.4/4.el6/src/cjdns-17.4-4.el6.src.rpm`
106
107Si usted esta en una laptop y suspende o hiberna, a cjdroute le tomara unos
108minutos figurar que ha pasado al despertar. Puede dramáticamente acelerar esto
109con:
110
111    systemctl enable cjdns-resume
112
113El servicio de resume reinicia cjdns cuando el sistema regresa de dormir.
114
115#### Gentoo
116
117    emerge --ask nodejs sys-devel/gcc dev-lang/python:3.4 dev-vcs/git
118
119#### macOS:
120
121Instalar con [Homebrew](https://brew.sh/):
122
123    brew install cjdns
124
125Instalar con [MacPorts](https://www.macports.org/):
126
127    sudo port install cjdns
128
129#### OpenBSD:
130
131Desafortunadamente, en OpenBSD es un poco experimental por el momento.
132
133    pkg_add git node gcc gmake bash
134
135Elija la version gcc-4.8.1p2 o mas reciente.
136
137#### FreeBSD:
138
139Todo lo que necesita esta prearmado en los ports de FreeBSD.
140
141    pkg install gmake node
142
143#### Arch:
144
145Usted puede instalar cjdns ejecutando
146
147    pacman -S cjdns
148
149Si necesita armar desde el codigo fuente, todo lo requerido se puede obtener asi
150
151    pacman -S nodejs git base-devel
152
153Como alternativa, usted podria instalar desde AUR desde el paquete, `cjdns-git`.
154Despues de instalar, La configuracion estara en `/etc/cjdroute.conf`.
155Para iniciar el servicio `cjdns.service`, ejecute:
156
157       systemctl start cjdns
158
159Para detenerlo:
160
161       systemctl stop cjdns
162
163#### Solus:
164
165Dependencias:
166
167      sudo eopkg install nodejs git build-essential system.devel python gcc binutils kernel-headers xorg-server-devel
168
169Despues siga estas instrucciones:
170
171*Lo sentimos por tantos pasos. Actualmente un paquete se esta aun preparando*
172
173### 1. Obtener cjdns desde GitHub
174
175Clonar el repositorio desde GitHub y cambiar al directorio del codigo fuente:
176
177    git clone https://github.com/cjdelisle/cjdns.git cjdns
178    cd cjdns
179
180### 2. Armar
181
182    ./do
183
184Espere por `Build completed successfully, type ./cjdroute to begin setup.`, y entonces
185proceda con lo que sigue abajo:
186
187--------------------------------------------------------------------------------
188
189## Configuración
190
191Ejecute cjdroute sin opciones para otener ayuda:
192
193    ./cjdroute
194
195### 0. Cerciórese que tiene las cosas necesarias.
196
197    LANG=C cat /dev/net/tun
198
199Si dice: `cat: /dev/net/tun: File descriptor in bad state` ¡Muy bien!
200
201Si dice: `cat: /dev/net/tun: No such file or directory`, tiene que crearlo ejecutando:
202
203    sudo mkdir -p /dev/net &&
204    sudo mknod /dev/net/tun c 10 200 &&
205    sudo chmod 0666 /dev/net/tun
206
207Después ejecute `cat /dev/net/tun` otra ves.
208
209Si dice: `cat: /dev/net/tun: Permission denied` Probablemente usted esta usando
210un VPS basado en la plataforma de virtualización OpenVZ. Pídale a su proveedor
211que habilite el dispositivo TUN/TAP - esto es un protocolo estándar y ellos
212deberían de saber que es lo que usted necesita. Si esta usando macOS, no necesita
213preocuparse por este paso.
214
215### 1. Generando un archivo de configuración
216
217    ./cjdroute --genconf >> cjdroute.conf
218
219**¡Proteja su archivo conf!**
220
221Un archivo conf extraviado significa perder sus contraseñas y conecciones
222, y todo aquel que conectaba a usted ya no lo podrá hacer.
223Un archivo conf que ha sido sustraido podría dar a que alguien se dedique
224a impersonificarle.
225
226Para generar un archivo conf con los permisos de tal manera que solo su
227usuario pueda leer y escribir en el:
228
229    (umask 077 && ./cjdroute --genconf > cjdroute.conf)
230
231
232### 2. Encontrando un amigo
233
234Para acceder a una red existente (por ejemplo, Hyperboria), necesita conectar con
235alguien que ya tenga acceso a esa red. Esto es necesario por muchos motivos:
236
2371. Ayuda a prevenir abusos porque la gente malintencionada muy probablemente evitara
238   abusar un sistema después de que, en un acto de amabilidad, se le ha dado acceso
239   al sistema.
2402. Esto no intenta ser una capa sobre la Vieja Internet, su intención es remplazarla.
241   Cada conexión eventualmente debera ser remplazada por un cable, un enlace de fibra
242   optica, o una conexión inalámbrica.
2433. En cualquier caso de desacuerdo, existirá una "cadena de amigos" enlazando a la
244   gente involucrada de manera de que exitiría una base para llegar a una resolución.
245
246Para encontrar un amigo, salga de aquí y accede a nuestra [comunidad](#comunidad). También,
247de un vistazo a la [Hyperboria Map][] para encontrar nodos cercanos a usted.
248
249### 3. Enlazar su nodo al nodo de su amigo
250
251**Para iniciar una conexión OUTbound**
252
253En su archivo conf, usted observará:
254
255``` javascript
256// Nodes to connect to.
257"connectTo":
258{
259    // Add connection credentials here to join the network
260    // Ask somebody who is already connected.
261}
262```
263
264Un archivo conf con múltiples nodos de amigos, con la configuracion OUTbound, deberia
265de verse así:
266
267``` javascript
268// Nodes to connect to.
269"connectTo":
270{
271    //friend_1 (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
272    "0.1.2.3:45678":
273    {
274        "login": "k.alexander"
275        "password": "thisIsNotARealConnection_1",
276        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
277    }
278
279    //friend_2 (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
280    "5.1.2.3:5678":
281    {
282        "login": "k.alexander"
283        "password": "thisIsNotARealConnection_2",
284        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_2.k"
285    }
286}
287```
288
289Usted puede agregar tantas conexiones como quiera en el atributo `connectTo`,
290siguiendo la sintaxis de JSON.
291
292
293**Para permitir que su amigo realize una conexión INbound**
294
295En su archivo conf, usted encontrará:
296
297``` javascript
298"authorizedPasswords":
299[
300    // A unique string which is known to the client and server.
301    {"password": "password001", "login": "default-login"}
302
303    // More passwords should look like this.
304    // {"password": "password002", "login": "my-second-peer"}
305    // {"password": "password003", "login": "my-third-peer}
306    // {"password": "password004", "login": "my-fourth-peer"}
307    ...
308
309    // "your.external.ip.goes.here:45678":{"login": "default-login", "password": "password001","publicKey":thisisauniqueKEY_001.k"}
310
311],
312```
313
314Un archivo conf con múltiple nodos de amigos, con la configuración INbound, deberia de verse como:
315``` javascript
316"authorizedPasswords":
317[
318    // A unique string which is known to the client and server.
319    {"password": "thisisauniquestring_001", "user": "k.alexander"}
320
321    // More passwords should look like this.
322    //William Jevons (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
323    {"password": "thisisauniquestring_002", "user": "William Jevons"}
324    //Marilyn Patel (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
325    {"password": "thisisauniquestring_003", "user": "Marilyn Patel"}
326    // {"password": "thisisauniquestring_004"}
327    ...
328
329    // "your.external.ip.goes.here:45678":{"password": "thisisauniquestring_001","publicKey":thisisauniqueKEY_001.k"}
330],
331```
332
333
334Usted necesitaría darle a William Jevons (quien esta haciendo una conexion INbound) las siguiente 4 cosas:
335
3361. Su IPv4 externa
3372. El puerto que aquí se lee en su archivo conf:
338
339    `// Bind to this port.
340    "bind": "0.0.0.0:yourportnumberishere",`
341
3423. El password único que ha descomentado o creado: `"password": "thisisauniquestring_002"`
3434. Su llave pública: `"publicKey": "thisisauniqueKEY_001.k"`
3445. Su nombre de usuario: "William Jevons"
345
346Sus credenciales para iniciar sesion se veran como aquí (con su IPv4 y el puerto):
347
348```javascript
349"1.2.3.4:56789": {
350    "login": "William Jevons",
351    "password": "thisisauniquestring_002",
352    "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
353}
354```
355
356De favor cerciorese que usted y su amigo pueden *iniciar* una
357conexión tanto hacia fuera (de USTED --> AMIGO) hacia dentro (del AMIGO --> USTED)
358pero el tráfico fluye ambos sentidos una vez una coneccion suceda.
359
360Revise [doc/configure_ES.md](doc/configure_ES.md) para mas detalles de
361configuración, incluido como acceder a otros nodos cjdns sobre ethernet y wifi.
362
363
364### 4. Asegurando su sistema - revisar los servicios que escuchan.
365
366Una vez que su nodo esté corriendo, está ahora en una recién creada dirección IPv6.
367Su sistema operativo puede que configure automáticamente para que servicios sobre
368red lo utilicen.
369Si esta no es su intencion, deberá revisar que no se este ofreciendo mas servicios
370que los deseados. ;)
371
372Lea [doc/network-services.md](doc/network-services.md) - en inglés - para mas
373instrucciones.
374
375
376### 5. ¡Iniciarlo!
377
378    sudo ./cjdroute < cjdroute.conf
379
380Si desea que las bitácoras se escriban en un archivo:
381
382    sudo ./cjdroute < cjdroute.conf > cjdroute.log
383
384Para detener cjdns:
385
386    sudo killall cjdroute
387
388Si usted tiene problemas, ejecute `killall cjdroute` para regresar a la tranquilidad.
389Use `pgrep cjdroute` o `top` para ver si el proceso sigue corriendo.
390
391**¡Nota!**
392
393Esto inicia cjdns como el usuario root para que pueda configurar su sistema
394sin impedimentos por los permisos. Para iniciar cjdns como un usuario que no
395es root, favor de leer [doc/non-root-user.md](doc/non-root-user.md) - en inglés -.
396
397
398### 6. Acceda a IRC
399
400¡Bienvenido a la red! Ahora es un administrador de redes. Hay responsabilidades
401que vienen con ser un administrador de redes, que incluye estar disponible en
402caso de que algo este mal con su equipamiento. Debe de estar en [IRC](#community)
403de tal manera de que la gente le encuentre.
404
405
406## Interfaz de administración
407
408Cuando cjdroute esta habilitado y corriendo, la interfaz de administración estara en
409`udp://localhost:11234` (esto puede ser cambiado en el archivo de configuracion
410`cjdroute.conf`). Consulte [doc/admin-api.md](doc/admin-api.md) - en inglés - para
411mas información sobre la interfaz de administracion. Ha varias herramientas en
412la carpeta `contrib/` que puede interactuar con ella.
413
414Puede acceder a la API de administración con:
415
416* La **Python library**; vea [aquí](contrib/python/README.md) - en inglés -.
417* La **Perl library**, mantenida por Mikey; vea [aquí](contrib/perl/CJDNS/README) - en inglés -.
418
419
420## Reportando problemas
4211. No hacer reportes en este repositorio, mejor hagalo en https://github.com/hyperboria/bugs/issues
4222. Accede a IRC y converse con alguien
4233. Lo que pasara en ambos casos
424 * Alguien estará de humor para acomodarlo
425 * Usted estará de humor para acomodarlo
426 * Nadien le importara y sera eventualmente olvidado y talves alguien se topara futuramente con ello,
427 lo arregle, o termine superado en alguna reestructura completa del código.
428 * Nadie por el momento podrá repararlo pero tendra el merito de ser recordado por su gran significado
429 en como el código se desarrolla, y sera el caso de que tendrá que ser explicado por alguien fuertemente
430 relacionado al codigo. Podrá realizar una peticion pull al directorio docs/bugs.
431
432### Seguridad
433Problemas de seguridad deberán de ser reportado en IRC como cualquier otro bug. No tenemos un grupo
434cerrado de personas con conocimientos especiales, lo que significa que el método por defacto para
435reportar cosas de seguridad, es con su descripción completa.
436Consulte: https://github.com/cjdelisle/cjdns/blob/master/doc/security_specification.md - en ingles -
437para comprobar si un aparente problema de seguridad realmente es un problema de seguridad.
438
439Esa época del año nuevamente... ¡El tiempo para actuar en algunos proyectos de código abierto!
440[![Hacktoberfest](https://img.shields.io/badge/Open%20Source-Hacktoberfest-orange.svg)](https://hacktoberfest.digitalocean.com/)
441
442[IRC Web]: http://chat.efnet.org/irc.cgi?chan=%23cjdns
443[Hyperboria]: http://hyperboria.net
444[Project Meshnet]: https://projectmeshnet.org
445[/r/darknetplan]: http://www.reddit.com/r/darknetplan
446[#cjdns on Twitter]: https://twitter.com/hashtag/cjdns
447[Hyperboria Map]: http://www.fc00.org/
448[Buildbots]: https://buildbot.meshwith.me/cjdns/waterfall
449
450[Cjdns on Wikipedia]: https://en.wikipedia.org/wiki/Cjdns
451[Distributed Hash Table]: https://en.wikipedia.org/wiki/Distributed_hash_table
452[Beyond Pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
453[Kademlia]: https://en.wikipedia.org/wiki/Kademlia
454
455[Tor]: https://www.torproject.org
456[I2P]: http://www.i2p2.de
457[Freenet]: https://freenetproject.org
458

README_FR.md

1Traduction à partir de la version
2[`cjdns-v19.1`](https://github.com/woshilapin/cjdns/blob/cjdns-v19.1/README.md)
3# cjdns
4
5[Русская версия](README_RU.md)
6[Hrvatski](README_HR.md)
7[Svenska](README_SV.md)
8[Ελληνικά](README_GR.md)
9[Deutsch](README_DE.md)
10[繁體中文](README_ZHT.md)
11[Español](README_ES.md)
12[Français](README_FR.md)
13
14#### *Le réseau réinventé*
15
16Cjdns est un réseau IPv6 chiffré utilisant des clefs publiques de cryptographie
17
18pour l'allocation d'adresses et une table de hashage distribuée pour le
19routage.  Il fournit un réseau quasiment sans configuration et évite la majorité
20des problèmes de sécurité et de passage à l'échelle (_scalability_) des réseaux
21actuels.
22
23[![Statut de compilation](https://api.travis-ci.org/cjdelisle/cjdns.svg?branch=master)](https://travis-ci.org/cjdelisle/cjdns)
24[![Bonnes pratiques CII](https://bestpractices.coreinfrastructure.org/projects/387/badge)](https://bestpractices.coreinfrastructure.org/projects/387)
25[![Pourboire pour le prochain commit](https://tip4commit.com/projects/941.svg)](https://tip4commit.com/github/cjdelisle/cjdns)
26[![IRC](https://img.shields.io/badge/irc%20chat-%23cjdns-blue.svg)](https://kiwiirc.com/client/irc.efnet.org/?nick=visitor|?#cjdns)
27![Licence](https://img.shields.io/github/license/cjdelisle/cjdns.svg)
28
29## Témoignages
30
31    23:26 <@jercos> well, cjdns is now officially more reliable than the open
32                    internet for getting to my cheaper VPSes :|
33
34    23:26 <@jercos> bon, cjdns est maintenant officiellement plus fiable que
35                    l'internet pour me connecter à mes VPS bon marchés :|
36
37
38    12:52 < mariner> so i don't know if it's been done before, and i assume it's
39                     obvious, but I think it's neat. Currently on hype from an
40                     airplane
41
42    12:52 < mariner> je ne sais pas si ça a déjà été fait avant, et je suppose
43                     que c'est facile, mais je pense que c'est génial. En ce
44                     moment sur Hype depuis un avion
45
46
47    00:36 < tester> man sites take so long to load on i2p
48    00:36 < tester> i value speed over anonymity any day
49
50    00:36 < tester> les sites prennent tellement longtemps à charger sur I2P
51    00:36 < tester> je préfèrerai toujours la vitesse face à l'anonymité
52
53
54    <DuoNoxSol> it's notably more reliable than the normal internet
55
56    <DuoNoxSol> c'est particulièrement plus fiable que l'internet normal
57
58
59    09:46 < Kubuxu> I so love cjdns code base
60
61    09:46 < Kubuxu> J'adore tellement le code source de cjdns
62
63
64    <whyrusleeping> my internet is way better now.
65    <whyrusleeping> thanks
66    <whyrusleeping> i'm really upset and sad that its better
67    <whyrusleeping> but also quite happy
68
69    <whyrusleeping> mon internet est vachement mieux maintenant.
70    <whyrusleeping> merci
71    <whyrusleeping> je suis vraiment énervé et triste que ce soit mieux
72    <whyrusleeping> mais aussi pas mal content
73
74
75    21:01 <@grewalsat> this is amazing. with my workpalce speedtest.net results I get around 6+mb speed, and with my cjdns-gate as vpn network I'm getting like 11-15mb download speed in speedtest.net
76    21:01 <@grewalsat> :P
77    21:01 <@grewalsat> plus, access anything! :D
78
79    21:01 <@grewalsat> c'est fou. avec les scores speedtest.net depuis mon
80                       boulot, j'ai un débit d'environ 6+mb, et avec une
81                       passerelle cjdns comme réseau VPN, j'obtiens autour de
82                       11-15mb en téléchargement sur speedtest.net
83    21:01 <@grewalsat> :P
84    21:01 <@grewalsat> en plus, accès à tout ! :D
85
86
87    <davidar> Yeah, I have to admit I sort of avoided hypeirc because of stuff like that
88
89    <davidar> Ouais, je dois admettre que j'ai en quelque sorte évité hypeirc à
90              cause de ce genre de truc
91
92## Community
93
94* [irc://irc.efnet.org/#cjdns][IRC Web]
95* [Hyperboria][] le plus grand réseau cjdns, avec 2100 noeuds en Octobre 2015
96* [Projet Meshnet][]
97* [/r/darknetplan][]
98* [#cjdns sur Twitter][]
99
100
101## Documentation
102
103* [Objectifs du project](doc/projectGoals.md)
104* [Livre blanc sur cjdns](doc/Whitepaper.md)
105* [Cjdns sur Wikipedia][]
106
107Configuration avancée:
108
109* [Configurer une passerelle NAT cjdns pour votre LAN](doc/nat-gateway.md)
110* [Installer cjdns sur OpenIndiana](doc/open-indiana.md)
111
112Merci pour votre temps et votre intérêt,
113
114Les développeurs de cjdns.
115
116--------------------------------------------------------------------------------
117
118## Comment insaller cjdns
119
120Ces instructions sont pour les distributions Linux basées sur Debian et OS X.
121Elles devraient être suffisantes pour d'autres distributions mais n'espérez pas
122qu'elles fonctionnent mot pour mot.  Si vous souhaitez connaitre la base de
123votre système d'exploitation, [regardez le graphique suivant](https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg).
124
125### 0. Installer les dépendances
126
127Installer [Node.js](https://nodejs.org/), bien que préférable,
128n'est pas nécessaire. Si Node.js n'est pas disponible ou que la version n'est
129pas la bonne, Node.js sera téléchargé et installé dans le répertoire du code
130source.
131
132#### Distributions basées sur Debian :
133
134    sudo apt-get install nodejs git build-essential python2.7
135
136#### Distributions basées sur Fedora 22 ou + :
137
138    sudo dnf install install nodejs git
139    sudo dnf install @development-tools
140
141#### Distributions basées sur RHEL (ajoutez le dépôt EPEL) :
142
143    sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
144    sudo yum install install nodejs git
145    sudo yum install @development-tools
146
147Compiler depuis le paquetage :
148`sudo yum localinstall https://kojipkgs.fedoraproject.org//packages/cjdns/17.4/4.el6/src/cjdns-17.4-4.el6.src.rpm`
149
150Si vous êtes sur un ordinateur portable et que vous le mettez en veille ou en
151hibernation, cjdroute prendra du temps (faites vous un café !) pour comprendre
152ce qui vient de se passer en tentant de se réveiller. Vous pouvez radicalement
153améliorer la vitesse de ce réveil avec :
154
155    systemctl enable cjdns-resume
156
157Le service de réveil redémarre cjdns lorsque le système sort de veille ou
158d'hibernation.
159
160#### Gentoo
161
162    emerge --ask nodejs sys-devel/gcc dev-lang/python:3.4 dev-vcs/git
163
164#### OS X :
165
166Installer avec homebrew :
167
168    brew install cjdns
169
170#### OpenBSD :
171
172Malheureusement, le support sur OpenBSD est encore un peu expérimental.
173
174    pkg_add git node gcc gmake bash
175
176Utilisez gcc-4.8.1p2 ou plus récent.
177
178#### FreeBSD :
179
180Tout ce dont vous avez besoin est disponible pré-compilé dans les ports FreeBSD.
181
182    pkg install gmake node
183
184#### Arch :
185
186Vous pouvez installer cjdns en lançant
187
188    pacman -S cjdns
189
190Si vous avez besoin de compiler à partir des sources, tout ce dont vous avez
191besoin peut être installer avec la commande suivante
192
193    pacman -S nodejs git base-devel
194
195Sinon, vous préférez peut-être installer à travers AUR à partir du paquet
196`cjdns-git`. Après l'installation, vous trouverez le fichier de configuration
197dans `/etc/cjdroute.conf`. Pour démarrer le service `cjdns.service`, faites :
198
199    systemctl start cjdns
200
201Pour l'arrêter, faites :
202
203    systemctl stop cjdns
204
205#### Gentoo :
206
207cjdns n'est pas encore dans le dépôt principal de Gentoo, donc vous allez devoir
208utiliser un arbre alternatif (_overlay_). La manière la plus simple est
209d'utiliser Layman mais vous pouvez également le faire à la main.
210
211##### Layman :
212
213Premièrement, vous devez installer layman.
214
215    emerge layman
216
217Si layman est installé correctement, vous pouvez ajouter un arbre alternatif
218
219    layman -f
220    layman -a weuxel
221
222Pour des mises à jour futures de l'arbre alternatif, utilisez
223
224    layman -S
225
226Maintenant, vous pouvez installer cjdns
227
228    emerge cjdns
229
230##### À la main :
231
232Vous allez devoir cloner l'arbre alternatif depuis le dépôt
233
234    cd /opt
235    git clone https://github.com/Weuxel/portage-weuxel.git
236
237Maintenant, configurez portage pour utiliser ce dépôt
238
239    cd /etc/portage/repos.conf/
240
241Créez un fichier `portage-weuxel.conf` contenant
242
243    [weuxel]
244    location = /opt/portage-weuxel
245    masters = gentoo
246    auto-sync = yes
247
248Maintenant, synchronisez
249
250    emerge --sync
251
252Puis installez cjdns
253
254    emerge cjdns
255
256#### Détection automatique de plantage et redémarrage
257
258Copiez le script init openrc `contrib/openrc` vers `/etc/init.d/` et modifiez
259les paramètres `CONFFILE` et `command` selon vos besoins. Puis démarrez cjdns
260
261    /etc/init.d/cjdns start
262
263Configurez le système init pour démarrer automatiquement cjdns
264
265    rc-update add cjdns default
266
267Copiez le script `contrib/gentoo/service_restart.sh` vers un répertoire
268approprié sur votre système et modifiez l'adresse de courriel. Si vous ne
269souhaitez pas recevoir de notifications, commentez la ligne. Maintenant,
270ajoutez une ligne dans votre crontab de la manière suivante
271
272    # Redémarrer le service planté
273    * * * * *       root	/path/to/script/service_restart.sh
274
275#### Solus :
276
277Dépendances:
278
279    sudo eopkg install nodejs git build-essential system.devel python gcc binutils kernal-headers xorg-server-devel
280
281Puis suivez les étapes suivantes :
282
283*Désolé pour le nombre important d'étapes. Un paquet est en cours de
284préparation*
285
286##### 1. Récupérez cjdns sur Github
287
288Clonez le dépôt depuis Github et déplacez vous dans le nouveau répertoire :
289
290    git clone https://github.com/cjdelisle/cjdns.git cjdns
291    cd cjdns
292
293##### 2. Compilez
294
295    ./do
296
297Cherchez pour la ligne `Build completed successfully, type ./cjdroute to begin
298setup.`, puis continuez ci-dessous :
299
300--------------------------------------------------------------------------------
301
302## Configuration
303
304Lancer cjdroute sans options pour obtenir de l'aide :
305
306    ./cjdroute
307
308### 0. Vérifiez que vous avez tout.
309
310Si vous êtes sur OS X, ne vous inquiétez pas pour cette étape.
311
312    LANG=C cat /dev/net/tun
313
314Si le message est : `cat: /dev/net/tun: File descriptor in bad state` Parfait !
315
316Si le message est : `cat: /dev/net/tun: No such file or directory`, créez le avec :
317
318    sudo mkdir -p /dev/net &&
319    sudo mknod /dev/net/tun c 10 200 &&
320    sudo chmod 0666 /dev/net/tun
321
322Puis `cat /dev/net/tun` à nouveau.
323
324Si le message est : `cat: /dev/net/tun: Permission denied`, vous utilisez probablement un VPS tournant sur une platforme virtualisée avec OpenVZ.  Demandez à votre fournisseur d'activer le périphérique TUN/TAP - c'est un protocole standard, ils devraient savoir exactement ce dont vous avez besoin.
325
326### 1. Générez un nouveau fichier de configuration
327
328    ./cjdroute --genconf >> cjdroute.conf
329
330**Protégez votre fichier de configuration !**
331
332Un fichier de configuration perdu signifie que vous avez perdu votre mot de
333passe et les connexions; toutes les personnes connectées à vous n'en seront plus
334capables.  Un fichier de configuration compromis signifie que d'autres personnes
335peuvent se faire passer pour vous sur le réseau.
336
337Pour générer un fichier de configuration avec des droits tels que votre
338utilisateur puisse lire et écrire dedans :
339
340    (umask 077 && ./cjdroute --genconf > cjdroute.conf)
341
342
343### 2. Trouvez des amis
344
345Pour entrer dans un réseau existant (par exemple, Hyperboria), vous devez vous
346connecter à quelqu'un qui est déjà dans le réseau. C'est nécessaire pour les
347raisons suivantes :
348
3491. Cela évite les abus car les personnes nuisibles seront moins prompts à abuser
350   le système si l'accès leur a été offert dans un acte de bonté
3512. L'intention n'est pas de faire une surcouche au Vieil Internet, l'objectif
352   est de le remplacer. Chaque connexion sera à terme, remplacée par un cable,
353   une fibre optique ou une connexion sans fil.
3543. Dans le cas d'un désaccord, une « chaine d'amis » liant les personnes
355   impliquées fournira une base afin d'aboutir à une solution.
356
357Pour trouver un ami, sortez dehors and rejoignez notre [communité](#community).  Vous pouvez également jetez un oeil à la
358[carte Hyperboria][] pour trouver des pairs près de chez vous.
359
360
361### 3. Connectez votre noeud à celui de votre ami
362
363**Pour démarrer une connexion OUTbound**
364
365Dans votre fichier de configuration, vous trouverez :
366
367``` javascript
368// Nodes to connect to.
369"connectTo":
370{
371    // Add connection credentials here to join the network
372    // Ask somebody who is already connected.
373}
374```
375
376Un fichier de configuration avec plusieurs noeuds amis OUTbound devrait
377ressembler à ceci :
378
379``` javascript
380// Nodes to connect to.
381"connectTo":
382{
383    //ami_1 (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
384    "0.1.2.3:45678":
385    {
386        "login": "k.alexander"
387        "password": "thisIsNotARealConnection_1",
388        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
389    },
390
391    //ami_2 (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
392    "5.1.2.3:5678":
393    {
394        "login": "k.alexander"
395        "password": "thisIsNotARealConnection_2",
396        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_2.k"
397    }
398}
399```
400
401Vous pouvez ajouter autant de connexions que vous le voulez dans la propriété
402`connectTo`, en respectant la syntaxe JSON.
403
404
405**Pour permettre à votre ami de démarrer une connexion INbound**
406
407Dans votre fichier de configuration, vous trouverez :
408
409``` javascript
410"authorizedPasswords":
411[
412    // A unique string which is known to the client and server.
413    {"password": "password001", "login": "default-login"}
414
415    // More passwords should look like this.
416    // {"password": "password002", "login": "my-second-peer"}
417    // {"password": "password003", "login": "my-third-peer}
418    // {"password": "password004", "login": "my-fourth-peer"}
419    ...
420
421    // "your.external.ip.goes.here:45678":{"login": "default-login", "password": "password001","publicKey":thisisauniqueKEY_001.k"}
422
423],
424```
425
426Un fichier de configuration avec plusieurs noeuds amis INbound, devrait
427ressembler à ceci :
428``` javascript
429"authorizedPasswords":
430[
431    // A unique string which is known to the client and server.
432    {"password": "thisisauniquestring_001", "user": "k.alexander"}
433
434    // More passwords should look like this.
435    //William Jevons (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
436    {"password": "thisisauniquestring_002", "user": "William Jevons"}
437    //Marilyn Patel (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
438    {"password": "thisisauniquestring_003", "user": "Marilyn Patel"}
439    // {"password": "thisisauniquestring_004"}
440    ...
441
442    // "your.external.ip.goes.here:45678":{"password": "thisisauniquestring_001","publicKey":thisisauniqueKEY_001.k"}
443],
444```
445
446
447Vous devez donner à William Jevons (qui se connectera en INbound) les 4 éléments suivants :
448
4491. Votre adresse IPv4 externe
4502. Le port que vous trouverez dans votre fichier de configuration à la ligne
451
452    `// Bind to this port.
453    "bind": "0.0.0.0:yourportnumberishere",`
454
4553. Un mot de passe unique que vous décommentez ou que vous créez : `"password": "thisisauniquestring_002"`
4564. Votre clef publique : `"publicKey": "thisisauniqueKEY_001.k"`
4575. Son nom d'utilisateur : "William Jevons"
458
459Ces paramètres de connexion devraient ressembler à quelque chose comme ceci
460(avec votre adresse IPv4 et votre port) :
461
462```javascript
463"1.2.3.4:56789": {
464    "login": "William Jevons",
465    "password": "thisisauniquestring_002",
466    "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
467}
468```
469
470Veuillez noter que vous et votre ami peuvent *démarrer* une connexion soit
471OUTbound (de VOUS --> AMI) soit INbound (de AMI --> vous) mais la circulation se
472fait dans les deux sens une fois que la connection est établie.
473
474Voir [doc/configure.md](doc/configure.md) pour plus de détails sur la
475configuration, en particulier sur la manière de se connecter à d'autres noeuds
476cjdns à travers ethernet et wifi.
477
478
479### 4. Sécurisez votre système - vérifiez les services ouverts
480
481Une fois que votre noeud tourne, vous êtes maintenant le nouveau propriétaire
482d'une adresse IPv6. Votre système d'exploitation reconfigurera peut-être
483automatiquement les services de réseau pour utiliser cette nouvelle adresse. Si
484ce n'est pas ce que vous souhaitez, vous devriez vérifier que vous n'offrez pas
485plus de services que vous ne souhaitez vraiment. ;)
486
487Voir [doc/network-services.md](doc/network-services.md) pour les instructions.
488
489
490### 5. Démarrez-le !
491
492    sudo ./cjdroute < cjdroute.conf
493
494Si vous voulez écrire les messages du programme dans un fichier :
495
496    sudo ./cjdroute < cjdroute.conf > cjdroute.log
497
498Pour arrêter cjdns :
499
500    sudo killall cjdroute
501
502Si vous avez des problèmes, utilisez `kilall cjdroute` pour retrouver un état
503propre. Utilisez `pgrep cjdroute` ou `top` pour vérifier s'il est lancé.
504
505**NOTE !**
506
507Cette commande lance cjdns en tant qu'utilisateur root afin de pouvoir
508configurer votre système sans soucis de droits. Pour démarrer cjdns en tant
509qu'utilisateur normal, voir [doc/non-root-user.md](doc/non-root-user.md).
510
511
512### 6. Venir sur IRC
513
514Bienvenue sur le réseau ! Vous êtes maintenant un administrateur réseau.
515Certaines responsabilités viennent avec le fait d'être un administrateur réseau
516incluant être disponible en cas de problème avec votre matériel. Vous devriez
517rester sur [IRC](#community) afin que les gens puissent vous joindre.
518
519
520## Interface administrateur
521
522Lorsque cjdroute est lancé, l'interface administrateur est disponible sur
523`udp://localhost:11234` (ceci peut être modifié dans le fichier de configuration
524`cjdroute.conf`). Voir [doc/admin-api.md](doc/admin-api.md) pour plus
525d'informations à propos de l'interface administrateur. Plusieurs outils pour
526interagir avec cette interface sont disponibles dans `contrib/`.
527
528Vous pouvez accéder à l'interface administrateur avec :
529
530* la **bibliothèque Python**; voir [ici](contrib/python/README.md).
531* la **bibliothèque Perl**, maintenue par Mikey; voir [ici](contrib/perl/CJDNS/README).
532
533
534## Remonter un bogue
5351. Ne remontez pas les bogues dans ce dépôt, veuillez les remonter au niveau de
536   https://github.com/hyperboria/bugs/issues
5372. Se connecter sur IRC et discuter avec quelqu'un
5383. Qu'adviendra-t-il si
539 * Quelqu'un se sent capable de le corriger
540 * Vous vous sentez capable de le corriger
541 * Personne ne se sent concerné et il sera oublié pendant une période jusqu'à ce
542   que quelqu'un d'autre tombe dessus plus tard et le corrige ou il sera corrigé
543   indirectement par une réorganisation du code
544 * Personne ne peut le corriger pour le moment mais il semble nécessaire de s'en
545   rappeler car il a un impact significatif sur la manière dont le projet est
546   développé, dans ce cas, il est nécessaire qu'il soit expliqué en termes
547   techniques par quelqu'un ayant une bonne connaissance du code du projet. Ils
548   devraient faire une requête au code (_pull request_) aux répertoires
549   docs/bugs.
550
551### Sécurité
552Les bogues de sécurité devraient être remontés sur IRC de la même manière que
553les autres bogues. Nous n'avons pas de groupe de personne priviligiée avec une
554connaissance spécifique, donc notre politique de remontée de bogues de sécurité
555est une divulgation totale.
556voir : https://github.com/cjdelisle/cjdns/blob/master/doc/security_specification.md pour voir si un bogue possible de sécurité en est vraiment un.
557
558À ce moment de l'année, à nouveau... Il est temps pour quelques projets libres !
559[![Hacktoberfest](https://img.shields.io/badge/Open%20Source-Hacktoberfest-orange.svg)](https://hacktoberfest.digitalocean.com/)
560
561[IRC Web]: http://chat.efnet.org/irc.cgi?chan=%23cjdns
562[Hyperboria]: https://hyperboria.net
563[/r/darknetplan]: https://www.reddit.com/r/darknetplan
564[#cjdns on Twitter]: https://twitter.com/hashtag/cjdns
565[Hyperboria Map]: https://www.fc00.org/
566[Buildbots]: https://buildbot.meshwith.me/cjdns/waterfall
567
568[Cjdns on Wikipedia]: https://en.wikipedia.org/wiki/Cjdns
569[Distributed Hash Table]: https://en.wikipedia.org/wiki/Distributed_hash_table
570[Beyond Pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
571[Kademlia]: https://en.wikipedia.org/wiki/Kademlia
572
573[Tor]: https://www.torproject.org
574[I2P]: https://geti2p.net/en/
575[Freenet]: https://freenetproject.org
576

README_GR.md

1# cjdns
2
3[English](README.md)
4[Русская версия](README_RU.md)
5[Hrvatski](README_HR.md)
6[Svenska](README_SV.md)
7[Deutsch](README_DE.md)
8[繁體中文](README_ZHT.md)
9[Español](README_ES.md)
10[Français](README_FR.md)
11
12#### *Η δικτύωση επανεφευρέθηκε*
13
14Cjdns υλοποιεί ένα κρυπτογραφημένο δίκτυο IPV6 χρησιμοποιώντας κρυπτογραφία δημόσιου-κλειδιού για
15κατανομή διευθύνσεων και ένα κατανεμημένο πίνακα hash για δρομολόγηση. Αυτό προσφέρει
16σχεδόν-μηδενικής-ρύθμισης δικτύωση, και αποτρέπει πολλά ζητήματα ασφαλείας και
17επεκτασιμότητας που μαστίζουν τα υπάρχοντα δίκτυα.
18
19[![Build Status](https://api.travis-ci.org/cjdelisle/cjdns.svg?branch=master)](https://travis-ci.org/cjdelisle/cjdns)
20[![tip for next commit](https://tip4commit.com/projects/941.svg)](https://tip4commit.com/github/cjdelisle/cjdns)
21[![irc](https://img.shields.io/badge/irc%20chat-%23cjdns-blue.svg)](https://kiwiirc.com/client/irc.efnet.org/?nick=visitor|?#cjdns)
22
23## Γνώμες πελατών
24
25    23:26 <@jercos> well, cjdns is now officially more reliable than the open
26                    internet for getting to my cheaper VPSes :|
27
28    12:52 < mariner> so i don't know if it's been done before, and i assume it's
29                     obvious, but I think it's neat. Currently on hype from an
30                     airplane
31
32    00:36 < tester> man sites take so long to load on i2p
33    00:36 < tester> i value speed over anonymity any day
34
35    <DuoNoxSol> it's notably more reliable than the normal internet
36
37    09:46 < Kubuxu> I so love cjdns code base
38
39    <whyrusleeping> my internet is way better now.
40    ​<whyrusleeping> thanks
41    <whyrusleeping> i'm really upset and sad that its better
42    <whyrusleeping> but also quite happy
43
44## Κοινότητα
45
46* [irc://irc.efnet.org/#cjdns][IRC Web]
47* [Hyperboria][] the largest cjdns network, as of October 2015 there are 2100 nodes.
48* [/r/darknetplan][]
49* [#cjdns on Twitter][]
50
51
52## Τεκμηρίωση
53
54* [Project Goals](doc/projectGoals.md)
55* [Cjdns Whitepaper](doc/Whitepaper.md)
56* [Cjdns στο Wikipedia]()
57
58Προχωρημένες ρυθμίσεις:
59
60* [Στήστε μια cjdns NAT πύλη για το LAN σας](doc/nat-gateway.md)
61* [Εγκατάσταση του cjdns σε OpenIndiana](doc/open-indiana.md)
62
63Ευχαριστούμε για το χρόνο και το ενδιαφέρον σας,
64
65Οι προγραμματιστές του cjdns.
66
67--------------------------------------------------------------------------------
68
69## Πώς να εγκαταστήσετε το cjdns
70
71Αυτές οι οδηγίες είναι για διανομές Debian-based Linux και macOS. Θα ήταν
72αρκετά πληροφοριακές για χρήση σε άλλες διανομές - απλά μην περιμένετε να
73δουλέψουν αυτολεξεί.
74
75### 0. Εγκατάσταση εξαρτήσεων
76
77Και στις δύο πλατφόρμες, η εγκατάσταση του [Node.js](https://nodejs.org/en), αν και προτιμούμενη,
78δεν είναι αυστηρά απαραίτητη. Αν το Node.js δεν είναι διαθέσιμο ή δεν είναι αποδεκτής έκδοσης,
79θα κατέβει και θα εγκατασταθεί στο πηγαίο δέντρο.
80
81#### Debian-based διανομή:
82
83    sudo apt-get install nodejs git build-essential python2.7
84
85#### Fedora 22+ based διανομή:
86
87    sudo dnf install install nodejs git
88    sudo dnf install @development-tools
89
90#### RHEL based διανομή (προσθέτει το EPEL αποθετήριο):
91
92    sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
93    sudo yum install install nodejs git
94    sudo yum install @development-tools
95
96#### macOS:
97
98Εγκατάσταση με το [Homebrew](https://brew.sh/):
99
100    brew install cjdns
101
102Εγκατάσταση με το [MacPorts](https://www.macports.org/):
103
104    sudo port install cjdns
105
106#### OpenBSD:
107
108Δυστυχώς, το OpenBSD είναι λίγο πειραματικό αυτή τη στιγμή.
109
110    pkg_add git node gcc gmake bash
111
112Διαλέξτε έκδοση gcc-4.8.1p2 ή πιο πρόσφατη.
113
114#### FreeBSD:
115
116Ό,τι χρειάζεστε είναι διαθέσιμο προκατασκευασμένο σε FreeBSD' ports.
117
118    pkg install gmake node bash
119
120#### Arch:
121
122Μπορείτε να εγκαταστήσετε το cjdns τρέχοντας
123
124    pacman -S cjdns
125
126Αν χρείαζεται να χτίσετε από τον πηγαίο κώδικα, όλα όσα χρείαζεστε μπορούν να εγκατασταθούν έτσι
127
128    pacman -S nodejs git base-devel
129
130### 1. Ανακτήστε το cjdns από το GitHub
131
132Κλωνοποίηστε το αποθετήριο από το GitHub και περάστε στο πηγαίο φάκελο:
133
134    git clone https://github.com/cjdelisle/cjdns.git
135    cd cjdns
136
137### 2. Χτίστε
138
139    ./do
140
141Κοιτάξτε για μήνυμα `Build completed successfully, type ./cjdroute to begin setup.`, μετά
142προχωρήστε παρακάτω:
143
144--------------------------------------------------------------------------------
145
146## Στήσιμο
147
148Τρέξτε το cjdroute χωρίς επιλογές για ΒΟΗΘΕΙΑ:
149
150    ./cjdroute
151
152### 0. Βεβαιωθείτε πως έχετε το πράμα.
153
154    LANG=C cat /dev/net/tun
155
156Αν λέει: `cat: /dev/net/tun: File descriptor in bad state` Καλώς!
157
158Αν λέει: `cat: /dev/net/tun: No such file or directory`, φτιάξτε το κάνοντας:
159
160    sudo mkdir -p /dev/net &&
161    sudo mknod /dev/net/tun c 10 200 &&
162    sudo chmod 0666 /dev/net/tun
163
164Μετά εκτελέστε `cat /dev/net/tun` ξανά.
165
166Αν λέει: `cat: /dev/net/tun: Permission denied` Πιθανώς χρησιμοποιείται κάποιο VPS
167βασισμένο στην OpenVZ πλατφόρμα εικονικοποίησης. Ζητήστε από τον παροχό σας να ενεργοποιήσει τη
168TUN/TAP συσκευή - αυτό είναι στάνταρ πρωτόκολλο ώστε να ξέρουν ακριβώς τι χρειάζεστε.
169Αν εργάζεστε σε macOS, δε χρειάζεται να ανησυχείτε για αυτό το βήμα.
170
171
172### 1. Δημιουργήστε ένα νέο αρχείο επιλογών
173
174    ./cjdroute --genconf >> cjdroute.conf
175
176**Προστατέψτε το αρχείο επιλογών σας!**
177
178Ένα χαμένο αρχείο επιλογών σημαίνει πως χάσατε τον κωδικό και
179τις συνδέσεις και οποιοσδήποτε ήταν συνδεδεμένος σε εσάς δεν μπορεί πλέον να συνδεθεί.
180Ένα εκτεθειμένο αρχείο επιλογών σημαίνει πως άλλοι μπορούν να σας υποδηθούν στο
181δίκτυο.
182
183Για να δημιουργήσετε ένα αρχείο επιλογών με άδειες όπου να είστε ο μόνος χρήστης που μπορεί
184να το διαβάσει και να γράψει σε αυτό:
185
186    (umask 077 && ./cjdroute --genconf > cjdroute.conf)
187
188
189### 2. Βρείτε ένα φίλο
190
191Για να μπείτε σε ένα υπάρχον δίκτυο (π.χ. το Hyperboria), χρειάζεται να συνδεθείτε με
192κάποιον που είναι ήδη στο δίκτυο. Αυτό απαιτείται για τους παρακάτω
193λόγους:
194
1951. Βοηθά στην αποτροπή της κατάχρησης γιατί οι κακοί άνθρωποι δε θα θέλουν και τόσο να καταχραστούν
196   ένα σύστημα αφότου, ως κίνηση ανθρωπιάς, τους δόθηκε πρόσβαση σε αυτό το
197   σύστημα.
1982. Δεν σκοπεύει να καλύψει το "Παλιό Internet", σκοπεύει να το αντικαταστήσει.
199   Κάθε σύνδεση με τον καιρό θα αντικατασταθεί από καλώδιο, οπτικές ίνες,
200   σύνδεση ασύρματης δικτύωσης.
2013. Σε οποιαδήποτε περίπτωση διαφωνίας, θα υπάρχει μια "αλυσίδα φίλων" που θα
202   συνδέει τα άτομα που ασχολούνται οπότε θα υπάρχει ήδη μια βάση ώστε να βγει
203   μια ανάλυση.
204
205Για να βρείτε ένα φίλο, βγείτε εκεί έξω και μπείτε στην [κοινότητα](#community). Επίσης, ρίξτε
206μια ματιά στο [Χάρτη του Hyperboria]() ώστε να βρείτε peers κοντά σας.
207
208
209### 3. Συνδέστε τον κόμβο σας στον κόμβο του φίλου σας
210
211**Ξεκινήστε μια εξερχόμενη σύνδεση**
212
213Στο αρχείο επιλογών, θα δείτε:
214
215``` javascript
216// Nodes to connect to.
217"connectTo":
218{
219    // Add connection credentials here to join the network
220    // Ask somebody who is already connected.
221}
222```
223
224Ένα αρχείο επιλογών με πολλαπλούς φιλικούς κόμβους, στις εξερχόμενες συνδέσεις, θα έμοιαζε κάπως έτσι:
225
226``` javascript
227// Nodes to connect to.
228"connectTo":
229{
230    //friend_1 (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
231    "0.1.2.3:45678":
232    {
233        "login": "k.alexander"
234        "password": "thisIsNotARealConnection_1",
235        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
236    }
237
238    //friend_2 (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
239    "5.1.2.3:5678":
240    {
241        "login": "k.alexander"
242        "password": "thisIsNotARealConnection_2",
243        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_2.k"
244    }
245}
246```
247
248Μπορείτε να προσθέσετε όσες συνδέσεις θέλετε στην `connectTo` ιδιότητα,
249ακολουθώντας σύνταξη JSON.
250
251
252**Για να επιτρέψετε στο φίλο σας να εκκινήσει μια εισερχόμενη σύνδεση**
253
254Στο αρχείο επιλογών, θα δείτε:
255
256``` javascript
257"authorizedPasswords":
258[
259    // A unique string which is known to the client and server.
260    {"password": "password001", "login": "default-login"}
261
262    // More passwords should look like this.
263    // {"password": "password002", "login": "my-second-peer"}
264    // {"password": "password003", "login": "my-third-peer}
265    // {"password": "password004", "login": "my-fourth-peer"}
266    ...
267
268    // "your.external.ip.goes.here:45678":{"login": "default-login", "password": "password001","publicKey":thisisauniqueKEY_001.k"}
269
270],
271```
272
273Ένα αρχείο επιλογών με πολλαπλούς φιλικούς κόμβους, στις εισερχόμενες συνδέσεις, θα έμοιαζε κάπως έτσι:
274``` javascript
275"authorizedPasswords":
276[
277    // A unique string which is known to the client and server.
278    {"password": "thisisauniquestring_001", "user": "k.alexander"}
279
280    // More passwords should look like this.
281    //William Jevons (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
282    {"password": "thisisauniquestring_002", "user": "William Jevons"}
283    //Marilyn Patel (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
284    {"password": "thisisauniquestring_003", "user": "Marilyn Patel"}
285    // {"password": "thisisauniquestring_004"}
286    ...
287
288    // "your.external.ip.goes.here:45678":{"password": "thisisauniquestring_001","publicKey":thisisauniqueKEY_001.k"}
289],
290```
291
292
293Χρειάζεται να δώσετε στον William Jevons (που θέλει να κάνει μια εισερχόμενη σύνδεση) τα 4 παρακάτω στοιχεία:
294
2951. Την εξωτερική IPv4 σας
2962. Την θύρα που θα βρείτε στο αρχείο επιλογών σας εδώ:
297
298    `// Bind to this port.
299    "bind": "0.0.0.0:οαριθμόςτηςθύραςείναιεδώ",`
300
3013. Τον μοναδικό κωδικό πρόσβασης που αποσχολιάσατε ή δημιουργήσατε: `"password": "thisisauniquestring_002"`
3024. Το δημόσιο κλειδί σας: `"publicKey": "thisisauniqueKEY_001.k"`
3035. Το όνομα χρήστη του: "William Jevons"
304
305Το πιστοποιητικό εισόδου του θα μοιάζει κάπως έτσι (με την IPv4 και θύρα σας):
306
307```javascript
308"1.2.3.4:56789": {
309    "login": "William Jevons",
310    "password": "thisisauniquestring_002",
311    "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
312}
313```
314
315Παρακαλούμε σημειώστε πως εσείς και ο φίλος σας μπορείτε να *εκκινήσετε* μία
316σύνδεση είτε εξερχόμενη (ΕΣΕΙΣ --> ΦΙΛΟΣ) ή εισερχόμενη (ΦΙΛΟ --> ΕΣΕΙΣ)
317αλλά η κίνηση είναι αμφίδρομη από τη στιγμή που γίνει η σύνδεση.
318
319Δείτε το [doc/configure.md](doc/configure.md) για περισσότερες πληροφορίες πάνω στις ρυθμίσεις,
320συμπεριλαμβανομένου του πως να συνδεθείτε με άλλους κόμβους cjdns μέσω ethernet και wifi.
321
322
323### 4. Διασφαλίστε το σύστημά σας - ελέγξτε για υπηρεσίες
324
325Με το που τρέξει ο κόμβος σας, είστε ένας φρεσκοκομμένος IPv6 host. Το λειτουργικό σας
326σύστημα ίσως αυτόματα επανερυθμίσει τις υπηρεσίες δικτύου για να χρησιμοποιήσει τη νέα σας διεύθυνση.
327Εαν αυτό δεν είναι επιθυμητό από εσάς, θα πρέπει να δείτε πως δεν προσφέρετε παραπάνω
328υπηρεσίες από αυτές που σκοπεύατε. ;)
329
330Δείτε το [doc/network-services.md](doc/network-services.md) για οδηγίες.
331
332
333### 5. Ξεκινήστε το!
334
335    sudo ./cjdroute < cjdroute.conf
336
337Αν θέλετε τα καταγραφόμενα να περαστούν σε αρχείο:
338
339    sudo ./cjdroute < cjdroute.conf > cjdroute.log
340
341Για να σταματήσετε το cjdns:
342
343    sudo killall cjdroute
344
345Αν έχετε προβλήματα χρησιμοποιήστε `killall cjdroute` για να επιστρέψετε στη λογική. Χρησιμοποιήστε
346`pgrep cjdroute` ή `top` για να δείτε αν τρέχει.
347
348**ΣΗΜΕΙΩΣΗ!**
349
350Αυτό ξεκινά το cjdns ως χρήστης root ώστε να μπορεί να ρυθμίσει το σύστημά σας
351χωρίς ανησυχίες για τα δικαιώματα. Για να ξεκινήσετε το cjdns ως μη-root χρήστης, δείτε
352[doc/non-root-user.md](doc/non-root-user.md).
353
354
355### 6. Μπείτε στο IRC
356
357Καλωσήρθατε στο δίκτυο! Πλέον είστε διαχειριστής δικτύου. Υπάρχουν
358ευθύνες που έρχονται με το να είσαι διαχειριστής δικτύου που συμπεριλαμβάνει
359το να είσαι διαθέσιμος σε περίπτωση που υπάρχει κάποιο πρόβλημα με τον εξοπλισμό σας. Θα πρέπει
360να μείνετε στο [IRC](#community) να μπορεί να σας βρει ο κόσμος.
361
362
363## Διεπαφή διαχείρισης
364
365Όταν το cjdroute τρέχει, η διεπαφή διαχείρισης είναι διαθέσιμη στη
366`udp://localhost:11234` (αυτό μπορεί να αλλαχτεί στο `cjdroute.conf`
367αρχείο επιλογών). Δείτε [doc/admin-api.md](doc/admin-api.md) για περισσότερες
368πληροφορίες σχετικά με την διεπαφή διαχείρισης. Υπάρχουν διάφορα εργαλεία στο `contrib/`
369που μπορούν να αλληλεπιδράσουν με αυτή.
370
371Μπορείτε να έχετε πρόσβαση στο API διαχείρισης με:
372
373* την **Python library**; δείτε [εδώ](contrib/python/README.md).
374* την **Perl library**, συντηρείται από τον Mikey; δείτε [εδώ](contrib/perl/CJDNS/README).
375
376
377[IRC Web]: http://chat.efnet.org/irc.cgi?chan=%23cjdns
378[Hyperboria]: https://hyperboria.net
379[/r/darknetplan]: https://www.reddit.com/r/darknetplan
380[#cjdns on Twitter]: https://twitter.com/hashtag/cjdns
381[Hyperboria Map]: https://www.fc00.org/
382[Buildbots]: https://buildbot.meshwith.me/cjdns/waterfall
383
384[Cjdns on Wikipedia]: https://en.wikipedia.org/wiki/Cjdns
385[Distributed Hash Table]: https://en.wikipedia.org/wiki/Distributed_hash_table
386[Beyond Pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
387[Kademlia]: https://en.wikipedia.org/wiki/Kademlia
388
389[Tor]: https://www.torproject.org
390[I2P]: https://geti2p.net/en/
391[Freenet]: https://freenetproject.org
392

README_HR.md

1# cjdns
2
3[English](README.md)
4[Русская версия](README_RU.md)
5[Svenska](README_SV.md)
6[Ελληνικά](README_GR.md)
7[Deutsch](README_DE.md)
8[繁體中文](README_ZHT.md)
9[Español](README_ES.md)
10[Français](README_FR.md)
11
12#### *Umrežavanje iznova*
13
14Cjdns je šifrirana IPv6 mreža koja koristi public-key kriptografiju za
15dodjelu adresa i DHT za usmjeravanje. To omogućuje gotovo nikakvu
16mrežnu konfiguraciju i sprječava mnoge sigurnosne i
17skalabilne probleme koje muče trenutne mreže.
18
19[![Build Status](https://api.travis-ci.org/cjdelisle/cjdns.svg?branch=master)](https://travis-ci.org/cjdelisle/cjdns)
20[![napojnica za sljedeću promjenu](https://tip4commit.com/projects/941.svg)](https://tip4commit.com/github/cjdelisle/cjdns)
21
22## Iskustva
23
24    23:26 <@jercos> well, cjdns is now officially more reliable than the open
25                    internet for getting to my cheaper VPSes :|
26
27    12:52 < mariner> so i don't know if it's been done before, and i assume it's
28                     obvious, but I think it's neat. Currently on hype from an
29                     airplane
30
31    00:36 < tester> man sites take so long to load on i2p
32    00:36 < tester> i value speed over anonymity any day
33
34    <DuoNoxSol> it's notably more reliable than the normal internet
35    <DuoNoxSol> even though it really really shouldn't be
36    <DuoNoxSol> seeing as the connections are largely over the normal internet
37
38
39## Zajednica
40
41* irc://irc.efnet.org/#cjdns ([web client][IRC Web])
42* [Hyperboria][]
43* [Projekt Meshnet][]
44* [/r/darknetplan][]
45* [#cjdns na Twitteru][]
46
47
48## Dokumentacija
49
50* [Ciljevi projekta](doc/projectGoals.md)
51* [Cjdns Whitepaper](doc/Whitepaper.md)
52* [Cjdns na Wikipediji][]
53
54
55Napredna konfiguracija:
56
57* [Setup a cjdns NAT gateway for your LAN](doc/nat-gateway.md)
58* [Instaliraj cjdns na OpenIndiani](doc/open-indiana.md)
59
60Hvala Vam za vaše vrijeme i interes,
61
62Cjdns programeri.
63
64--------------------------------------------------------------------------------
65
66## Kako instalirati cjdns
67
68Ove instrukcije su namijenjene za distribucije bazirane na Debian Linux-u i macOS-u.
69Trebale bi biti dovoljno informativne za korištenje na ostalim distribucijama,
70ali ne očekujte da će raditi od prve.
71
72### 0. Install dependencies
73
74On both platforms, installing [Node.js](https://nodejs.org/), although preferable,
75is not strictly necessary. If Node.js is unavailable or an unacceptable version,
76it will be downloaded and installed in the source tree.
77
78#### Distribucija bazirana na Debianu:
79
80    sudo apt-get install nodejs git build-essential python2.7
81
82#### Distribucija bazirana na Fedori 22+:
83
84    sudo dnf install install nodejs git
85    sudo dnf install @development-tools
86
87#### Distribucija bazirana na RHELu (dodaje EPEL repozitorij):
88
89    sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
90    sudo yum install install nodejs git
91    sudo yum install @development-tools
92
93#### macOS:
94
95Instalacija putem [Homebrewa](https://brew.sh/):
96
97    brew install cjdns
98
99Instalacija putem [MacPortsa](https://www.macports.org/):
100
101    sudo port install cjdns
102
103#### OpenBSD:
104
105    pkg_add git node gcc gmake bash
106
107Odaberite verziju gcc-4.8.1p2 ili noviju.
108
109#### FreeBSD:
110
111    pkg install gmake node
112
113#### Arch:
114
115Možete instalirati cjdns sljedećom naredbom;
116
117    pacman -S cjdns
118
119If you need to build from source, everything you need can be installed like this
120
121    pacman -S nodejs git base-devel
122
123Alternatively, you may like to install via AUR from the package, `cjdns-git`.
124Nakon instalacije konfiguracijska datoteka će se nalaziti u `/etc/cjdroute.conf`.
125Za pokrenuti servis `cjdns.service`, pokrenite sljedeću naredbu:
126
127        systemctl start cjdns
128
129Za zaustavljanje:
130
131       systemctl stop cjdns
132
133#### Gentoo:
134
135cjdns is not yet in the main Gentoo repository, so you will have to use an overlay.
136The easiest way is to use Layman but you can do it by hand, too.
137
138##### Layman:
139
140Prvo treba te instalirati layman:
141
142      emerge layman
143
144If layman is installed correctly, you can add the overlay
145
146      layman -f
147      layman -a weuxel
148
149For future update of the overlay use
150
151      layman -S
152
153Now you can install cjdns
154
155      emerge cjdns
156
157##### By hand:
158
159You will have to clone the overlay repository
160
161       cd /opt
162       git clone https://github.com/Weuxel/portage-weuxel.git
163
164Now tell portage to use this repo
165
166       cd /etc/portage/repos.conf/
167
168Create a file `portage-weuxel.conf` containing
169
170       [weuxel]
171       location = /opt/portage-weuxel
172       masters = gentoo
173       auto-sync = yes
174
175Now sync
176
177       emerge --sync
178
179And install cjdns
180
181   emerge cjdns
182
183#### Automatic crash detection and restart
184
185Copy the the openrc init script from `contrib/openrc` to `/etc/init.d/` and modify the `CONFFILE` and `command` parameter to your needs.
186Then start cjdns by issuing
187
188   /etc/init.d/cjdns start
189
190Configure the init system to autostart cjdns
191
192   rc-update add cjdns default
193
194Copy the service_restart script `contrib/gentoo/service_restart.sh` to any convenient directory on
195your system and modify the eMail address. If you do not wish to be notified, comment out the whole line.
196Now add a crontab entry like this
197
198   # Restart crashed Services
199   * * * * *       root	/path/to/script/service_restart.sh
200
201#### Solus:
202
203Dependencies:
204
205      sudo eopkg install nodejs git build-essential system.devel python gcc binutils kernal-headers xorg-server-devel
206
207Then Follow the steps below:
208
209*Sorry for so many steps. A package is being worked on currently*
210
211### 1. Preuzmite cjdns sa GitHuba
212
213Clone the repository from GitHub and change to the source directory:
214
215    git clone https://github.com/cjdelisle/cjdns.git cjdns
216    cd cjdns
217
218### 2. Build
219
220    ./do
221
222Potražite `Build completed successfully, type ./cjdroute to begin setup.`, zatim nastavite:
223
224--------------------------------------------------------------------------------
225
226## Setup
227
228Run cjdroute without options for HELP:
229
230    ./cjdroute
231
232### 0. Provjerite imate li potrebne stvari
233
234    LANG=C cat /dev/net/tun
235
236Ako kaže: `cat: /dev/net/tun: File descriptor in bad state`, sve je u redu!
237
238Ako kaže: `cat: /dev/net/tun: No such file or directory`, stvorite ga putem:
239
240    sudo mkdir -p /dev/net &&
241    sudo mknod /dev/net/tun c 10 200 &&
242    sudo chmod 0666 /dev/net/tun
243
244Zatim opet pokrenite `cat /dev/net/tun`.
245
246Ako kaže: `cat: /dev/net/tun: Permission denied` vjerojatno koristite VPS
247baziran na OpenVZ virtualizacijskoj platformi. Pitajte vašeg pružatelja usluga da vam omogući
248TUN/TAP - ovo je standardni protokol tako da bi trebali znati što trebate.
249Ako ste na macOSu, ne morate se brinuti u vezi ove greške.
250
251
252### 1. Stvorite novu konfiguracijsku datoteku
253
254    ./cjdroute --genconf >> cjdroute.conf
255
256**Zaštitite Vašu konfiguraciju!** A lost conf file means you lost your password and
257connections and anyone who connected to you will no longer be able to connect.
258A compromised conf file means that other people can impersonate you on the
259network.
260
261To set generate a conf file with permissions set so that only your user can
262read it and write to it:
263
264    (umask 077 && ./cjdroute --genconf > cjdroute.conf)
265
266
267### 2. Pronađite prijatelja
268
269Kako biste ušli u postojeću mrežu (npr. Hyperboria), morate se spojiti s nekime
270tko je već unutar te mreže. To je tako zbog nekoliko razloga:
271
2721. It helps prevent abuse because bad people will be less likely to abuse a
273   system after they were, in an act of human kindness, given access to that
274   system.
2752. This is not intended to overlay The Old Internet, it is intended to replace
276   it. Each connection will in due time be replaced by a wire, a fiber optic
277   cable, or a wireless network connection.
2783. In any case of a disagreement, there will be a "chain of friends" linking
279   the people involved so there will already be a basis for coming to a
280   resolution.
281
282To find a friend, get out there and join our [community](#community). Also, have
283a look at the [Hyperboria Map][] to find peers near you.
284
285
286### 3. Spojite vaš node sa nodeom prijatelja
287
288**Za pokretanje izlazne konekcije**
289
290U Vašoj conf datoteci vidjeti ćete:
291
292``` javascript
293// Nodes to connect to.
294"connectTo":
295{
296    // Add connection credentials here to join the network
297    // Ask somebody who is already connected.
298}
299```
300
301A conf file with multiple friend-nodes, setup OUTbound, should look like:
302
303``` javascript
304// Nodes to connect to.
305"connectTo":
306{
307    //friend_1 (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
308    "0.1.2.3:45678":
309    {
310        "password": "thisIsNotARealConnection_1",
311        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
312    }
313
314    //friend_2 (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
315    "5.1.2.3:5678":
316    {
317        "password": "thisIsNotARealConnection_2",
318        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_2.k"
319    }
320}
321```
322
323You can add as many connections as you want to the `connectTo` attribute,
324following JSON syntax.
325
326
327**To allow your friend to initiate the connection INbound**
328
329U Vašoj conf datoteci vidjeti ćete:
330``` javascript
331"authorizedPasswords":
332[
333    // A unique string which is known to the client and server.
334    {"password": "password001", "login": "default-login"}
335
336    // More passwords should look like this.
337    // {"password": "password002", "login": "my-second-peer"}
338    // {"password": "password003", "login": "my-third-peer}
339    // {"password": "password004", "login": "my-fourth-peer"}
340    ...
341
342    // "your.external.ip.goes.here:45678":{"login": "default-login", "password": "password001","publicKey":thisisauniqueKEY_001.k"}
343
344],
345```
346
347A conf file with multiple friend-nodes, setup INbound, should look like:
348``` javascript
349"authorizedPasswords":
350[
351    // A unique string which is known to the client and server.
352    {"password": "thisisauniquestring_001", "user": "k.alexander"}
353
354    // More passwords should look like this.
355    //William Jevons (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
356    {"password": "thisisauniquestring_002", "user": "William Jevons"}
357    //Marilyn Patel (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
358    {"password": "thisisauniquestring_003", "user": "Marilyn Patel"}
359    // {"password": "thisisauniquestring_004"}
360    ...
361
362    // "your.external.ip.goes.here:45678":{"password": "thisisauniquestring_001","publicKey":thisisauniqueKEY_001.k"}
363],
364```
365
366
367Morate dati friend_3 (who is making the INbound connection) sljedeće 4 stvari:
368
3691. Vašu vanjsku IPv4 adresu
3702. Port iz konfiguracijske datoteke:
371
372                `// Bind to this port.
373                "bind": "0.0.0.0:yourportnumberishere",`
374
3753. Their unique password that you uncommented or created: `"password": "thisisauniquestring_002"`
3764. Vaš javni ključ: `"publicKey": "thisisauniqueKEY_001.k"`
377
378
379
380Please note that you and your friend can *initiate* a
381connection either outbound (from YOU --> FRIEND) or inbound (from FRIEND --> YOU)
382but traffic flows both ways once the connection is established.
383
384
385See [doc/configure.md](doc/configure.md) for more details on configuration,
386including how to peer with other cjdns nodes over ethernet and wifi.
387
388
389### 4. Zaštitite Vaš sustav - check for listening services
390
391Nakon što se Vaš node pokrene, postajete IPv6 host. Vaš operativni
392sustav će automatski konfigurirati mrežne servise kako bi koristili novu adresu.
393Ako ovo nije Vaš cilj, trebali bi ste provjeriti da ne pružate više servisa
394nego što mislite. ;)
395
396Pogledajte [doc/network-services.md](doc/network-services.md) za instrukcije.
397
398
399### 5. Pokrenite ga!
400
401    sudo ./cjdroute < cjdroute.conf
402
403Ako želite da se logovi zapisuju u datoteku:
404
405    sudo ./cjdroute < cjdroute.conf > cjdroute.log
406
407Za zaustavljanje cjdns-a:
408
409    sudo killall cjdroute
410
411Ako imate problema koristite `killall cjdroute`.
412Koristite `pgrep cjdroute` ili `top` kako bi ste provjerili radi li cjdns.
413
414**Note:** ovo pokreće cjdns kao putem korisnika tako da može konfigurirati Vaš sustav
415bez potrebnih dozvola. Za pokretanje cjdns-a putem običnog korisnika, pogledajte
416[doc/non-root-user.md](doc/non-root-user.md).
417
418
419### 6. Dođite na IRC
420
421Dobrodošli u mrežu! Sada ste mrežni administrator. Kao mrežni
422administrator odgovorni ste za stvari poput kvara opreme.
423Budite na [IRC-u](#community) kako bi vas ljudi mogli kontaktirati.
424
425
426## Administratorsko sučelje
427
428Kada je cjdnroute pokrenut, administratorsko sučelje biti će dostupna na
429`udp://localhost:11234` (ovo se može promijeniti u cjdroute.conf
430konfiguracijskoj datoteci). Pogledajte [doc/admin-api.md](doc/admin-api.md) za više
431informacija o administratorskom sučelju. U `contrib/` se nalazi nekoliko alata
432s kojima može komunicirati.
433
434Možete pristupiti administratorskom API-ju putem:
435
436* the **Python library**; pogledajte
437  [contrib/python/README.md](contrib/python/README.md).
438* the **Perl library**, održava Mikey; pogledajte
439  [contrib/perl/CJDNS/README](contrib/perl/CJDNS/README).
440
441
442[IRC Web]: http://chat.efnet.org/irc.cgi?chan=%23cjdns
443[Hyperboria]: https://hyperboria.net
444[/r/darknetplan]: https://www.reddit.com/r/darknetplan
445[#cjdns na Twitteru]: https://twitter.com/hashtag/cjdns
446[Hyperboria Map]: https://www.fc00.org/
447[Buildbots]: https://buildbot.meshwith.me/cjdns/waterfall
448
449[Cjdns na Wikepediji]: https://en.wikipedia.org/wiki/Cjdns
450[Distribuirana hash tablica]: https://en.wikipedia.org/wiki/Distributed_hash_table
451[Beyond Pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
452[Kademlia]: https://en.wikipedia.org/wiki/Kademlia
453
454[Tor]: https://www.torproject.org
455[I2P]: https://geti2p.net/en/
456[Freenet]: https://freenetproject.org
457

README_PT-BR.md

1# cjdns
2
3[Русская версия](README_RU.md)
4[Hrvatski](README_HR.md)
5[Svenska](README_SV.md)
6[Ελληνικά](README_GR.md)
7[Deutsch](README_DE.md)
8[繁體中文](README_ZHT.md)
9[Español](README_ES.md)
10[Français](README_FR.md)
11[Português brasileiro](README_PT-BR.md)
12
13#### *Rede Reinventada*
14
15O Cjdns implementa uma rede IPv6 criptografada usando criptografia de chave pública para
16alocação de endereços e uma tabela de hash distribuída para roteamento. Isso fornece
17rede de configuração quase zero e evita muitos dos aspectos de segurança e
18problemas de escalabilidade que afetam as redes existentes.
19
20[![Build Status](https://api.travis-ci.org/cjdelisle/cjdns.svg?branch=master)](https://travis-ci.org/cjdelisle/cjdns)
21[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/387/badge)](https://bestpractices.coreinfrastructure.org/projects/387)
22[![tip for next commit](https://tip4commit.com/projects/941.svg)](https://tip4commit.com/github/cjdelisle/cjdns)
23[![irc](https://img.shields.io/badge/irc%20chat-%23cjdns-blue.svg)](https://kiwiirc.com/client/irc.efnet.org/?nick=visitor|?#cjdns)
24![License](https://img.shields.io/github/license/cjdelisle/cjdns.svg)
25
26## Depoimentos
27
28    23:26 <@jercos> well, cjdns is now officially more reliable than the open
29                    internet for getting to my cheaper VPSes :|
30
31    12:52 < mariner> so i don't know if it's been done before, and i assume it's
32                     obvious, but I think it's neat. Currently on hype from an
33                     airplane
34
35    00:36 < tester> man sites take so long to load on i2p
36    00:36 < tester> i value speed over anonymity any day
37
38    <DuoNoxSol> it's notably more reliable than the normal internet
39
40    09:46 < Kubuxu> I so love cjdns code base
41
42    <whyrusleeping> my internet is way better now.
43    <whyrusleeping> thanks
44    <whyrusleeping> i'm really upset and sad that its better
45    <whyrusleeping> but also quite happy
46
47    21:01 <@grewalsat> this is amazing. with my workpalce speedtest.net results I get around 6+mb speed, and with my cjdns-gate as vpn network I'm getting like 11-15mb download speed in speedtest.net
48    21:01 <@grewalsat> :P
49    21:01 <@grewalsat> plus, access anything! :D
50
51    <davidar> Yeah, I have to admit I sort of avoided hypeirc because of stuff like that
52
53## Comunidade
54
55* [irc://irc.efnet.org/#cjdns][IRC Web]
56* [Hyperboria][] a maior rede de cjdns, em outubro de 2015, havia 2100 nós.
57* [/r/darknetplan][]
58* [#cjdns no Twitter][]
59* [/r/CJDNS](https://www.reddit.com/r/cjdns/)
60
61
62## Documentação
63
64* [Objetivos do projeto](doc/projectGoals.md)
65* [Cjdns Whitepaper](doc/Whitepaper.md)
66* [Cjdns na Wikipedia][]
67
68Configuração avançada:
69
70* [Configure um gateway NAT cjdns para sua LAN](doc/nat-gateway.md)
71* [Instale cjdns no OpenIndiana](doc/open-indiana.md)
72
73Obrigado por seu tempo e interesse,
74
75Os desenvolvedores do cjdns.
76
77--------------------------------------------------------------------------------
78
79## Como instalar o cjdns
80
81Estas instruções são para distribuições Linux baseadas no Debian e macOS. Eles deveriam ser
82informativo o suficiente para uso em outras distribuições - apenas não espere que
83trabalhar literalmente. Se você quer saber qual é a [base do sistema operacional, clique aqui](https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg).
84
85### 0. Instalar dependências
86
87Nas duas plataformas, a instalação do [Node.js] (https://nodejs.org/), embora seja preferível,
88não é estritamente necessário. Se o Node.js estiver indisponível ou uma versão inaceitável,
89ele será baixado e instalado na árvore de origem.
90
91#### Distribuição baseada no Debian:
92
93    sudo apt-get install nodejs git build-essential python2.7
94
95#### Distro baseado no Fedora 22+:
96
97    sudo dnf install nodejs git
98    sudo dnf install @development-tools
99
100#### Distribuição baseada em RHEL (adiciona o repositório EPEL):
101
102    sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
103    sudo yum install nodejs git
104    sudo yum install @development-tools
105
106#### Construção a partir do pacote:
107
108    sudo yum localinstall https://kojipkgs.fedoraproject.org//packages/cjdns/17.4/4.el6/src/cjdns-17.4-4.el6.src.rpm
109
110Se você estiver em um laptop e o suspender ou hibernar, o cjdroute levará alguns
111minutos para fazer café e descobrir o que aconteceu quando acorda. Vocês
112pode acelerar drasticamente isso com:
113
114    systemctl enable cjdns-resume
115
116O serviço de reinicialização reinicia o cjdns quando o sistema acorda do modo de suspensão.
117
118#### Gentoo
119
120    emerge --ask nodejs sys-devel/gcc dev-lang/python:3.4 dev-vcs/git
121
122#### macOS:
123
124Instale com [Homebrew](https://brew.sh/):
125
126    brew install cjdns
127
128Instale com [MacPorts](https://www.macports.org/):
129
130    sudo port install cjdns
131
132#### OpenBSD:
133
134    pkg_add git node gcc gmake bash
135
136Selecione a versão gcc-4.8.1p2 ou mais recente.
137
138#### FreeBSD:
139
140Tudo o que você precisa está disponível pré-compilado nas portas do FreeBSD.
141
142    pkg install gmake node
143
144#### Arch:
145
146Você pode instalar cjdns executando:
147
148    pacman -S cjdns
149
150Se você precisa construir a partir do código-fonte, tudo o que você precisa pode ser instalado assim:
151
152    pacman -S nodejs git base-devel
153
154Como alternativa, você pode instalar via AUR a partir do pacote, `cjdns-git`.
155Após a instalação, o arquivo de configuração está localizado em `/etc/cjdroute.conf`.
156Para iniciar o serviço `cjdns.service`, faça:
157
158    systemctl start cjdns
159
160Para parar:
161
162    systemctl stop cjdns
163
164#### Gentoo:
165
166O cjdns ainda não está no repositório principal do Gentoo, então você terá que usar uma sobreposição.
167A maneira mais fácil é usar o Layman, mas você também pode fazê-lo manualmente.
168
169##### Layman:
170
171Primeiro, você precisa instalar layman.
172
173    emerge layman
174
175Se o layman estiver instalado corretamente, você poderá adicionar a sobreposição
176
177    layman -f
178    layman -a weuxel
179
180Para atualização futura da sobreposição, use
181
182    layman -S
183
184Agora você pode instalar o cjdns
185
186    emerge cjdns
187
188##### À mão:
189
190Você precisará clonar o repositório de sobreposições
191
192    cd /opt
193    git clone https://github.com/Weuxel/portage-weuxel.git
194
195Agora diga ao portage para usar este repositório
196
197    cd /etc/portage/repos.conf/
198
199Crie um arquivo `portage-weuxel.conf` contendo
200
201    [weuxel]
202    location = /opt/portage-weuxel
203    masters = gentoo
204    auto-sync = yes
205
206Agora sincronize
207
208    emerge --sync
209
210E instale cjdns
211
212    emerge cjdns
213
214#### Detecção e reinício automáticos de falhas
215
216Copie o script init openrc de `contrib/openrc` para `/etc/init.d/` e modifique o `CONFFILE` e `command` parâmetro para suas necessidades.
217Em seguida, inicie o cjdns emitindo
218
219    /etc/init.d/cjdns start
220
221Configure o sistema init para iniciar automaticamente cjdns
222
223    rc-update add cjdns default
224
225Copie o script service_restart `contrib/gentoo/service_restart.sh` para qualquer diretório conveniente em
226seu sistema e modifique o endereço de e-mail. Se você não deseja ser notificado, comente toda a linha.
227Agora adicione uma entrada crontab como esta
228
229    # Restart crashed Services
230    * * * * *       root	/path/to/script/service_restart.sh
231
232#### Solus:
233
234Dependências:
235
236    sudo eopkg install nodejs git build-essential system.devel python gcc binutils kernal-headers xorg-server-devel
237
238Siga as etapas abaixo:
239
240* Desculpe por tantas etapas. Um pacote está sendo trabalhado atualmente *
241
242##### 1. Recuperar cjdns do GitHub
243
244Clone o repositório do GitHub e mude para o diretório de origem:
245
246    git clone https://github.com/cjdelisle/cjdns.git cjdns
247    cd cjdns
248
249##### 2. Construir
250
251    ./do
252
253Procure por `Build completed successfully, type ./cjdroute to begin setup.`e, em seguida,
254prossiga abaixo:
255
256--------------------------------------------------------------------------------
257
258## Configuração
259
260Execute cjdroute sem opções para HELP:
261
262    ./cjdroute
263
264### 0. Verifique se você tem as coisas.
265
266Se você estiver no macOS, não se preocupe com esta etapa.
267
268    LANG=C cat /dev/net/tun
269
270Se diz: `cat: /dev/net/tun: File descriptor in bad state` Bom!
271
272Se diz: `cat: /dev/net/tun: No such file or directory`, crie usando:
273
274    sudo mkdir -p /dev/net &&
275    sudo mknod /dev/net/tun c 10 200 &&
276    sudo chmod 0666 /dev/net/tun
277
278Então `cat /dev/net/tun` novamente.
279
280Se diz: `cat: /dev/net/tun: Permission denied` Você provavelmente está usando um VPS
281com base na plataforma de virtualização OpenVZ. Peça ao seu provedor para ativar o
282Dispositivo TUN / TAP - este é o protocolo padrão para que eles saibam exatamente o que você
283necessita.
284
285
286### 1. Gere um novo arquivo de configuração
287
288    ./cjdroute --genconf >> cjdroute.conf
289
290**Proteja seu arquivo conf!**
291
292Um arquivo conf perdido significa que você perdeu sua senha e
293conexões e qualquer pessoa conectada a você não poderá mais se conectar.
294Um arquivo conf comprometido significa que outras pessoas podem se passar por você na rede.
295
296Para gerar um arquivo conf com permissões definidas, para que somente seu usuário possa lê-lo e gravá-lo:
297
298    (umask 077 && ./cjdroute --genconf > cjdroute.conf)
299
300
301### 2. Encontre um amigo
302
303Para entrar em uma rede existente (por exemplo, Hyperboria), você precisa se conectar a alguém que já esteja na rede. Isso é necessário por vários motivos:
304
3051. Ajuda a evitar abusos, porque as pessoas más terão menos probabilidade de abusar de um sistema depois de terem, em um ato de bondade humana, acesso a esse sistema.
3062. Não se destina a sobrepor a Internet antiga, mas a substituí-la. No momento oportuno, cada conexão será substituída por um fio, um cabo de fibra ótica ou uma conexão de rede sem fio.
3073. Em qualquer caso de desacordo, haverá uma "cadeia de amigos" ligando as pessoas envolvidas, para que já haja uma base para chegar a uma resolução.
308
309Para encontrar um amigo, vá lá e participe de nossa [comunidade] (# comunidade). Além disso, dê uma olhada no [Mapa da Hyperboria] (https://www.fc00.org/) para encontrar colegas perto de você.
310
311Você também pode usar a lista geograficamente variada de credenciais de emparelhamento público para ingressar no Hyperboria em [hyperboria / peers] (https://github.com/hyperboria/peers).
312
313### 3. Conecte seu nó ao nó do seu amigo
314
315**Para iniciar a conexão OUTbound**
316
317No seu arquivo conf, você verá:
318
319``` javascript
320// Nodes to connect to.
321"connectTo":
322{
323    // Add connection credentials here to join the network
324    // Ask somebody who is already connected.
325}
326```
327
328Um arquivo conf com vários nós amigos, configuração OUTbound, deve se parecer com:
329
330``` javascript
331// Nodes to connect to.
332"connectTo":
333{
334    //friend_1 (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
335    "0.1.2.3:45678":
336    {
337        "login": "k.alexander"
338        "password": "thisIsNotARealConnection_1",
339        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
340    },
341
342    //friend_2 (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
343    "5.1.2.3:5678":
344    {
345        "login": "k.alexander"
346        "password": "thisIsNotARealConnection_2",
347        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_2.k"
348    }
349}
350```
351
352Você pode adicionar quantas conexões desejar ao atributo `connectTo`,
353seguindo a sintaxe JSON.
354
355
356**Para permitir que seu amigo inicie a conexão INbound**
357
358No seu arquivo conf, você verá:
359
360``` javascript
361"authorizedPasswords":
362[
363    // A unique string which is known to the client and server.
364    {"password": "password001", "login": "default-login"}
365
366    // More passwords should look like this.
367    // {"password": "password002", "login": "my-second-peer"}
368    // {"password": "password003", "login": "my-third-peer}
369    // {"password": "password004", "login": "my-fourth-peer"}
370    ...
371
372    // "your.external.ip.goes.here:45678":{"login": "default-login", "password": "password001","publicKey":thisisauniqueKEY_001.k"}
373
374],
375```
376
377Um arquivo conf com vários nós amigos, configuração INbound, deve se parecer com:
378``` javascript
379"authorizedPasswords":
380[
381    // A unique string which is known to the client and server.
382    {"password": "thisisauniquestring_001", "user": "k.alexander"}
383
384    // More passwords should look like this.
385    //William Jevons (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
386    {"password": "thisisauniquestring_002", "user": "William Jevons"}
387    //Marilyn Patel (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
388    {"password": "thisisauniquestring_003", "user": "Marilyn Patel"}
389    // {"password": "thisisauniquestring_004"}
390    ...
391
392    // "your.external.ip.goes.here:45678":{"password": "thisisauniquestring_001","publicKey":thisisauniqueKEY_001.k"}
393],
394```
395
396
397Você precisa fornecer a William Jevons (que está fazendo a conexão de entrada) os seguintes 4 itens:
398
3991. Seu IPv4 externo
4002. A porta encontrada no seu arquivo conf aqui:
401
402    `// Bind to this port.
403    "bind": "0.0.0.0:yourportnumberishere",`
404
4053. A senha exclusiva deles que você descomentou ou criou: `"password": "thisisauniquestring_002"`
4064. Sua chave pública: `"publicKey": "thisisauniqueKEY_001.k"`
4075. O nome de usuário dele: "William Jevons"
408
409Suas credenciais de login terão a seguinte aparência (com seu IPv4 e porta):
410
411```javascript
412"1.2.3.4:56789": {
413    "login": "William Jevons",
414    "password": "thisisauniquestring_002",
415    "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
416}
417```
418
419Observe que você e seu amigo podem * iniciar * uma conexão de saída (de VOCÊ -> AMIGO) ou de entrada (de AMIGO -> VOCÊ), mas o tráfego flui para os dois lados quando a conexão é estabelecida.
420
421Consulte [doc/configure.md](doc/configure.md) para obter mais detalhes sobre configuração,
422incluindo como fazer pares com outros nós cjdns por Ethernet e Wi-Fi.
423
424
425### 4. Proteja seu sistema - verifique se há serviços de escuta
426
427Depois que o nó estiver em execução, você será um host IPv6 recém-criado. Seu sistema operacional pode reconfigurar automaticamente os serviços de rede para usar esse novo endereço.
428Se não é isso que você pretende, verifique se não está
429oferecendo mais serviços do que você pretendia. ;)
430
431Consulte [doc/network-services.md](doc/network-services.md) para obter instruções.
432
433
434### 5. Iniciar!
435
436    sudo ./cjdroute < cjdroute.conf
437
438Se você deseja que seus logs sejam gravados em um arquivo:
439
440    sudo ./cjdroute < cjdroute.conf > cjdroute.log
441
442Para parar cjdns:
443
444    sudo killall cjdroute
445
446Se você estiver tendo problemas, use `killall cjdroute` para retornar à sanidade. Use
447`pgrep cjdroute` ou `top` para ver se está rodando.
448
449**NOTA!**
450
451Isso inicia o cjdns como usuário root, para que ele possa configurar seu sistema sem se preocupar com permissões. Para iniciar o cjdns como um usuário não root, consulte
452[doc/non-root-user.md](doc/non-root-user.md).
453
454
455### 6. Entre no IRC
456
457Bem-vindo à rede! Agora você é um administrador de rede. Existem responsabilidades inerentes ao administrador da rede, que incluem a disponibilidade, caso haja algo errado com o seu equipamento. Você deve permanecer no [IRC](#community) para que as pessoas possam alcançá-lo.
458
459## Interface de administração
460
461Quando o cjdroute estiver em funcionamento, a interface administrativa estará disponível em
462`udp://localhost:11234` (isso pode ser alterado no arquivo de configuração `cjdroute.conf`). Consulte [doc/admin-api.md](doc/admin-api.md) para mais
463informações sobre a interface de administração. Existem várias ferramentas no `contrib/`
464que pode interagir com ele.
465
466Você pode acessar a API do administrador com:
467
468* o **Python library**; consulte [aqui](contrib/python/README.md).
469* o **Perl library**, mantido por Mikey; consulte [aqui](contrib/perl/CJDNS/README).
470
471
472## Relatar problemas
4731. Não reporte neste repositório, em vez disso, https://github.com/hyperboria/bugs/issues
4742. Entre no IRC e converse com alguém
4753. O que vai acontecer é
476  * Alguém quer consertar
477  * Você quer consertá-lo
478  * Ninguém se importa com isso e será esquecido por um tempo e talvez alguém o acerte mais tarde
479  e conserte-o, caso contrário ele será apagado em uma refatoração
480  * Ninguém pode consertá-lo no momento, mas é considerado digno de lembrança, porque possui ótimas
481  importante para a maneira como o código é desenvolvido, nesse caso, ele precisa ser explicado em detalhes técnicos.
482  termos por alguém com forte familiaridade com o código. Eles farão uma solicitação de recebimento para o
483  diretório docs/bugs.
484
485### Segurança
486Os problemas de segurança devem ser relatados no IRC da mesma forma que outros bugs. Não temos um fechado
487grupo de pessoas com conhecimentos especiais, o que significa que o método padrão de relatório de segurança é
488transparência completa.
489
490Consulte: [security_specification.md](https://github.com/cjdelisle/cjdns/blob/master/doc/security_specification.md) para ver se um possível problema de segurança é realmente um problema de segurança.
491
492Naquela época do ano novamente ... Hora de alguns projetos de código aberto!
493[![Hacktoberfest](https://img.shields.io/badge/Open%20Source-Hacktoberfest-orange.svg)](https://hacktoberfest.digitalocean.com/)
494
495[IRC Web]: http://chat.efnet.org/irc.cgi?chan=%23cjdns
496[Hyperboria]: https://hyperboria.net
497[/r/darknetplan]: https://www.reddit.com/r/darknetplan
498[#cjdns no Twitter]: https://twitter.com/hashtag/cjdns
499[Hyperboria Map]: https://www.fc00.org/
500[Buildbots]: https://buildbot.meshwith.me/cjdns/waterfall
501
502[Cjdns na Wikipedia]: https://en.wikipedia.org/wiki/Cjdns
503[Distributed Hash Table]: https://en.wikipedia.org/wiki/Distributed_hash_table
504[Beyond Pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
505[Kademlia]: https://en.wikipedia.org/wiki/Kademlia
506
507[Tor]: https://www.torproject.org
508[I2P]: https://geti2p.net/en/
509[Freenet]: https://freenetproject.org
510

README_RU.md

1# cjdns
2
3[English](README.md)
4[Hrvatski](README_HR.md)
5[Svenska](README_SV.md)
6[Ελληνικά](README_GR.md)
7[Deutsch](README_DE.md)
8[繁體中文](README_ZHT.md)
9[Español](README_ES.md)
10[Français](README_FR.md)
11
12Безопасная, зашифрованная сеть для обычных людей.
13
14Cjdns — это зашифрованная IPv6 сеть, в которой используются публичные ключи шифрования для присвоения публичного адреса и распределённой таблицы маршрутизации (DHT). Это позволяет создавать сети с очень простой настройкой, которые будут защищены от потенциальных проблем ныне существующих IPv4 и IPv6 сетей.
15
16[![Build Status](https://api.travis-ci.org/cjdelisle/cjdns.png?branch=master)](https://travis-ci.org/cjdelisle/cjdns)
17[![For next commit](https://tip4commit.com/projects/941.svg)](https://tip4commit.com/github/cjdelisle/cjdns)
18
19## Рекомендательные письма
20
21    23:26 <@jercos> well, cjdns is now officially more reliable than the open
22                    internet for getting to my cheaper VPSes :|
23
24    12:52 < mariner> so i don't know if it's been done before, and i assume it's
25                     obvious, but I think it's neat. Currently on hype from an
26                     airplane
27
28
29## Как работает маршрутизация?
30
31Чтобы понять как работает маршрутизация в cjdns, очень важно понимать, как она работает в существующем интернете. На каждой развилке маршрутизатор читает адрес назначения в пакете и решает, куда его направить.
32
33В cjdns сети на каждом пакете, который идет на локальный (программный) маршрутизатор, отмечается наилучший маршрут для него. Лучший маршрут — это самый близкий (физически) к вам роутер, имеющий адрес, близкий по значению к адресу назначения.
34
35Следующий роутер в цепочке также читает данное поле и отправляет пакет в нужном направлении. Кроме того, роутеры постоянно взаимодействуют друг с другом, обмениваясь информацией по маршрутам с помощью Kademlia DHT.
36
37
38## А что насчёт DNS?
39
40DNS — это сложная система, которую трудно реализовать без участия какого-либо центрального сервера.
41
42Сообщество cjdns ещё не решило, какой вектор развития примет разработка DNS в этой сети; если у вас есть идеи — то, мы вас ждём в IRC.
43
44
45## Почему проект называется cjdns?
46
47Cjdns — это совмещение двух слов cjd и DNS, но проект поменял направление своего развития практически в начале, и у него всё еще нет замены DNS, но имя осталось. Можете придумать свою расшифровку названия, если хотите.
48
49
50Спасибо за ваше время и интерес,
51Caleb James DeLisle  ==  cjdelisle  ==  cjd
52
53## Community
54
55* irc://irc.efnet.org/#cjdns_ru ([web client][IRC Web])
56* [Hyperboria][]
57* [/r/darknetplan][]
58* [#cjdns on Twitter][]
59
60
61## Documentation
62
63* [Project Goals](doc/projectGoals_ru.md)(RU)
64* [Cjdns Whitepaper](doc/Whitepaper.md)
65* [Cjdns on Wikipedia][]
66
67Advanced configuration:
68
69* [Setup a cjdns NAT gateway for your LAN](doc/nat-gateway.md)
70* [Install cjdns on OpenIndiana](doc/open-indiana.md)
71
72### License
73
74[Available here](LICENSE)
75
76Thank you for your time and interest,
77
78The cjdns developers.
79
80
81--------------------------------------------------------------------------------
82
83
84# Как установить cjdns
85
86Эти инструкции предназначены для дистрибутива Debian и аналогичных (Ubuntu, Mint).
87
88## 0. Устанавливаем утилиты компиляции.
89
90Установка  [Node.js](https://nodejs.org/) желательна, но не
91обязательна. Если Node.js не найден в процессе установки или его
92версия слишком старая — он будет загружен автоматически при установке.
93
94#### Дистрибутивы основанные на Debian:
95
96    sudo apt-get install nodejs git build-essential python2.7
97
98#### Дистрибутивы основанные на Fedora 22+:
99
100    sudo dnf install nodejs git
101    sudo dnf install @development-tools
102
103#### Дистрибутивы основанные на RHEL (добавляет репозиторий EPEL):
104
105    sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
106    sudo yum install nodejs git
107    sudo yum install @development-tools
108
109#### Сборка из пакета:
110
111    sudo yum localinstall https://kojipkgs.fedoraproject.org//packages/cjdns/17.4/4.el6/src/cjdns-17.4-4.el6.src.rpm
112
113Если вы используете ноутбук и вводите его в спящий режим, то cjdroute понадобится
114несколько минут, чтобы приготовить кофе и понять, что произошло. Вы можете значительно
115ускорить это следующим способом:
116
117    systemctl enable cjdns-resume
118
119Сервис возобновления перезапускает cjdns, если система выходит из спячки.
120
121#### Gentoo
122
123    emerge --ask nodejs sys-devel/gcc dev-lang/python:3.4 dev-vcs/git
124
125#### macOS:
126
127Установка с [Homebrew](https://brew.sh/):
128
129    brew install cjdns
130
131Установка с [MacPorts](https://www.macports.org/):
132
133    sudo port install cjdns
134
135#### OpenBSD:
136
137    pkg_add git node gcc gmake bash
138
139Выберете версию gcc-4.8.1p2 или новее.
140
141#### FreeBSD:
142
143Всё что вам необходимо, доступно в коллекции портов FreeBSD.
144
145    pkg install gmake node
146
147#### Arch:
148
149Вы можете установить cjdns выполнив следующее
150    pacman -S cjdns
151
152Если вы хотите скомпилировать самостоятельно, то всё что вам необходимо может быть установлено следующей командой
153
154    pacman -S nodejs git base-devel
155
156Как альтернативный вариант, вы можете установить через AUR из пакета `cjdns-git`.
157
158После установки файл конфигурации находится тут `/etc/cjdroute.conf`.
159Для запуска сервиса `cjdns.service`, выполните:
160
161    systemctl start cjdns
162
163Для остановки:
164
165    systemctl stop cjdns
166
167#### Gentoo:
168
169cjdns еще не находится в главном репозитории Gentoo, поэтому вам придется использовать наложение.
170Самый простой способ - это использовать Layman, но вы можете сделать это и вручную.
171
172##### Layman:
173
174Во-первых, вам нужно установить layman.
175
176    emerge layman
177
178Если layman установлен правильно, то вы можете добавить наложение
179
180    layman -f
181    layman -a weuxel
182
183Для будущего обновления использования наложения
184
185    layman -S
186
187Теперь вы можете установить cjdns
188
189    emerge cjdns
190
191##### Ручками:
192
193Вам придется клонировать репозиторий наложения
194
195    cd /opt
196    git clone https://github.com/Weuxel/portage-weuxel.git
197
198Теперь скажите portage использовать этот репозиторий
199
200    cd /etc/portage/repos.conf/
201
202Создайте файл `portage-weuxel.conf` с текстом:
203
204    [weuxel]
205    location = /opt/portage-weuxel
206    masters = gentoo
207    auto-sync = yes
208
209Теперь синхронизируйте
210
211    emerge --sync
212
213И установите cjdns
214
215    emerge cjdns
216
217#### Автоматическое обнаружение сбоев и перезагрузка.
218
219Скопируйте скрипт инициализации openrc из `contrib/openrc` в `/etc/init.d/`, и модифицируйте параметры `CONFFILE` и `command` в соответствии с вашими требованиями.
220
221Затем запустите выполнив:
222
223    /etc/init.d/cjdns start
224
225Настройте систему init для автоматического запуска
226
227    rc-update add cjdns default
228
229Скопируйте скрипт service_restart `contrib/gentoo/service_restart.sh` в любой удобный каталог в
230вашей системе, и измените адрес электронной почты. Если вы не хотите получать уведомления, то закомментируйте всю строку.
231Теперь добавьте запись в crontab, наподобие этой
232
233    # Restart crashed Services
234    * * * * *       root	/path/to/script/service_restart.sh
235
236#### Solus:
237
238Зависимости:
239
240    sudo eopkg install nodejs git build-essential system.devel python gcc binutils kernal-headers xorg-server-devel
241
242Затем следуйте шагам ниже.
243
244## 1. Скачиваем cjdns из GitHub.
245
246Склонируйте репозиторий из GitHub:
247
248    git clone https://github.com/cjdelisle/cjdns.git cjdns
249    cd cjdns
250
251## 2. Компилируем.
252
253    ./do
254
255Дождитесь сообщения `Build completed successfully, type ./cjdroute to begin setup.`, и как только оно появится — действуйте дальше:
256
257--------------------------------------------------------------------------------
258
259
260# Установка
261
262Запустите cjdroute без параметров для отображения информации и доступных опций:
263
264    ./cjdroute
265
266## 0: Убедитесь, что у вас всё установлено корректно.
267
268    LANG=C cat /dev/net/tun
269
270Если ответ: `cat: /dev/net/tun: File descriptor in bad state`,то всё отлично!
271
272Если ответ: `cat: /dev/net/tun: No such file or directory`,то просто создайте его:
273
274    sudo mkdir /dev/net ; sudo mknod /dev/net/tun c 10 200 && sudo chmod 0666 /dev/net/tun
275
276Затем снова `cat /dev/net/tun`.
277
278Если ответ: `cat: /dev/net/tun: Permission denied`, вы скорее всего используете виртуальный сервер (VPS) на основе технологии виртуализации OpenVZ. Попросите своего провайдера услуг включить TUN/TAP устройство, это стандартный протокол, ваш провайдер должен быть в курсе.
279
280
281## 1: Генерируем новый файл с настройками.
282
283    ./cjdroute --genconf >> cjdroute.conf
284
285## 2: Найдите пира.
286
287Для доступа в сеть вам потребуется человек который уже в сети.
288
289Найти людей, которые готовы подключить вас, вы можете найти в IRC канале, либо можете использовать данные тестового пира http://hype.rusblock.com/Public_peers.html
290
291### Англоязычный канал:
292
293  * irc://irc.EFNet.org/#cjdns
294  * http://chat.efnet.org:9090/?channels=%23cjdns&Login=Login
295
296### Русскоязычный канал:
297
298  * irc://irc.EFNet.org/#cjdns-ru
299  * http://chat.efnet.org:9090/?channels=%23cjdns-ru&Login=Login
300
301## 3: Заполните информацию о найденном пире.
302
303В файле cjdroute.conf вы увидите:
304
305            // Nodes to connect to.
306            "connectTo":
307            {
308                // Add connection credentials here to join the network
309                // Ask somebody who is already connected.
310            }
311
312После добавления данных пира он будет выглядеть как-то так:
313
314            // Nodes to connect to.
315            "connectTo":
316            {
317                "0.1.2.3:45678":
318                {
319                    "login": "user-login",
320                    "password": "thisIsNotARealConnection",
321                    "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile.k"
322                }
323            }
324
325Вы можете добавлять столько данных для подключения к пирам, сколько захотите.
326
327Ваши собственные данные для подключения _к вам_ находятся в секции "authorizedPasswords" в JSON формате. Не редактируйте их — дайте их тем, кто хочет к вам подключится.
328
329Выглядит это так:
330
331        /* These are your connection credentials
332           for people connecting to you with your default password.
333           adding more passwords for different users is advisable
334           so that leaks can be isolated.
335
336            "your.external.ip.goes.here:12345":
337            {
338                "login": "user-login",
339                "password": "thisIsNotARealConnectionEither",
340                "publicKey": "thisIsAlsoJustForAnExampleDoNotUseThisInYourConfFile.k"
341            }
342        */
343
344`your.external.ip.goes.here` нужно заменить на ваш IPv4 адрес, который люди будут использовать для подключения к вам через интернет.
345
346Страница [rfcs/configure.md](rfcs/configure.md) содержит больше информации о подключении и настройке.
347
348## 4: Безопасность — Проверьте открытые порты.
349
350Как только вы подключились к глобальной сети cjdns — вы стали обладателем публичного IPv6 адреса. Убедитесь, что запущенные на вашей машине сервисы недоступны из внешней сети.
351
352Подробнее: [doc/network-services.md](doc/network-services.md)
353
354
355## 5: Запускаем!
356
357    sudo ./cjdroute < cjdroute.conf
358
359Если вы хотите записывать логи в файл, то:
360
361    sudo ./cjdroute < cjdroute.conf > cjdroute.log
362
363Остановка cjdns осуществляется следующим образом:
364
365    sudo killall cjdroute
366
367Если вы испытываете проблемы при использовании `killall cjdroute`. Используйте `pgrep cjdroute` или `top` для определения, запущен ли он.
368
369## 6: Войдите в IRC
370
371Добро пожаловать в сеть, в которой вы настоящий системный администратор.
372По любым вопросам вы можете проконсультироваться в IRC: канал `#cjdns` на сервере `irc.efnet.org` или используйте канал `#cjdns-ru` который на русском языке и на том же сервере.
373
374
375## Заметки
376
377Нормальная установка cjdns подразумевает запуск от имени администратора. Если вы не считаете нужным давать такие привилегии cjdns, то вы можете воспользоваться инструкцией ниже, запустив его не от root.
378
379Никому не передавайте свой файл настроек: именно он гарантирует вашу безопасность в сети и хранит ваш идентификатор. Если у вас его украдут, то ваша безопасность будет скомпрометирована, и злоумышленник сможет представиться вами в сети.
380
381    chmod 400 cjdroute.conf
382    mkdir /etc/cjdns && cp ./cjdroute.conf /etc/cjdns/
383
384
385# Получаем доступ к интерфейсу администратора в cjdns
386
387Когда cjdroute запущен и работает, интерфейс администратора доступен по адресу localhost:11234 (обратите внимание, что это не веб-интерфейс, веб-интерфейс вы можете получить используя nodejs cjdns admin). Настройки порта и пароля для доступа к интерфейсу администратора доступны в файле cjdroute.conf.
388
389Каким образом получить доступ к данному интерфейсу, вы можете прочитать по этим ссылкам: [doc/admin-api.md](doc/admin-api.md).
390
391
392Библиотека для python
393---------------------
394
395Cjdns поставляется с библиотекой для python, которая позволяет получить доступ к admin API. Больше информации вы можете получить здесь: [readme](contrib/python/README.md).
396
397
398Библиотека для perl
399-------------------
400
401Библиотека для perl поддерживается разработчиком Mikey. Инструкции по использованию можно получить тут: [readme](contrib/perl/CJDNS/README).
402
403# Отправка отчёта об ошибках
404
4051. Не отправляйте отчёт в этот репозиторий, вместо этого отправляйте его на https://github.com/hyperboria/bugs/issues
4062. Расскажите об этом кому-нибудь в IRC
4073. Произойдёт что-то из этого:
408 * Кто-то почувствует в себе силы исправить это
409 * Вы почувствуете в себе силы исправить это
410 * Никого не заинтересовала эта ошибка, и она будет забыта на какое-то время, и, может быть, кто-то исправит её позже, либо, в противном случае, ошибка исчезнет во время рефакторинга
411 * В настоящий момент никто не может исправить эту ошибку, но она заслуживает внимания, так как может сильно воспрепятствовать разработке в будущем, и в этом случае ошибка должна быть технически детально описана человеком, хорошо знакомым с кодом. Он отправит запрос в директорию docs/bugs.
412
413## Безопасность
414
415Об ошибках безопасности следует сообщать в IRC так же, как и о других ошибках. У нас нет закрытой группы людей со специальными знаниями, поэтому по умолчанию все отчёты об ошибках безопасности являются полностью открытыми.
416Проверить, является ли потенциальная проблема безопасности действительно проблемой безопасности можно по следующей ссылке: https://github.com/cjdelisle/cjdns/blob/master/doc/security_specification.md
417
418# Продвинутая настройка
419
420* [Запуск cjdns не от root](doc/non-root-user_ru.md)
421* [Настройка ПК как cjdns NAT gateway для вашей домашней сети](doc/nat-gateway.md)
422* [Установка cjdns на OpenIndiana](doc/open-indiana.md)
423
424Снова это время года... Время для проектов с открытым исходным кодом!
425[![Hacktoberfest](https://img.shields.io/badge/Open%20Source-Hacktoberfest-orange.svg)](https://hacktoberfest.digitalocean.com/)
426
427[beyond pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
428[IRC Web]: http://chat.efnet.org/irc.cgi?chan=%23cjdns_ru
429[Hyperboria]: https://hyperboria.net
430[/r/darknetplan]: https://www.reddit.com/r/darknetplan
431[#cjdns on Twitter]: https://twitter.com/hashtag/cjdns
432[Buildbots]: https://buildbot.meshwith.me/cjdns/waterfall
433
434[Cjdns on Wikipedia]: https://ru.wikipedia.org/wiki/Cjdns
435[Distributed Hash Table]: https://ru.wikipedia.org/wiki/Distributed_hash_table
436[Beyond Pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
437[Kademlia]: https://ru.wikipedia.org/wiki/Kademlia
438
439[Tor]: https://www.torproject.org
440[I2P]: https://geti2p.net/en/
441[Freenet]: https://freenetproject.org
442

README_SV.md

1# cjdns
2
3[English](README.md)
4[Русская версия](README_RU.md)
5[Hrvatski](README_HR.md)
6[Ελληνικά](README_GR.md)
7[Deutsch](README_DE.md)
8[繁體中文](README_ZHT.md)
9[Español](README_ES.md)
10[Français](README_FR.md)
11
12#### *Datornätverk - Ett nytt sätt*
13
14Cjdns är ett krypterat IPv6-nätverk. Adresser i nätverket baseras på assymetrisk
15kryptografi och paket dirigeras i nätverket genom att använda en s.k. distribuerad
16hashtabell (DHT, eller Distributed Hash Table på engelska). Genom denna design
17uppnås ett nätverk som knappt kräver någon konfiguration. Vi blir också av med
18många skalnings- och säkerhetsproblem som andra nätverk har.
19
20[![Build Status](https://travis-ci.org/cjdelisle/cjdns.svg?branch=master)](https://travis-ci.org/cjdelisle/cjdns)
21[![tip for next commit](https://tip4commit.com/projects/941.svg)](https://tip4commit.com/github/cjdelisle/cjdns)
22[![irc](https://img.shields.io/badge/irc%20chat-%23cjdns-blue.svg)](https://kiwiirc.com/client/irc.efnet.org/?nick=visitor|?#cjdns)
23
24## Vitsord
25
26    23:26 <@jercos> well, cjdns is now officially more reliable than the open
27                    internet for getting to my cheaper VPSes :|
28
29    12:52 < mariner> so i don't know if it's been done before, and i assume it's
30                     obvious, but I think it's neat. Currently on hype from an
31                     airplane
32
33    00:36 < tester> man sites take so long to load on i2p
34    00:36 < tester> i value speed over anonymity any day
35
36    <DuoNoxSol> it's notably more reliable than the normal internet
37
38    09:46 < Kubuxu> I so love cjdns code base
39
40    <whyrusleeping> my internet is way better now.
41    ​<whyrusleeping> thanks
42    <whyrusleeping> i'm really upset and sad that its better
43    <whyrusleeping> but also quite happy
44
45## Community
46
47* [irc://irc.efnet.org/#cjdns][IRC Web]
48* [Hyperboria][], det största cjdns-nätverket, över 2100 noder i Oktober 2015.
49* [/r/darknetplan][]
50* [#cjdns på Twitter][]
51
52## Dokumentation
53
54* [Projectmål](doc/projectGoals.md)
55* [Cjdns Whitepaper](doc/Whitepaper.md)
56* [Cjdns på Wikipedia][]
57
58Avancerad konfiguration:
59
60* [Sätt upp en cjdns NAT gateway till ditt LAN (EN)](doc/nat-gateway.md)
61* [Installera cjdns på OpenIndiana (EN)](doc/open-indiana.md)
62
63Tack för visat intresse,
64
65- Utvecklarna av Cjdns.
66
67--------------------------------------------------------------------------------
68
69## Hur du installerar cjdns
70
71Följande instruktioner är till för Debian-baserade Linux-distributioner eller för macOS.
72De bör vara tillräckligt informativa för att kunna anpassas till andra distributioner -
73förvänta dig dock inte att de kommer fungera rakt av.
74
75### 0. Installera beroenden
76
77Cjdns byggsystem beror av [Node.js](http://nodejs.org/). Det är att föredra om du
78kan installera node.js på din maskin, men det är inte nödvändigt. Om node.js inte finns
79installerat eller om det är en oacceptabel version kommer node.js att laddas ner och
80installeras i kodträdet.
81
82#### Debian-distibutioner
83
84    sudo apt-get install nodejs git build-essential python2.7
85
86#### Fedora 22+-distributioner
87
88    sudo dnf install install nodejs git
89    sudo dnf install @development-tools
90
91#### RHEL-distributioner
92
93    sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
94    sudo yum install install nodejs git
95    sudo yum install @development-tools
96
97#### macOS:
98
99Installera med [Homebrew](https://brew.sh/):
100
101    brew install cjdns
102
103Installera med [MacPorts](https://www.macports.org/):
104
105    sudo port install cjdns
106
107#### OpenBSD:
108
109OpenBSD är tyvärr inte stabil just nu.
110
111    pkg_add git node gcc gmake bash
112
113Välj gcc version 4.8.1p2 eller senare.
114
115#### FreeBSD:
116
117Allt du behöver finns tillgängligt i FreeBSD' ports.
118
119    pkg install gmake node
120
121### 1. Hämta cjdns från GitHub
122
123Clone'a repositoryt från GitHub och byt till katalogen cjdns:
124
125    git clone https://github.com/cjdelisle/cjdns.git cjdns
126    cd cjdns
127
128### 2. Bygg
129
130    ./do
131
132Vänta tills du ser följande meddelande `Build completed successfully, type ./cjdroute to begin setup.`,
133fortsätt sedan med följande:
134
135--------------------------------------------------------------------------------
136
137## Upplägg
138
139Kör cjdroute utan argument för HJÄLP:
140
141    ./cjdroute
142
143### 0. Kontrollera att du har allting som behövs.
144
145    LANG=C cat /dev/net/tun
146
147Om det står: `cat: /dev/net/tun: File descriptor in bad state` Bra!
148
149Om det står: `cat: /dev/net/tun: No such file or directory`, skapa den med följande kommandon:
150
151    sudo mkdir -p /dev/net &&
152    sudo mknod /dev/net/tun c 10 200 &&
153    sudo chmod 0666 /dev/net/tun
154
155Prova sedan `cat /dev/net/tun` igen.
156
157Om det står: `cat: /dev/net/tun: Permission denied` så använder du troligen en VPS
158baserad på OpenVZ's virtualiseringsplattform. Fråga din leverantör om de kan
159tillåta/öppna upp TUN/TAP - denna terminologi är standard så de bör förstå vad du
160ber dem om. Om du använder macOS kan du ignorera detta steg.
161
162
163### 1. Skapa en ny konfigurationsfil
164
165    ./cjdroute --genconf >> cjdroute.conf
166
167**Skydda din konfigurationsfil!**
168
169En borttappad konfigurationsfil innebär att du tappat bort både ditt lösenord
170och dina uppkopplingar och alla som någonsin varit uppkopplade mot dig,
171kan inte längre göra det. En komprometterad konfigurationsfil innebär att någon
172annan kan agera som dig på nätverket.
173
174För att generera en konfigurationfil med rättigheter där bara du kan läsa
175och skriva till den:
176
177    (umask 077 && ./cjdroute --genconf > cjdroute.conf)
178
179
180### 2. Hitta en vän
181
182För att koppla upp dig mot ett redan existerande nätverk (t ex Hyperboria)
183måste du koppla upp dig till någon som redan tillhör nätverket. Detta är
184nödvändigt av ett antal orsaker:
185
1861. Det hjälper till att förhindra missbruk då det är osannolikt att
187   dåliga människor kommer missbruka ett system de fått tillgång till
188   från en annan människa som de på något sätt har en relation till.
1892. Cjdns är inte tänkt att vara ett overlay-nätverk ovanpå internet,
190   utan tanken är att det ska byta ut det. Varje uppkoppling kommer i sinom
191   tid att bytas ut mot en sladd, en fiberoptisk kabel eller en wifi.
1923. Vid händelse av meningsskiljaktigheter kommer det finnas en "kedja
193   av vänner" som länkar ihop alla involverade så det finns redan en
194   bas för att komma fram till en lösning.
195
196För att hitta en vän, gå med i vår [community](#community). Kolla även in
197[Hyperboria Map][] för att hitta peers nära dig.
198
199
200### 3. Koppla din nod till din väns nod
201
202**För att skapa en utgående uppkoppling**
203
204Leta upp `connectTo`-attributet i din konfigurationsfil:
205
206``` javascript
207// Nodes to connect to.
208"connectTo":
209{
210    // Add connection credentials here to join the network
211    // Ask somebody who is already connected.
212}
213```
214
215En konfigurationsfil med flera utgående vän-noder, kan se ut:
216
217``` javascript
218// Nodes to connect to.
219"connectTo":
220{
221    //friend_1 (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
222    "0.1.2.3:45678":
223    {
224        "login": "k.alexander"
225        "password": "thisIsNotARealConnection_1",
226        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
227    }
228
229    //friend_2 (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
230    "5.1.2.3:5678":
231    {
232        "login": "k.alexander"
233        "password": "thisIsNotARealConnection_2",
234        "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_2.k"
235    }
236}
237```
238
239Du kan lägga till så många uppkopplingar du vill till `connectTo`-attributet.
240
241
242**För att tillåta din vän att göra ingående uppkoppling**
243
244Leta upp `authorizedPasswords`-attributet i din konfigurationsfil:
245
246``` javascript
247"authorizedPasswords":
248[
249    // A unique string which is known to the client and server.
250    {"password": "password001", "login": "default-login"}
251
252    // More passwords should look like this.
253    // {"password": "password002", "login": "my-second-peer"}
254    // {"password": "password003", "login": "my-third-peer}
255    // {"password": "password004", "login": "my-fourth-peer"}
256    ...
257
258    // "your.external.ip.goes.here:45678":{"login": "default-login", "password": "password001","publicKey":thisisauniqueKEY_001.k"}
259
260],
261```
262
263En konfigurationsfil med flera vän-noder uppsatta som ingående kan se ut:
264
265``` javascript
266"authorizedPasswords":
267[
268    // A unique string which is known to the client and server.
269    {"password": "thisisauniquestring_001", "user": "k.alexander"}
270
271    // More passwords should look like this.
272    //William Jevons (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
273    {"password": "thisisauniquestring_002", "user": "William Jevons"}
274    //Marilyn Patel (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
275    {"password": "thisisauniquestring_003", "user": "Marilyn Patel"}
276    // {"password": "thisisauniquestring_004"}
277    ...
278
279    // "your.external.ip.goes.here:45678":{"password": "thisisauniquestring_001","publicKey":thisisauniqueKEY_001.k"}
280],
281```
282
283Du behöver ge William Jevons (som kopplar upp sig mot dig) följande fyra saker:
284
2851. Din externa IPv4-adress
2862. Den port som finns i din konfigurationsfil här:
287
288    `// Bind to this port.
289    "bind": "0.0.0.0:yourportnumberishere",`
290
2913. Deras unika lösenord som du kommenterade ut eller skapade: `"password": "thisisauniquestring_002"`
2924. Din publika nyckel: `"publicKey": "thisisauniqueKEY_001.k"`
293
294Hens loginuppgifter kommer då se ut som följer (med din IPv4-adress och port):
295
296```javascript
297"1.2.3.4:56789": {
298    "login": "William Jevons",
299    "password": "thisisauniquestring_002",
300    "publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
301}
302```
303
304Var vänlig notera att både du och din vän kan *påbörja* en uppkoppling
305outbound (från DIG --> VÄN) eller inbound (från VÄN --> DIG) men trafiken
306flödar i båda riktningarna så fort ni har kopplat upp er mot varandra.
307
308Se [doc/configure.md](doc/configure.md) för mer information om konfigurering,
309inkluderat hur du kan koppla upp dig mot andra cjdns noder över ethernet och wifi.
310
311
312### 4. Säkra ditt system - kontrollera lyssnande tjänster
313
314När din nod är uppe och kör är den en IPv6 host. Operativsystemet kan
315automatiskt omkonfigurera nätverksservices att använda den nya adressen.
316Om detta *inte* är vad du ville borde du kontrollera att du inte erbjuder
317fler tjänster än vad du avsåg. ;)
318
319Se [doc/network-services.md](doc/network-services.md) för instruktioner.
320
321
322### 5. Starta din nod!
323
324    sudo ./cjdroute < cjdroute.conf
325
326Om du vill logga till fil:
327
328    sudo ./cjdroute < cjdroute.conf > cjdroute.log
329
330För att avsluta cjdns:
331
332    sudo killall cjdroute
333
334`sudo killall cjdns` är också användbart om du får problem. Använd
335`pgrep cjdroute` eller `top` för att kolla om cjdroute kör eller ej.
336
337*OBS!*
338
339Detta kör cjdns som användaren root så det kan konfigurera
340ditt system utan att behöva bry sig om rättigheter. För att starta cjdns utan
341root-rättigheter, se [doc/non-root-user.md](doc/non-root-user.md).
342
343
344### 6. Logga in på IRC
345
346Välkommen till nätverket! Du är nu en nätverksadministrator och med det
347kommer vissa skyldigheter, som bl.a. innebär att du bör vara tillgänglig
348i händelse av att någonting inte stämmer med din utrustning. Enklast är
349att logga in på [IRC](#community) så att andra kan nå dig.
350
351
352## Admingränssnittet
353
354När cjdroute är uppe och kör så finns det ett admingränssnitt tillgängligt
355på `udp://localhost:11234` (detta kan ändras i `cjdroute.conf`).
356Se [doc/admin-api.md](doc/admin-api.md) för mer information om admingränssnittet.
357
358Det finns flera olika verktyg i `contrib/` som kan interagera med det, bl.a.:
359
360* **python**; se [contrib/python/README.md](contrib/python/README.md).
361* **perl**, maintained by Mikey; se [contrib/perl/CJDNS/README](contrib/perl/CJDNS/README).
362
363[IRC Web]: http://chat.efnet.org/irc.cgi?chan=%23cjdns
364[Hyperboria]: https://hyperboria.net
365[/r/darknetplan]: https://www.reddit.com/r/darknetplan
366[#cjdns på Twitter]: https://twitter.com/hashtag/cjdns
367[Hyperboria Map]: https://www.fc00.org/
368[Buildbots]: https://buildbot.meshwith.me/cjdns/waterfall
369
370[Cjdns på Wikipedia]: https://en.wikipedia.org/wiki/Cjdns
371[Distributed Hash Table]: https://en.wikipedia.org/wiki/Distributed_hash_table
372[Beyond Pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
373[Kademlia]: https://en.wikipedia.org/wiki/Kademlia
374
375[Tor]: https://www.torproject.org
376[I2P]: https://geti2p.net/en/
377[Freenet]: https://freenetproject.org
378

README_ZHT.md

1
2# cjdns
3
4[English](README.md)
5[Русская версия](README_RU.md)
6[Hrvatski](README_HR.md)
7[Svenska](README_SV.md)
8[Ελληνικά](README_GR.md)
9[Deutsch](README_DE.md)
10[Español](README_ES.md)
11[Français](README_FR.md)
12
13#### *重朔整個網路*
14
15Cjdns 利用「加密的IPv6」及「公鑰加密」來分配網路地址並利用「Distributed Hash Table」逕行路由。它能提供近似「零配置網路(Zero-Configuration Networking)」,並且能防範在現有網路中存在的很多和安全、可擴展性相關的問題。
16
17[![Build Status](https://travis-ci.org/cjdelisle/cjdns.svg?branch=master)](https://travis-ci.org/cjdelisle/cjdns)
18[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/387/badge)](https://bestpractices.coreinfrastructure.org/projects/387)
19[![tip for next commit](https://tip4commit.com/projects/941.svg)](https://tip4commit.com/github/cjdelisle/cjdns)
20[![irc](https://img.shields.io/badge/irc%20chat-%23cjdns-blue.svg)](https://kiwiirc.com/client/irc.efnet.org/?nick=visitor|?#cjdns)
21
22## 評價
23
24    23:26 <@jercos> well, cjdns is now officially more reliable than the open
25                    internet for getting to my cheaper VPSes :|
26
27    12:52 < mariner> so i don't know if it's been done before, and i assume it's
28                     obvious, but I think it's neat. Currently on hype from an
29                     airplane
30
31    00:36 < tester> man sites take so long to load on i2p
32    00:36 < tester> i value speed over anonymity any day
33
34    <DuoNoxSol> it's notably more reliable than the normal internet
35
36    09:46 < Kubuxu> I so love cjdns code base
37
38    <whyrusleeping> my internet is way better now.
39    <whyrusleeping> thanks
40    <whyrusleeping> i'm really upset and sad that its better
41    <whyrusleeping> but also quite happy
42
43    21:01 <@grewalsat> this is amazing. with my workpalce speedtest.net results I get around 6+mb speed, and with my cjdns-gate as vpn network I'm getting like 11-15mb download speed in speedtest.net
44    21:01 <@grewalsat> :P
45    21:01 <@grewalsat> plus, access anything! :D
46
47    <davidar> Yeah, I have to admit I sort of avoided hypeirc because of stuff like that
48
49## 社群
50
51* [irc://irc.efnet.org/#cjdns][IRC Web]
52* [Hyperboria][] 目前最大的 cjdns 網路,至2015年10月止有2100個節點。
53* [Project Meshnet][]
54* [/r/darknetplan][]
55* [#cjdns on Twitter][]
56
57
58## 相關文件
59
60* [Project Goals](doc/projectGoals.md)
61* [Cjdns Whitepaper](doc/Whitepaper.md)
62* [Cjdns on Wikipedia][]
63
64進階配置(英文):
65
66* [Setup a cjdns NAT gateway for your LAN](doc/nat-gateway.md)
67* [Install cjdns on OpenIndiana](doc/open-indiana.md)
68
69感謝你的時間和關注
70
71cjdns 開發人員 敬上
72
73--------------------------------------------------------------------------------
74
75## 如何安裝 cjdns
76
77這些說明雖然是在基於 Debian 的 Linux 發行版系統與 macOS 系統上的,但是已經為在其它發行版作業系統安裝提供了足夠多的信息,只是不要期望可以一字不差的執行指令。
78
79### 0. 安裝相關程式
80
81在兩種作業系統上安裝 [Node.js](http://nodejs.org/),非必要但強烈建議。
82如無 Node.js 或版本錯誤,安裝程式會自動下載安裝至源代碼資料夾中。
83
84#### Debian 系統:
85
86    sudo apt-get install nodejs git build-essential python2.7
87
88#### Fedora 22+ 系統:
89
90    sudo dnf install install nodejs git
91    sudo dnf install @development-tools
92
93#### RHEL 系統 (會新增 EPEL 的 Repository):
94
95    sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
96    sudo yum install install nodejs git
97    sudo yum install @development-tools
98
99#### macOS 系統:
100
101利用 [Homebrew](https://brew.sh/) 安裝:
102
103    brew install cjdns
104
105利用 [MacPorts](https://www.macports.org/) 安裝:
106
107    sudo port install cjdns
108
109#### OpenBSD 系統:
110
111非常遺憾目前 OpenBSD 還在實驗階段。
112
113    pkg_add git node gcc gmake bash
114
115選擇 gcc-4.8.1p2 之後版本。
116
117#### FreeBSD 系統:
118
119所有所需相關程式已預先在 FreeBSD' ports 編譯完成。
120
121    pkg install gmake node
122
123#### Arch 系統:
124
125你可以用以下指令安裝 cjdns
126
127    pacman -S cjdns
128
129如果你需要從原始碼重新編譯,所有需要的程式可以用以下方式安裝
130
131    pacman -S nodejs git base-devel
132
133另外,你可能會想利用 AUR 安裝包裝 `cjdns-git`。
134安裝完成後,配置檔在 `/etc/cjdroute.conf`。
135用以下指令啟動 `cjdns.service`:
136
137        systemctl start cjdns
138
139停止指令:
140
141       systemctl stop cjdns
142
143### 1. 從 GitHub 取得 cjdns
144
145從 Github 複製 Repository 並切換至下載檔案資料夾:
146
147    git clone https://github.com/cjdelisle/cjdns.git cjdns
148    cd cjdns
149
150### 2. 初始化
151
152    ./do
153
154當你看見 `Build completed successfully, type ./cjdroute to begin setup.`,
155再繼續以下步驟:
156
157--------------------------------------------------------------------------------
158
159## 安裝
160
161不帶參數執行 cjdroute 時會顯示幫助信息:
162
163    ./cjdroute
164
165### 0. 確定你已經準備好必要的資料。
166
167    LANG=C cat /dev/net/tun
168
169如果顯示: `cat: /dev/net/tun: File descriptor in bad state` 表示安裝成功!
170
171如果顯示: `cat: /dev/net/tun: No such file or directory`,利用以下指令建立檔案:
172
173    sudo mkdir -p /dev/net &&
174    sudo mknod /dev/net/tun c 10 200 &&
175    sudo chmod 0666 /dev/net/tun
176
177然後再次執行 `cat /dev/net/tun` 。
178
179如果顯示: `cat: /dev/net/tun: Permission denied` 你大概在使用一個基於 OpenVZ Virtualization Platform 的 VPS(虛擬專用伺服器)。
180向你的服務供應商要求啟用 TUN/TAP 設備 - 這是標準協議,所以他們應當明白你的意思。
181
182如果你用 macOS 請忽略這個步驟。
183
184
185### 1. 產生一個新的配置檔(請先閱讀下方「保護好你的配置檔」部份)
186
187    ./cjdroute --genconf >> cjdroute.conf
188
189**保護好你的配置檔!**
190
191失去配置檔代表你丟失密碼以及已建立的連結,其他以你做為接入點的節點也會無法與你連線。
192配置檔被侵入代表他人可以在網路上假裝是你。
193
194產生一個僅有你的使用者才有權限讀寫的配置檔:
195
196    (umask 077 && ./cjdroute --genconf > cjdroute.conf)
197
198
199### 2. 找一個朋友
200
201為了加入一個已經存在的網路(例如:Hyperboria),你需要與一個已經在該網路中的節點連接。
202原因如下:
203
2041. 因為有心人士較不會在「他人好心邀請下加入」後濫用系統。
2052. 此程式目的並非要在現有網路之上並行,而是取代現有網路。各個連線會在未來被實體線路或無線網路取代。
2063. 如果有任何異議,會有「朋友的朋友」將兩方連在一起,這使和解更容易達成
207
208要找朋友,請發聲並加入我們的 [社群](#社群)。另外,來[Hyperboria Map][] 找尋鄰近的節點。
209
210
211### 3. 連接你與朋友的節點
212
213**由你啟始連線(向外)**
214
215在你的配置檔,你可以找到:
216
217``` javascript
218// Nodes to connect to.
219"connectTo":
220{
221    // Add connection credentials here to join the network
222    // Ask somebody who is already connected.
223}
224```
225
226一個包含許多朋友節點(向外)的配置檔類似這樣:
227
228``` javascript
229// Nodes to connect to.
230"connectTo":
231{
232    //朋友_1 (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
233    "0.1.2.3:45678":
234    {
235        "login": "k.alexander"
236        "password": "這不是真的連線_1",
237        "publicKey": "這只是範例請不要真的在配置檔中用這串字_1.k"
238    }
239
240    //朋友_2 (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
241    "5.1.2.3:5678":
242    {
243        "login": "k.alexander"
244        "password": "這不是真的連線_2",
245        "publicKey": "這只是範例請不要真的在配置檔中用這串字_2.k"
246    }
247}
248```
249
250你可以依照 JSON 語法在 `connectTo` 屬性中加入無限個連線。
251
252
253**讓你的朋友啟始連線(向內)**
254
255在配置檔中,你可以找到:
256
257``` javascript
258"authorizedPasswords":
259[
260    // A unique string which is known to the client and server.
261    {"password": "獨一無二的密碼(請不要輸入中文)_001"}
262
263    // More passwords should look like this.
264    // {"password": "獨一無二的密碼(請不要輸入中文)_002"}
265    // {"password": "獨一無二的密碼(請不要輸入中文)_003"}
266    // {"password": "獨一無二的密碼(請不要輸入中文)_004"}
267    ...
268
269    // "你的.對外.IP.位址:45678":{"password": "獨一無二的密碼(請不要輸入中文)_001","publicKey":獨一無二的金鑰_001.k"}
270
271],
272```
273
274一個有許多朋友節點的配置檔,向內連線應該長這樣:
275``` javascript
276"authorizedPasswords":
277[
278    // A unique string which is known to the client and server. 在此輸入讓他人對你連線的密碼
279    {"password": "獨一無二的密碼(請不要輸入中文)_001", "user": "k.alexander"}
280
281    // More passwords should look like this. 其他請依此格式類推
282    //William Jevons (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
283    {"password": "獨一無二的密碼(請不要輸入中文)_002", "user": "William Jevons"}
284    //Marilyn Patel (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
285    {"password": "獨一無二的密碼(請不要輸入中文)_003", "user": "Marilyn Patel"}
286    // {"password": "獨一無二的密碼(請不要輸入中文)_004"}
287    ...
288
289    // "你的.對外.IP.位址:45678":{"password": "獨一無二的密碼(請不要輸入中文)_001","publicKey":獨一無二的金鑰_001.k"}
290],
291```
292
293
294你必須給 William Jevons (對你而言是向內連線) 下方四項資訊:
295
2961. 你的外部 IPv4
2972. 你可以在配置檔找到的埠號:
298
299    `// Bind to this port.
300    "bind": "0.0.0.0:你的埠號在這裡",`
301
3023. 為你朋友設定或取消註解的唯一密碼: `"password": "獨一無二的密碼(請不要輸入中文)_002"`
3034. 你的公鑰: `"publicKey": "獨一無二的金鑰_001.k"`
3045. 他的登入名稱: "William Jevons"
305
306他的配置檔中會看起來像這樣(包含你的 IPv4 和 埠號):
307
308```javascript
309"1.2.3.4:56789": {
310    "login": "William Jevons",
311    "password": "獨一無二的密碼(請不要輸入中文)_002",
312    "publicKey": "這只是範例請不要真的在配置檔中用這串字_1.k"
313}
314```
315
316請記得你與你朋友可以啟始「向外(你 --> 朋友)」或「向內(朋友 --> 你)」連線,但當通道建立後兩方皆可使用。
317
318更進階的配置請閱讀 [doc/configure.md](doc/configure.md),包括如何透過乙太網路與Wifi連線。
319
320### 4. 保護你的系統 - 檢查正在使用網路的程式
321
322當你的節點開始運行,你的電腦便成為一個新的 IPv6 伺服。你的作業系統可能會自動重新配置網路程式來使用這個新的網路位址。
323如果你並不希望這麼做,你應確認你並沒有提供一些你不打算公開的服務。 ;)
324
325更多資料請查閱 [doc/network-services.md](doc/network-services.md)。
326
327
328### 5. 開始使用!
329
330    sudo ./cjdroute < cjdroute.conf
331
332如果你希望將紀錄存成一個檔案:
333
334    sudo ./cjdroute < cjdroute.conf > cjdroute.log
335
336停止 cjdns:
337
338    sudo killall cjdroute
339
340如果出現問題用 `killall cjdroute` 指令來結束一切。
341用 `pgrep cjdroute` 或 `top` 指令來確認是否正在執行。
342
343**注意!**
344
345這將會讓 cjdns 以 Root 權限執行並設定你的系統,避免要求權限等提示。 請參閱[doc/non-root-user.md](doc/non-root-user.md) 來以非 Root 權限執行。
346
347
348### 6. 加入 IRC
349
350歡迎來到這個網絡! 你現在是一個網管了。 這代表你有些成一個網管的責任,包括當你的設備出狀況時必須能回應。你應當在 [IRC](#community) 保持在線,這樣其他人才能與你聯繫。
351
352
353## 管理者界面
354
355當 cjdroute 正在執行時,你可以在 `udp://localhost:11234` 看到管理者界面 (這可以在 `cjdroute.conf` 更改). 這個檔案 [doc/admin-api.md](doc/admin-api.md) 有更多有關管理者界面的資訊。一些在 `contrib/` 的工具可以配合使用。
356
357你可以透過以下方式使用 Admin API :
358
359* **Python library**; 按 [這裡](contrib/python/README.md).
360* **Perl library**, 由 Mikey 維護; 按 [這裡](contrib/perl/CJDNS/README).
361
362
363## 回報問題
3641. 請不要在此回報問題,有問題請到 https://github.com/hyperboria/bugs/issues 回報
3652. 在 IRC 上講
3663. 以下是可能發生的
367 * 有人主動來解決問題
368 * 你主動來解決問題
369 * 根本沒人理這問題然後被遺忘,也許某天有人會遇到同樣的問題然後在某次的重構中解決
370 * 目前無解但是應該被記住,因為這會影響未來程式開發,這種情況必須被對程式碼有深入理解的人進行解釋。他會提出對 Bug 或文件進行修改
371
372### 安全
373安全問題應該同樣與其他 Bug 一樣在 IRC 回報。 我們並沒有一個擁有特殊技術的封閉團隊,所以預設的安全問題回報是完全公開。
374請參閱: https://github.com/cjdelisle/cjdns/blob/master/doc/security_specification.md 來確認可能安全問題是真的安全問題。
375
376
377[IRC Web]: http://chat.efnet.org/irc.cgi?chan=%23cjdns
378[Hyperboria]: http://hyperboria.net
379[Project Meshnet]: https://projectmeshnet.org
380[/r/darknetplan]: http://www.reddit.com/r/darknetplan
381[#cjdns on Twitter]: https://twitter.com/hashtag/cjdns
382[Hyperboria Map]: http://www.fc00.org/
383[Buildbots]: https://buildbot.meshwith.me/cjdns/waterfall
384
385[Cjdns on Wikipedia]: https://en.wikipedia.org/wiki/Cjdns
386[Distributed Hash Table]: https://en.wikipedia.org/wiki/Distributed_hash_table
387[Beyond Pain]: https://lists.torproject.org/pipermail/tor-dev/2012-October/004063.html
388[Kademlia]: https://en.wikipedia.org/wiki/Kademlia
389
390[Tor]: https://www.torproject.org
391[I2P]: http://www.i2p2.de
392[Freenet]: https://freenetproject.org
393