İletişim
UnrealIRCd

UnrealIRCd Yapılandırma Hataları ve Çözümleri: En Sık Karşılaşılan Mesajlar

· 5 dk okuma

İçindekiler
  1. Önce Doğru Araçları Kullanın
  2. Hata ve Uyarı Arasındaki Fark
  3. 1. Eksik Noktalı Virgül
  4. 2. Kapatılmamış Süslü Parantez
  5. 3. Tırnak Hataları
  6. 4. Bilinmeyen Blok veya Ayar
  7. 5. Eksik Zorunlu Ayar
  8. 6. Cloak Anahtarı Hataları
  9. 7. TLS Hataları
  10. 8. Port Hataları
  11. 9. Modül Hataları
  12. 10. Link Bloğu Hataları
  13. 11. include Hataları
  14. Hata Ayıklama Yöntemi
  15. Yardım İstemeden Önce
  16. Sonuç

UnrealIRCd ile çalışan herkes er ya da geç bir yapılandırma hatasıyla karşılaşır. Neyse ki UnrealIRCd, hata mesajları konusunda oldukça yardımseverdir: Çoğu zaman hangi dosyada, hangi satırda ve neyin yanlış olduğunu açıkça söyler. Bu rehberde en sık karşılaşılan UnrealIRCd config hatası türlerini, anlamlarını ve çözümlerini bir araya getirdik.

Önce Doğru Araçları Kullanın

Yapılandırmayı değiştirdikten sonra sunucuyu doğrudan yeniden başlatmak yerine önce test edin:

./unrealircd configtest

Bu komut dosyayı okur, bütün hataları ve uyarıları listeler ama çalışan sunucuya dokunmaz. Hata yoksa değişiklikleri uygulamak için:

./unrealircd rehash

Rehash sırasında bir hata olursa sunucu eski, çalışan yapılandırmayla devam eder. Yani yanlış bir değişiklik ağınızı çökertmez; sadece uygulanmaz. Bu güvenlik ağı sayesinde değişikliklerinizi rahatça deneyebilirsiniz. Ancak sunucuyu kapalıyken başlatmaya çalışıyorsanız hatalı yapılandırma, sunucunun hiç açılmaması anlamına gelir. Bu yüzden restart öncesinde mutlaka configtest çalıştırın.

Hata ve Uyarı Arasındaki Fark

UnrealIRCd iki tür mesaj verir:

Uyarıları görmezden gelmeyin. Bir sonraki sürümde hataya dönüşebilir veya güvenlik açısından önemli bir eksikliğe işaret ediyor olabilirler.

1. Eksik Noktalı Virgül

En yaygın hatadır. Bir ayarın sonunda noktalı virgül unutulduğunda UnrealIRCd bir sonraki satırı da aynı ayarın parçası sanar ve beklenmedik bir şeyle karşılaştığını söyler. Hata mesajı çoğu zaman sorunun bir sonraki satırını gösterir.

Yanlış:

me {
	name "irc.ornekagi.net"
	info "Ornek Agi";
	sid "001";
}

Doğru:

me {
	name "irc.ornekagi.net";
	info "Ornek Agi";
	sid "001";
}

İpucu: Hata mesajı bir satırı gösteriyorsa ama o satırda sorun göremiyorsanız bir önceki satıra bakın.

2. Kapatılmamış Süslü Parantez

Bir bloğun kapanış parantezi unutulduğunda hata genellikle dosyanın en sonunda veya alakasız bir blokta bildirilir; çünkü UnrealIRCd o noktaya kadar her şeyi aynı bloğun içinde sanmıştır. Satır numaralarını gösteren ve eşleşen parantezleri vurgulayan bir metin düzenleyici bu hatayı bulmayı çok kolaylaştırır.

3. Tırnak Hataları

