Bu çeviri makine öğrenimi kullanılarak oluşturulmuştur ve %100 doğru olmayabilir. İngilizce versiyonu görüntüle

BOB - Temel Açık Köprü

Hedef yönetimi için kullanımdan kaldırılmış API

Uyarı - Kullanımdan Kaldırıldı

Yeni uygulamalar tarafından kullanılmak için değil. Burada belirtildiği gibi BOB, yalnızca DSA-SHA1 imza türünü destekler. BOB, yeni imza türlerini veya diğer gelişmiş özellikleri destekleyecek şekilde genişletilmeyecektir. Yeni uygulamalar SAMv3 kullanmalıdır.

BOB desteği, 1.7.0 sürümü (2022-02) itibarıyla Java I2P yeni kurulumlarından kaldırıldı. 1.6.1 veya daha önceki sürüm olarak kurulmuş Java I2P’de güncellemelerden sonra bile çalışmaya devam edecektir, ancak desteklenmemektedir ve herhangi bir zamanda bozulabilir. BOB, 2025-05 itibarıyla i2pd tarafından hâlâ desteklenmektedir, ancak yukarıdaki nedenlerle uygulamalar yine de SAMv3’e geçiş yapmalıdır. Burada belgelenen API’ye i2pd tarafından desteklenen herhangi bir uzantı için i2pd belgelerine bakınız.

Bu noktada, BOB’tan gelen iyi fikirlerin çoğu SAMv3’e dahil edilmiştir ve SAMv3 daha fazla özellik ve gerçek dünya kullanımına sahiptir. BOB bazı kurulumlarda hala çalışabilir (yukarıya bakınız), ancak SAMv3’te bulunan gelişmiş özellikleri kazanmamaktadır ve i2pd dışında temelde desteklenmemektedir.

BOB API için Dil Kütüphaneleri

Genel Bakış

KEYS = anahtar çifti public+private, bunlar BASE64 formatındadır

KEY = açık anahtar, ayrıca BASE64

ERROR adından da anlaşılacağı gibi "ERROR "+DESCRIPTION+"\n" mesajını döndürür, burada DESCRIPTION neyin yanlış gittiğini belirtir.

OK "OK" döndürür ve eğer veri döndürülecekse, aynı satırda yer alır. OK komutun tamamlandığı anlamına gelir.

DATA satırları talep ettiğiniz bilgileri içerir. Her istek için birden fazla DATA satırı olabilir.

NOT: Help komutu, kurallara istisna olan TEK komuttur… aslında hiçbir şey döndürmeyebilir! Bu kasıtlıdır, çünkü help bir İNSAN komutu olup UYGULAMA komutu değildir.

Bağlantı ve Sürüm

Tüm BOB durum çıktısı satırlar halindedir. Satırlar sisteme bağlı olarak \n veya \r\n ile sonlandırılabilir. Bağlantı kurulduğunda, BOB iki satır çıktı verir:

BOB version
OK

Mevcut sürüm: 00.00.10

Önceki sürümlerin büyük harf onaltılık rakamlar kullandığını ve I2P sürüm standartlarına uymadığını unutmayın. Sonraki sürümlerin yalnızca 0-9 rakamlarını kullanması önerilir.

Sürüm Geçmişi

VersionI2P Router VersionChanges
00.00.100.9.8current version
00.00.00 - 00.00.0F development versions
## Komutlar

LÜTFEN DİKKAT: Komutlarla ilgili GÜNCEL ayrıntılar için LÜTFEN yerleşik yardım komutunu kullanın. Sadece localhost 2827’ye telnet bağlantısı yapın ve help yazın, böylece her komut için tam dokümantasyon alabilirsiniz.

Komutlar hiçbir zaman eski hale getirilmez veya değiştirilmez, ancak zaman zaman yeni komutlar eklenir.

COMMAND     OPERAND                             RETURNS
help        (optional command to get help on)   NOTHING or OK and description of the command
clear                                           ERROR or OK
getdest                                         ERROR or OK and KEY
getkeys                                         ERROR or OK and KEYS
getnick     tunnelname                          ERROR or OK
inhost      hostname or IP address              ERROR or OK
inport      port number                         ERROR or OK
list                                            ERROR or DATA lines and final OK
lookup      hostname                            ERROR or OK and KEY
newkeys                                         ERROR or OK and KEY
option      key1=value1 key2=value2...          ERROR or OK
outhost     hostname or IP address              ERROR or OK
outport     port number                         ERROR or OK
quiet                                           ERROR or OK
quit                                            OK and terminates the command connection
setkeys     KEYS                                ERROR or OK and KEY
setnick     tunnel nickname                     ERROR or OK
show                                            ERROR or OK and information
showprops                                       ERROR or OK and information
start                                           ERROR or OK
status      tunnel nickname                     ERROR or OK and information
stop                                            ERROR or OK
verify      KEY                                 ERROR or OK
visit                                           OK, and dumps BOB's threads to the wrapper.log
zap                                             nothing, quits BOB

