====== IRCnet ====== **Server**: * FAU ER-NBG: ''irc.fau.de'' * TU Berlin: ''irc.fu-berlin.de'' * Siehe auch [[http://irc.tu-ilmenau.de/all_servers/|Serverliste]] **Channels**: * Jahrgänge: ''#faui2k22'' (''#faui2kXX''-Schema) * LAN-Party: ''#fauilan'' * Essen: ''#sigfood'' * und viele mehr... ====== IRC-Guide ====== IRC ist ein relativ altes Chat-System, welches durch seine transparenten und minimalistischen Beschaffenheit immernoch sehr gerne von vielen vorallem in der IT- und Technik-Szene verwendet wird. Durch diesen kurzen Guide soll der Einstieg erleichtert werden, indem zwei fundamentale Methoden zum Verbinden mit einem IRC-Server kurz beschrieben, jene Schritt für Schritt durchgeführt und einige häufig gestellte Fragen beantwortet werden. Die Friedrich-Alexander-Universität Erlangen-Nürnberg hat sogar einen eigenen Server-Node, welcher zu dem IRCnet Netzwerk gehört. Fachwörter und andere unbekannte Begriffe werden unten im //Glossar// aufgeführt. ===== Was ist IRC? ===== //"Internet Relay Chat, kurz IRC, bezeichnet ein rein textbasiertes Chat-System. Es ermöglicht Gesprächsrunden mit einer beliebigen Anzahl von Teilnehmern in so genannten Channels (Gesprächskanälen), aber auch Gespräche zwischen zwei Teilnehmern (Query). Neue Channels können üblicherweise jederzeit von jedem Teilnehmer frei eröffnet werden, ebenso kann man gleichzeitig an mehreren Channels teilnehmen."// -[[https://de.wikipedia.org/wiki/Internet_Relay_Chat|Internet Relay Chat – Wikipedia]] {{:kontakt:6mji5k6.png}} ===== Gute Gründe für IRC ===== * schlicht und transparent vom Aufbau, dem Funktionsumfang und der Verwendung * klares, verständliches System von Channels/Queries * verschiedene Plugins/Bots (auch selbstgeschriebenes) Alternative Kommunikationsmöglichkeiten wie etwa bei //Facebook// und //WhatsApp// werden sicherheits- und datensicherheitstechnisch von vielen als kritisch angesehen. Zusätzliche Gründe für Neueinsteiger: * erste Erfahrung mit klassischen Client-Server-Modellen * bei Verwendung von CLI-Programmen dieses Guides (**tmux** & **weechat** oder **screen** & **irssi**): Erfahrungen mit CLI-Linux-Programmen * viele erfahrene Studenten sind neben dem FSI-Informatik-Forum hauptsächlich im IRC aufzufinden und können dort um Hilfe gebeten werden ===== Los geht's ===== Hier stelle ich zwei Möglichkeiten vor, IRC zu nutzen. Es lohnt sich __beide Möglichkeiten__ zu kennen. **Methode 1**: Direktes Aufbauen einer Verbindung zu einem IRC-Server. Der IRC-Client soll lokal auf dem verwendeten Gerät laufen. **Methode 2**: Einrichten einer permanenten Sitzung auf einem Linux-Server, welcher dauerhaft eingeschaltet ist. //Großer Vorteil: Man kann den Verlauf von Channels und privaten Nachrichten in Abwesenheit nachlesen! Deshalb möchte man eigentlich Methode 2 bevorzugen. // ==== Methode 1: Von einem Gerät direkt mit einem IRC-Server verbinden ==== Hierfür kann man z.B. X-Chat (für Windows u. Linux http://xchat.org/) oder Hexchat (für Windows und Linux http://hexchat.github.io/) verwenden. Die Verwendung ist relativ simpel, deshalb schreibe ich hierzu nichts mehr. Die einfachen IRC-Befehle, die Server Adresse und der aktuelle Erstsemester-Channel stehen unten. **Problem**: Um Nachrichten zu bekommen muss man eingeloggt sein, d.h. PC/Handy/Raspberry Pi muss dauerhaft an sein und den Clienten (Chat Programm, in dem der User angemeldet ist) laufen haben, um nichts zu verpassen. **Die Lösung dafür** ist ein sogenannter Bouncer (dt. Türsteher). Dieser Bouncer ist dauerhaft auf dem IRC-Server (und IRC-Channels) angemeldet sein und soll einem alles seit dem letzten Besuch geschriebene wiedergeben. Wir schauen uns jetzt Methode 2 an. **Methode 2** wird von den meisten IRClern an der FAU Informatik benutzt und kann als Bouncer (oder auch: dauerhaft aktive Sitzung) angesehen werden. ==== Methode 2: Ferngesteuerte, dauerhafte IRC-Sitzung auf einem Linux-Server (z.B. CIP) ==== Wir benutzen hierfür einen der IRC-Clients **weechat** oder **irssi**. Führt man ''weechat-curses'' (für **weechat**) oder ''irssi'' (für **irssi**) in der //shell// an einem PC in einem //CIP-Pool// aus, so wird normalerweise beim Ausloggen aus dem CIP-PC oder beim Schließen des //shell//-Fensters der IRC-Client beendet. Verhindern lässt sich das mit sogenannten //Terminal-Multiplexer// wie **tmux** oder **screen**. Führt man eins davon aus, so wird ein Prozess geschaffen, welcher beim Ausloggen aus nicht getötet wird. Hier könnte man nun weechat oder irssi ausführen jedoch gibt es da ein... **Probleme**: - Manche Server sind nur zwischen 7 und 22 Uhr online. - Die "24h online"-Server beenden einen Prozess nachdem er sieben Tage am Stück gelaufen ist. === === Dewegen gibt es einen speziellen CIP-Rechner/-Server, welcher speziell für die Verwendung des IRC-Chat gedacht ist und rund um die Uhr erreichbar ist: **ircbox**.cs.fau.de Um sich mit der //ircbox// zu verbinden, kann man //SSH// - ein Programm zur Fernsteuerung entfernter Computer - verwenden. SSH ist eine Abkürzung für "secure shell". === Vorgehensweise === Hierzu schreibt man in die //shell//: ''ssh BENUTZERNAME@ircbox.cs.fau.de'' //Enter drücken um zu Bestätigen, danach sollte ''ircbox [~]>'' vorne stehen// Nun kann man zum Beispiel eine weechat Sitzung in tmux starten: ''tmux new-session weechat-curses'' //Enter drücken um zu Bestätigen// //Es kann sein, dass man tmux durch den Befehl ''tmux'' erstmal alleine starten muss und erst danach dann innerhalb der tmux-Sitzung ''weechat-curses'' zum Starten von weechat.// //Beides einzeln also!// Startet man so erfolgreich den IRC-Clienten, kann man wie bei Methode 1 fortfahren. //Server joinen, Nickname ändern und Channel joinen. Befehle dafür unten!// Möchte man jetzt den Chat zeitweise __minimieren / zuklappen__, so kann man entweder ''Ctrl+b'', dann ''d'' (bei tmux), ''Ctrl+a'', ''d'' (bei screen) oder die SSH-Verbindung schließen. Beim nächsten mal ist die Sitzung noch erhalten und muss nur noch attacht werden: ''tmux attach'' (bei tmux) oder ''screen -r'' (bei screen) Die //ircbox// kann man über SSH-Protokoll auch von anderswo am Computer oder vom Handy aus erreichen. Das ebenfalls über SSH: ''ssh BENUTZERNAME@ircbox.cs.fau.de'' === SSH-Clients === Unter Linux: __Terminal/Bash__ Unter Windows: * __Git Bash__ (enthalten in Git für Windows: https://gitforwindows.org/): reiner Kommandozeilenclient, aber ihr werdet Git wahrscheinlich so oder so irgendwann einmal installieren * __MobaXTerm__ (https://mobaxterm.mobatek.net/): bietet als GUI Client viel mehr Einstellungsmöglichkeiten, Keyboard Shortcuts uvm. * __Windows 10's nativer SSH-Client__ ("OpenSSH") + PowerShell: [[https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse|OpenSSH]] installieren und in PowerShell Folgendes eingeben "ssh @ircbox.cs.fau.de". Aktuell ist das noch ein bisschen frickelig mit dem manuellen Vergrößern des Fensters, aber auf jeden Fall nutzbar. Chrome-Browser: Add-on __secure shell__ Android: __JuiceSSH__ oder __ConnectBot__ ==== Wo erreiche ich den IRC-Server der FAU und den aktuellen Ersti-Channel? ==== server: irc.fau.de (oder irc.fu-berlin.de) channel: #faui2k19 (je nach Jahrgang) ==== TL;DR (too long; didn't read) ==== In einer Linux-Shell: *''ssh BENUTZERNAME@ircbox.cs.fau.de'' //(ersetze BENUTZERNAME durch dein Kürzel) // //Enter// *''tmux'' //// //Enter// *''weechat-curses'' // // //Enter// *''/server add fau irc.fau.de'' //Enter// *''/connect fau'' //Enter// *''/nick NICK'' //(ersetze NICK mit deinem gewünschten Nickname)// //Enter// *''/join #faui2k19'' //Enter// *''/save'' //Enter// *''Hallo, ich bin neu hier. Danke für IRC-Guide!'' //Enter// Fertig. Willkommen. :-) Detachen (Zuklappen/Minimieren): ''CTRL+b'', dann ''d'' oder SSH-Verbindung mittels Schließen des Fensters beenden. Attachen (Aufklappen): ''tmux a -d'' ===== Die wichtigsten IRC Befehle/Kommandos ===== **''/server add SERVERNAME SERVERADRESSE''** IRC-Server Eintrag anlegen **''/connect SERVERNAME''** mit einem angelegten IRC-Server verbinden **''/nick NICK''** setzt einen neuen Nickname **''/join CHANNEL''** einem Channel beitreten. **''/part''** schließt den derzeitig angezeigten Buffer/das Gespräch **''/op NICK''** vergibt operator-Rechte //Mit operator-Rechten kann man für gewöhnlich /kick, /ban und /topic aufrufen.// **''/kick NICK''** jemanden aus dem Channel kicken **''/ban NICK''** einem User anhand seines Namens (unsicher) oder anhand seiner IP-Adresse verbieten, dem Channel beizutreten **''/query NICK''** schreibt jemanden eine private Nachricht **''/msg NICK''** schreibt jemanden eine private Nachricht, aber öffnet dafür keinen Buffer **''/exit''** beendet den Client **''/save''** speichert die Konfiguration! **''/buffer NUMMER''** **''ALT + NUMMER''** oder **''ALT + ⇧oder⇩''** zum Durchwechseln der Buffer/Gespräche Sitzung wieder aufrufen: tmux: ''tmux attach'' screen: ''screen -r'' Es gibt zudem Befehle und Eingaben, welche spezifisch auf die Shell und den IRC-Client sind. [[http://www.dayid.org/os/notes/tm.html|Allgemeines tmux/screen cheatsheet]] ===== Pro-Tipps ===== **Autovervollständigung bei Nicknamen**: Erste paar Buchstaben eintippen und '''' drücken. **Smart-Filter (weechat)**: ''/set irc.look.smart_filter on'' //nur joins, quits, parts von Usern anzeigen, die innerhalb der letzten Minuten gesprochen haben// (Zeitintervall: irc.look.smart_filter_delay) **joins, quits und parts ausblenden (weechat)**: ''/filter add joinquit * irc_join,irc_quit,irc_part *'' **custom highlights:** ''/set weechat.look.highlight WORT'' (case-insensitive: WORT, wort Wort usw. werden gehighlightet) **weechat android app: relay mit SSL**: [[https://github.com/ubergeek42/weechat-android/wiki/Using-SSL-with-WeeChat|Using-SSL-with-WeeChat]] ** Cron-Job für automatisches Starten beim Start der ircbox (falls reboot) ** (siehe auch Nachricht beim ssh auf die ircbox) Für tmux and weechat: (Kommando zum Bearbeiten: crontab -e): ''@reboot /usr/bin/tmux new-session -d /usr/bin/weechat'' ** Automatisches Verbinden bei weechat-neustart ** (ersetze irc.fau.de jeweils durch den richtigen Server, so wie die Verbindung beim Erstellen benannt wurde) Automatisches Connect zum Server: *''/set irc.server.irc.fau.de.autoconnect on'' Automatisches Wiederherstellen eurer Buffer und deren Reihenfolge vor dem letzten Neustart: * Siehe [[https://superuser.com/a/1491883|How do I join all the channels in my weechat layout?]] ===== Glossar ===== **ircbox**: Ein spezieller Server, der für dauerhaft laufende IRC-Clients gedacht ist. Innerhalb des Uninetzes kann man sich über ''ssh ircbox'', außerhalb über ''ssh BENUTZERNAME@ircbox.cs.fau.de'' verbinden **CIP** oder **CIP-Pool**: Die Bezeichnung für Computerräume an der technischen Fakultät **CLI**: **C**ommand **L**ine **I**nterface (deutsch: Kommandozeilen-Interface) **shell**: Das geläufigste Kommandozeilen-Interface unter Linux/Unix-Betriebssystemen **SSH**: Meint entweder das //Secure Shell//-Protokoll für den Fernzugang oder das Unix/Linux-Programm SSH, welches eine Verbindung über jenes Protokoll aufbauen kann **Terminal-Multiplexer**: Ein Programm, das eine //shell// dauerhaft offen hält. ===== FAQ ===== == Q: Beim Verbinden mit irc.fau.de bekomme ich die Fehlermeldung, dass zu viele User von meinem Server darauf zugreifen, was kann ich tun? == **A**: Probiere es mit **irc.fu-berlin.de**. Der fau-IRC-Server ist teil vom IRCnet Netzwerk, zu welchem mehrere Server gehören. Gibt es Probleme so kann man einfach einen anderen jener ausprobieren. == Q: Bei mir werden Zeilen/Spalten nicht ausgefüllt. Ist was kaputt gegangen? == **A**: Das passiert wenn man mehrere ssh-Verbindung zu derselben screen/tmux Sitzung offen hat. Eine der Sitzungen legt wohl die Größe der übertragenen Zeilen/Spalten auf eine kleinere Größe fest, sodass nicht wie gewohnt versucht wird, diese Größe dynamisch anzupassen. Will man diese Sitzung nicht einzeln aufrufen und schließen, so kann man alle anderen Sitzungen beim attachen (maximieren) dabei automatisch detachen (minimieren). Hierfür fügt man ein ''d'' an: * bei tmux: ''tmux attach -d'' oder ''tmux a -d'' * bei screen: ''screen -ad'' == Q: Ich verbinde mich mit einem lokalen Clienten und kann aber meinen Nickname nicht ändern und auch kein Topic setzen. Spinne ich? == **A**: Muss nicht sein. Vor ein paar Jahren gab es einen Konflikt zwischen einigen Internet-Providern und IRCnet, da u.a. die deutsche Telekom (t-online) keine ausreichende Identität standardmäßig beim Verbinden übertragen hat. Dies resultierte darin, dass jene User dann eventuell ihren Nickname nicht ändern oder Gebrauch von operator-Rechten (kick, ban, topic) machen konnten. Viel dagegen machen kann man anscheinend nicht. Jedoch kann man sich von einem andren Server aus verbinden siehe Methode 2. == Q: An wen kann ich mich wenden, wenn ich spezifische Probleme oder andere Fragen habe? == **A**: An die FSI Informatik oder Informatik-Studenten der FAU. Falls du in unserem IRC-Netzwerk bist, kannst du u.a. auch in die Jahrgangschannel (z.B. ''#faui2k13'') kommen um einige zu erreichen. Ebenso kannst du im FSI-Zimmer der Informatik kommen (siehe [[:kontakt|FSI-Zimmer]]).