Kelime işlemcilerden veya bazı web sayfalarından kopyalanan metinlerde düz tırnak (") yerine "akıllı tırnak" karakterleri bulunabilir. Bunlar gözle neredeyse aynı görünür ama UnrealIRCd onları tanımaz. Kopyaladığınız satırlarda tırnakları elle yeniden yazmak bu sorunu çözer. Benzer şekilde, değerin içinde tırnak işareti kullanmanız gerekiyorsa kaçış karakteri gerekebilir.

4. Bilinmeyen Blok veya Ayar

"Unknown directive" veya "unknown block" türünden mesajlar, UnrealIRCd'nin tanımadığı bir blok ya da ayar adı kullandığınızı gösterir. Olası nedenler:

Ayarın doğru adını ve hangi blokta yer aldığını resmî belgelerden kontrol edin. Ana sürüm geçişlerinde bu hata çok sık görülür; ayrıntılar için sürüm yükseltme yazımıza bakın.

5. Eksik Zorunlu Ayar

Bazı ayarlar olmadan UnrealIRCd başlamaz. En sık unutulanlar:

Eksik ayarNerede?
Sunucu adı, info, sidme bloğu
network-nameset bloğu
kline-addressset bloğu
cloak-keysset bloğu
Cloak modülü seçimiloadmodule satırı
En az bir allow ve listen bloğuAna yapılandırma

Hata mesajı genellikle eksik olan ayarın adını açıkça söyler. Örnek yapılandırma dosyasından başlayan kurulumlarda bu ayarların çoğu zaten bulunur; boş bırakılmış değerleri doldurmanız yeterlidir. Ayrıntılar: set bloğu ve cloaking.

6. Cloak Anahtarı Hataları

Cloak anahtarları belirli bir uzunluk ve karmaşıklık şartını karşılamalıdır. Kendiniz uydurduğunuz kısa anahtarlar reddedilir. Çözüm her zaman aynıdır: ./unrealircd gencloak komutuyla üretilen anahtarları kullanın.

7. TLS Hataları

Mesaj türüOlası neden
Sertifika dosyası okunamıyorDosya yolu yanlış veya izinler yetersiz
Özel anahtar sertifikayla eşleşmiyorFarklı sertifikaların dosyaları karışmış
Sertifika süresi dolmuşYenileme yapılmamış

Let's Encrypt kullanıyorsanız dosyaların UnrealIRCd kullanıcısı tarafından okunabildiğinden emin olun. Ayrıntılar: Let's Encrypt sertifikası.

8. Port Hataları

"Address already in use" veya benzeri bir mesaj, dinlemeye çalıştığınız portun başka bir program tarafından kullanıldığını gösterir. Bazen bu program UnrealIRCd'nin eski, kapanmamış bir kopyasıdır. Linux'ta hangi programın portu kullandığını görmek için:

ss -tlnp | grep 6697

1024'ün altındaki portlarda "permission denied" hatası alıyorsanız bunun nedeni root olmayan kullanıcının bu portları dinleyememesidir. Ayrıntılar: listen ve TLS portları.

9. Modül Hataları

Modül konuları için modül yönetimi ve üçüncü parti modüller yazılarımıza bakın.

Sunucu bağlantılarındaki hatalar genellikle yapılandırma testinde değil, bağlantı sırasında ortaya çıkar. Yapılandırma testinde görülebilen link hataları ise eksik class, geçersiz parola biçimi veya aynı adla iki link bloğu tanımlanmasıdır. Bağlantı sırasındaki hatalar için link bloğu yazımızdaki tabloya göz atın.

11. include Hataları

Dahil edilen bir dosya bulunamazsa UnrealIRCd hata verir. Dosya yolu ana yapılandırma dosyasının bulunduğu dizine göre değerlendirilir. Yeni bir include eklediyseniz dosyanın gerçekten orada olduğunu ve okunabilir izinlere sahip olduğunu kontrol edin. Dahil edilen dosyadaki hatalar, o dosyanın adı ve kendi satır numarasıyla bildirilir; ana dosyada boşuna aramayın.

Hata Ayıklama Yöntemi

Hatayı bulamadığınız durumlarda sistematik bir yöntem işe yarar:

  1. Son yaptığınız değişikliği geri alın ve configtest çalıştırın. Hata kayboluyorsa sorun o değişikliktedir.
  2. Değişikliği küçük parçalara bölerek tek tek ekleyin.
  3. Şüphelendiğiniz bloğu yorum satırına alıp tekrar test edin.
  4. Örnek yapılandırmadaki aynı bloğu kendi bloğunuzla karşılaştırın.

Değişikliklerinizi sürüm kontrolüyle takip ediyorsanız en son çalışan sürümle farkı görmek, hatayı saniyeler içinde bulmanızı sağlar.

Yardım İstemeden Önce

Topluluk kanallarında yardım istediğinizde şunları paylaşmak çözümü hızlandırır:

Yapılandırmanızı paylaşırken oper parolası özetlerini, link parolalarını, cloak anahtarlarını ve RPC parolalarını mutlaka silin.

Sonuç

UnrealIRCd'nin hata mesajları ilk bakışta korkutucu görünebilir; ama çoğu zaman sorunun tam yerini gösterirler. Her değişiklikten sonra configtest çalıştırmayı alışkanlık hâline getirin, hata mesajındaki satırın öncesine de bakın ve eski sürümlere ait örneklere karşı dikkatli olun. Web tabanlı istemcilerin sunucunuza bağlanabilmesi için sıradaki rehberimiz WebSocket.

IRC sorunun mu var? Kanalda birlikte çözelim.

💬 Kanala Bağlan

Sıkça Sorulan Sorular

Hata mesajındaki satır numarası yanlış görünüyor, neden?

Eksik bir noktalı virgül veya kapatılmamış bir parantez, hatanın bir sonraki satırda ya da dosyanın sonunda bildirilmesine yol açabilir. Belirtilen satırın öncesine de bakın.

Rehash hata verirse sunucu kapanır mı?

Hayır. Rehash sırasında bir hata olursa sunucu mevcut çalışan yapılandırmayla devam eder ve değişiklikler uygulanmaz.

configtest ile rehash arasındaki fark nedir?

configtest yalnızca dosyayı kontrol eder ve sonucu söyler; rehash ise dosya hatasızsa değişiklikleri çalışan sunucuya uygular.