Kurulum tamamlandığında, tüm TCP soketleri gerektiğinde bloklanabilir ve bloklanacaktır, ve komut kanalına/kanalından ek mesajlara gerek kalmayacaktır. Bu, router’ın akışı tempolu bir şekilde yönetmesine olanak tanır ve SAM’in yaptığı gibi OOM ile patlamaz - SAM bir soketten birçok akışı içeri veya dışarı sokmaya çalışırken boğulur – bu, çok sayıda bağlantınız olduğunda ölçeklenemez!

Bu özel arayüzün güzel yanı, onunla etkileşim kurmak için herhangi bir şey yazmanın SAM’den çok çok daha kolay olmasıdır. Kurulumdan sonra yapılacak başka bir işlem yoktur. Konfigürasyonu o kadar basittir ki, nc (netcat) gibi çok basit araçlar bile bazı uygulamalara yönlendirme yapmak için kullanılabilir. Buradaki değer, bir uygulama için açılış ve kapanış zamanlarını programlayabilmeniz ve bunu yapmak için uygulamayı değiştirmeniz veya hatta o uygulamayı durdurmanız gerekmemesidir. Bunun yerine, hedefi tam anlamıyla “fişten çekebilir” ve tekrar “takabilirsiniz”. Bridge’i açarken aynı IP/port adresleri ve hedef anahtarları kullanıldığı sürece, normal TCP uygulaması umursamayacak ve fark etmeyecektir. Basitçe aldatılacaktır – hedefler erişilebilir değildir ve hiçbir şey gelmemektedir.

Örnekler

Aşağıdaki örnek için, iki hedefli çok basit bir yerel loopback bağlantısı kuracağız. “mouth” hedefi, INET superserver daemon’ındaki CHARGEN servisi olacak. “ear” hedefi ise telnet ile bağlanabileceğiniz yerel bir port olacak ve güzel ASCII test çıktılarını izleyebileceksiniz.

Örnek Oturum Diyalogu

Basit telnet 127.0.0.1 2827 çalışır.

  • A = Uygulama
  • C = BOB’un Komut yanıtı.
FROM    TO      DIALOGUE
C       A       BOB 00.00.10
C       A       OK
A       C       setnick mouth
C       A       OK Nickname set to mouth
A       C       newkeys
C       A       OK ZMPz1zinTdy3~zGD~f3g9aikZTipujEvvXOEyYfq4Su-mNKerqG710hFbkR6P-xkouVyNQsqWLI8c6ngnkSwGdUfM7hGccqBYDjIubTrlr~0g2-l0vM7Y8nSqtFrSdMw~pyufXZ0Ys3NqUSb8NuZXpiH2lCCkFG21QPRVfKBGwvvyDVU~hPVfBHuR8vkd5x0teMXGGmiTzdB96DuNRWayM0y8vkP-1KJiPFxKjOXULjuXhLmINIOYn39bQprq~dAtNALoBgd-waZedYgFLvwHDCc9Gui8Cpp41EihlYGNW0cu0vhNFUN79N4DEpO7AtJyrSu5ZjFTAGjLw~lOvhyO2NwQ4RiC4UCKSuM70Fz0BFKTJquIjUNkQ8pBPBYvJRRlRG9HjAcSqAMckC3pvKKlcTJJBAE8GqexV7rdCCIsnasJXle-6DoWrDkY1s1KNbEVH6i1iUEtmFr2IHTpPeFCyWfZ581CAFNRbbUs-MmnZu1tXAYF7I2-oXTH2hXoxCGAAAA

YUKARIDAKI HEDEF ANAHTARINI NOT EDİN, SİZİNKİ FARKLI OLACAK!

FROM    TO      DIALOGUE
A       C       outhost 127.0.0.1
C       A       OK outhost set
A       C       outport 19
C       A       OK outbound port set
A       C       start
C       A       OK tunnel starting

