UnrealIRCd Yapılandırma Hataları ve Çözümleri: En Sık Karşılaşılan Mesajlar
İçindekiler
- Önce Doğru Araçları Kullanın
- Hata ve Uyarı Arasındaki Fark
- 1. Eksik Noktalı Virgül
- 2. Kapatılmamış Süslü Parantez
- 3. Tırnak Hataları
- 4. Bilinmeyen Blok veya Ayar
- 5. Eksik Zorunlu Ayar
- 6. Cloak Anahtarı Hataları
- 7. TLS Hataları
- 8. Port Hataları
- 9. Modül Hataları
- 10. Link Bloğu Hataları
- 11. include Hataları
- Hata Ayıklama Yöntemi
- Yardım İstemeden Önce
- 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:
- Error (hata): Yapılandırma geçersizdir; sunucu başlamaz veya rehash uygulanmaz.
- Warning (uyarı): Yapılandırma çalışır ama bir ayar önerilenden farklıdır veya ileride sorun çıkarabilir.
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:
- Yazım hatası:
maxperipyerinemax-per-ipgibi. - Eski sürümden kalma ayar: İnternetteki eski örneklerde artık kaldırılmış ayarlar bulunur.
- Modül yüklenmemiş: Bazı ayarlar ancak ilgili modül yüklüyse geçerlidir.
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 ayar | Nerede? |
|---|---|
| Sunucu adı, info, sid | me bloğu |
| network-name | set bloğu |
| kline-address | set bloğu |
| cloak-keys | set bloğu |
| Cloak modülü seçimi | loadmodule satırı |
| En az bir allow ve listen bloğu | Ana 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ıyor | Dosya yolu yanlış veya izinler yetersiz |
| Özel anahtar sertifikayla eşleşmiyor | Farklı 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 bulunamadı: loadmodule satırındaki ad yanlış veya modül kurulmamış.
- Modül uyumsuz: Üçüncü parti modül eski bir sürüm için derlenmiş; yeniden derlenmesi gerekiyor.
- Modül zaten yüklü: Aynı modül iki kez yüklenmeye çalışılıyor; genellikle hem modules.default.conf hem de kendi dosyanızda aynı satır vardır.
Modül konuları için modül yönetimi ve üçüncü parti modüller yazılarımıza bakın.
10. Link Bloğu Hataları
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:
- Son yaptığınız değişikliği geri alın ve configtest çalıştırın. Hata kayboluyorsa sorun o değişikliktedir.
- Değişikliği küçük parçalara bölerek tek tek ekleyin.
- Şüphelendiğiniz bloğu yorum satırına alıp tekrar test edin.
- Ö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:
- UnrealIRCd sürümü,
- Hata mesajının tamamı,
- İlgili bloğun içeriği (parolaları ve anahtarları gizleyerek),
- Son yaptığınız değişiklik.
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ğlanSı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.