Bu noktada herhangi bir hata yoktu, “mouth” takma adıyla bir destination kuruldu. Sağlanan destination ile iletişime geçtiğinizde, aslında 19/TCP üzerindeki CHARGEN servisine bağlanıyorsunuz.

Şimdi diğer yarısı için, böylece bu hedefe gerçekten ulaşabilelim.

FROM    TO      DIALOGUE
C       A       BOB 00.00.10
C       A       OK
A       C       setnick ear
C       A       OK Nickname set to ear
A       C       newkeys
C       A       OK 8SlWuZ6QNKHPZ8KLUlExLwtglhizZ7TG19T7VwN25AbLPsoxW0fgLY8drcH0r8Klg~3eXtL-7S-qU-wdP-6VF~ulWCWtDMn5UaPDCZytdGPni9pK9l1Oudqd2lGhLA4DeQ0QRKU9Z1ESqejAIFZ9rjKdij8UQ4amuLEyoI0GYs2J~flAvF4wrbF-LfVpMdg~tjtns6fA~EAAM1C4AFGId9RTGot6wwmbVmKKFUbbSmqdHgE6x8-xtqjeU80osyzeN7Jr7S7XO1bivxEDnhIjvMvR9sVNC81f1CsVGzW8AVNX5msEudLEggpbcjynoi-968tDLdvb-CtablzwkWBOhSwhHIXbbDEm0Zlw17qKZw4rzpsJzQg5zbGmGoPgrSD80FyMdTCG0-f~dzoRCapAGDDTTnvjXuLrZ-vN-orT~HIVYoHV7An6t6whgiSXNqeEFq9j52G95MhYIfXQ79pO9mcJtV3sfea6aGkMzqmCP3aikwf4G3y0RVbcPcNMQetDAAAA
A       C       inhost 127.0.0.1
C       A       OK inhost set
A       C       inport 37337
C       A       OK inbound port set
A       C       start
C       A       OK tunnel starting
A       C       quit
C       A       OK Bye!

Şimdi tek yapmamız gereken 127.0.0.1 adresine, 37337 portuna telnet ile bağlanmak, iletişim kurmak istediğimiz hedef anahtarını veya adres defterinden host adresini göndermek. Bu durumda “mouth” ile iletişim kurmak istiyoruz, tek yapmamız gereken anahtarı yapıştırmak ve çalışır.

NOT: Komut kanalındaki “quit” komutu SAM’deki gibi tunnel’ları BAĞLANTISINI kesmez.

$ telnet 127.0.0.1 37337
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
ZMPz1zinTdy3~zGD~f3g9aikZTipujEvvXOEyYfq4Su-mNKerqG710hFbkR6P-xkouVyNQsqWLI8c6ngnkSwGdUfM7hGccqBYDjIubTrlr~0g2-l0vM7Y8nSqtFrSdMw~pyufXZ0Ys3NqUSb8NuZXpiH2lCCkFG21QPRVfKBGwvvyDVU~hPVfBHuR8vkd5x0teMXGGmiTzdB96DuNRWayM0y8vkP-1KJiPFxKjOXULjuXhLmINIOYn39bQprq~dAtNALoBgd-waZedYgFLvwHDCc9Gui8Cpp41EihlYGNW0cu0vhNFUN79N4DEpO7AtJyrSu5ZjFTAGjLw~lOvhyO2NwQ4RiC4UCKSuM70Fz0BFKTJquIjUNkQ8pBPBYvJRRlRG9HjAcSqAMckC3pvKKlcTJJBAE8GqexV7rdCCIsnasJXle-6DoWrDkY1s1KNbEVH6i1iUEtmFr2IHTpPeFCyWfZ581CAFNRbbUs-MmnZu1tXAYF7I2-oXTH2hXoxCGAAAA
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi
#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk
...

Bu çıktının birkaç sanal mil devam etmesinden sonra, Control-] tuşlarına basın

...
cdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK
defghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL
efghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=
telnet> c
Connection closed.

İşte olan şey…

telnet -> ear -> i2p -> mouth -> chargen -.
telnet <- ear <- i2p <- mouth <-----------'

I2P SİTELERİNE de bağlanabilirsiniz!

$ telnet 127.0.0.1 37337
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
i2host.i2p
GET / HTTP/1.1

HTTP/1.1 200 OK
Date: Fri, 05 Dec 2008 14:20:28 GMT
Connection: close
Content-Type: text/html
Content-Length: 3946
Last-Modified: Fri, 05 Dec 2008 10:33:36 GMT
Accept-Ranges: bytes

<html>
<head>
  <title>I2HOST</title>
  <link rel="shortcut icon" href="favicon.ico">
</head>
...
<a href="http://sponge.i2p/">--Sponge.</a></pre>
<img src="/counter.gif" alt="!@^7A76Z!#(*&%"> visitors. </body>
</html>
Connection closed by foreign host.
$

Oldukça harika değil mi? İstersen bazı diğer bilinen I2P SITES’ları, var olmayan olanları vb. deneyin, farklı durumlarda ne tür çıktı bekleyeceğinizi hissetmek için. Çoğunlukla, hata mesajlarının herhangi birini görmezden gelmeniz önerilir. Bunlar uygulama için anlamsız olurdu ve yalnızca insan hata ayıklaması için sunulur.

Temizlik

Artık hepsiyle işimiz bittiğine göre destination’larımızı kapatalım.

Öncelikle, hangi hedef takma adlarına sahip olduğumuzu görelim.

FROM    TO      DIALOGUE
A       C       list
C       A       DATA NICKNAME: mouth STARTING: false RUNNING: true STOPPING: false KEYS: true QUIET: false INPORT: not_set INHOST: localhost OUTPORT: 19 OUTHOST: 127.0.0.1
C       A       DATA NICKNAME: ear STARTING: false RUNNING: true STOPPING: false KEYS: true QUIET: false INPORT: 37337 INHOST: 127.0.0.1 OUTPORT: not_set OUTHOST: localhost
C       A       OK Listing done

Tamam, işte oradalar. Önce “mouth"u kaldıralım.

FROM    TO      DIALOGUE
A       C       getnick mouth
C       A       OK Nickname set to mouth
A       C       stop
C       A       OK tunnel stopping
A       C       clear
C       A       OK cleared

Şimdi “ear"ı kaldırmak için, bunun çok hızlı yazdığınızda olan şey olduğunu ve tipik HATA mesajlarının nasıl göründüğünü size gösterdiğini unutmayın.

FROM    TO      DIALOGUE
A       C       getnick ear
C       A       OK Nickname set to ear
A       C       stop
C       A       OK tunnel stopping
A       C       clear
C       A       ERROR tunnel is active
A       C       clear
C       A       OK cleared
A       C       quit
C       A       OK Bye!

Sessiz Mod

Köprünün alıcı ucuna örnek göstermekle uğraşmayacağım çünkü çok basit. Bunun için iki olası ayar var ve “quiet” komutuyla değiştiriliyor.

Varsayılan sessiz DEĞİLDİR ve dinleme soketinize gelen ilk veri, bağlantı kuran destination’dır. Bu, BASE64 adresinden ve ardından bir yeni satırdan oluşan tek bir satırdır. Bundan sonraki her şey, uygulamanın gerçekten tüketmesi içindir.

Sessiz modda, bunu normal bir İnternet bağlantısı gibi düşünün. Hiçbir ekstra veri gelmez. Sanki normal İnternet’e doğrudan bağlıymışsınız gibidir. Bu mod, router konsolu tunnel ayarları sayfalarında mevcut olana benzer bir şeffaflık biçimi sağlar, böylece BOB’u örneğin bir web sunucusuna yönlendirmek için kullanabilirsiniz ve web sunucusunda hiçbir değişiklik yapmanız gerekmez.

BOB’un Avantajları

BOB’u bunun için kullanmanın avantajı daha önce tartışıldığı gibidir. Uygulama için rastgele çalışma zamanları planlayabilir, farklı bir makineye yönlendirebilir, vb. yapabilirsiniz. Bunun bir kullanımı, router’dan hedefe kadar olan erişilebilirlik tahminini karıştırmaya çalışmak gibi bir şey olabilir. Hizmetlerde rastgele açık ve kapalı zamanlar oluşturmak için destination’ı tamamen farklı bir süreçle durdurabilir ve başlatabilirsiniz. Bu şekilde yalnızca böyle bir hizmete ulaşma yeteneğini durdurmuş olursunuz ve onu kapatıp yeniden başlatmakla uğraşmanıza gerek kalmaz. Güncellemeler yaparken LAN’ınızdaki farklı bir makineye yönlendirebilir ve işaret edebilir, ya da çalışan duruma bağlı olarak bir dizi yedek makineye işaret edebilirsiniz, vb. vb. BOB ile yapabileceklerinizi yalnızca hayal gücünüz sınırlar.

Was this page helpful?